Création d’une tâche d’exportation

Vous pouvez créer une tâche d’exportation en effectuant une requête POST sur le point d’entrée /export/jobs.

Format d’API

POST /export/jobs

Requête

La requête suivante crée une tâche d’exportation configurée par les paramètres fournis dans le payload.

Exemple de requête pour créer une tâche d’exportation.
curl -X POST https://platform.adobe.io/data/core/ups/export/jobs \
 -H 'Authorization: Bearer {ACCESS_TOKEN}' \
 -H 'Content-Type: application/json' \
 -H 'x-gw-ims-org-id: {ORG_ID}' \
 -H 'x-api-key: {API_KEY}' \
 -H 'x-sandbox-name: {SANDBOX_NAME}' \
 -d '
{
    "fields": "identities.id,personalEmail.address",
    "mergePolicy": {
        "id": "timestampOrdered-none-mp",
        "version": 1
    },
    "filter": {
        "segments": [
            {
                "segmentId": "52c26d0d-45f2-47a2-ab30-ed06abc981ff",
                "segmentNs": "ups",
                "status": [
                    "realized"
                ]
            }
        ],
        "segmentQualificationTime": {
            "startTime": "2018-01-01T00:00:00Z",
            "endTime": "2018-02-01T00:00:00Z"
        },
        "fromIngestTimestamp": "2018-01-01T00:00:00Z",
        "emptyProfiles": true
    },
    "additionalFields": {
        "eventList": {
            "fields": "string",
            "filter": {
                "fromIngestTimestamp": "2018-01-01T00:00:00Z",
                "toIngestTimestamp": "2020-01-01T00:00:00Z"
            }
        }
    },
    "destination":{
        "datasetId": "5b7c86968f7b6501e21ba9df",
        "segmentPerBatch": false
    },
    "schema":{
        "name": "_xdm.context.profile"
    },
    "evaluationInfo": {
        "segmentation": true
    }
}'
PropriétéDescription
fieldsUne liste des champs exportés, séparés par des virgules. Si rien n’est indiqué, tous les champs seront exportés.
mergePolicySpécifie la stratégie de fusion pour régir les données exportées. Ajoutez ce paramètre lorsque plusieurs segments sont exportés. Si elle n’est pas fournie, l’exportation applique la même politique de fusion que le segment donné.
filterObjet qui spécifie les segments qui vont être inclus dans la tâche d’exportation par identifiant, heure de qualification ou heure d’ingestion, selon les sous-propriétés répertoriées ci-dessous. Si rien n’est indiqué, toutes les données seront exportées.
filter.segments

Indique les segments à exporter. Si vous omettez cette valeur, toutes les données de l’ensemble des profils seront exportées. Accepte un tableau d’objets de segment, chacun contenant les champs suivants :

  • segmentId : (obligatoire en cas d’utilisation de segments) identifiant du segment pour les profils à exporter.
  • segmentNs : (facultatif) espace de noms du segment pour le segmentID donné.
  • status : (facultatif) tableau de chaînes fournissant un filtre d’état pour le segmentID. Par défaut, status possède la valeur ["realized"] qui représente tous les profils appartenant au segment à l’heure actuelle. Les valeurs possibles sont les suivantes : realized et exited. Une valeur realized signifie que le profil est admissible pour le segment. Une valeur exiting signifie que le profil quitte le segment.
filter.segmentQualificationTimeFiltre basé sur l’heure de qualification du segment. L’heure de début et/ou l’heure de fin peuvent être fournies.
filter.segmentQualificationTime.startTimeL’heure de début de qualification du segment d’un identifiant de segment pour un état donné. Si elle n’est pas fournie, aucun filtre ne sera appliqué à l’heure de début pour une qualification d’identifiant du segment. La date et l’heure doivent être fournies au format RFC 3339.
filter.segmentQualificationTime.endTimeL’heure de fin de qualification du segment d’un identifiant de segment pour un état donné. Si elle n’est pas fournie, aucun filtre ne sera appliqué à l’heure de fin pour une qualification d’identifiant du segment. La date et l’heure doivent être fournies au format RFC 3339.
filter.fromIngestTimestamp

Limite les profils exportés afin de n’inclure que ceux qui ont été mis à jour après cet horodatage. La date et l’heure doivent être fournies au format RFC 3339.

  • fromIngestTimestamp pour les profils, le cas échéant : inclut tous les profils fusionnés dans lesquels la date et l’heure mises à jour et fusionnées sont supérieures à la date et l’heure données. Prend en charge l’opérande greater_than.
  • fromIngestTimestamp pour les événements  : tous les événements ingérés après cette date et cette heure seront exportés en fonction du résultat du profil obtenu. Il ne s’agit pas de l’heure de l’événement, mais de l’heure de l’ingestion des événements.
filter.emptyProfilesUne valeur boolean qui indique s’il faut filtrer les profils vides. Les profils peuvent contenir des enregistrements de profil, des enregistrements ExperienceEvent, ou les deux. Les profils sans enregistrement de profil et seuls les enregistrements ExperienceEvent sont appelés "emptyProfiles". Pour exporter tous les profils de la banque de profils, y compris les « emptyProfiles », définissez la valeur de emptyProfiles sur true. Si emptyProfiles est défini sur false, seuls les profils avec des enregistrements de profil dans la boutique sont exportés. Par défaut, si l’attribut emptyProfiles n’est pas inclus, seuls les profils contenant des enregistrements de profil sont exportés.
additionalFields.eventList

Contrôle les champs d’événement de série temporelle exportés pour des objets enfants ou associés en fournissant un ou plusieurs des paramètres suivants :

  • fields : contrôlent les champs à exporter.
  • filter : indique les critères qui limitent les résultats inclus dans les objets associés. Attend une valeur minimale requise pour l’exportation, généralement une date.
  • filter.fromIngestTimestamp : filtre les événements de série temporelle par rapport à ceux qui ont été ingérés après l’horodatage fourni. Il ne s’agit pas de l’heure de l’événement, mais de l’heure de l’ingestion des événements.
  • filter.toIngestTimestamp : filtre l’horodatage sur ceux qui ont été ingérés avant l’horodatage fourni. Il ne s’agit pas de l’heure de l’événement, mais de l’heure de l’ingestion des événements.
destination

(Obligatoire) Informations sur les données exportées :

  • datasetId : (obligatoire) identifiant du jeu de données vers lequel les données doivent être exportées.
  • segmentPerBatch : (Facultatif) Une valeur booléenne qui, si elle n’est pas fournie, est définie par défaut sur "false". La valeur "false" exporte tous les identifiants de segment vers un seul identifiant de lot. La valeur "true" exporte un identifiant de segment vers un identifiant de lot. Notez que la définition de la valeur sur "true" peut affecter les performances d’exportation par lots.
schema.name(Obligatoire) Le nom du schéma associé au jeu de données vers lequel les données doivent être exportées.
evaluationInfo.segmentation(Facultatif) Une valeur booléenne qui, si elle n’est pas fournie, est définie par défaut sur false. Une valeur true indique que la segmentation doit être effectuée sur la tâche d’exportation.

Réponse

Une réponse réussie renvoie un état HTTP 200 avec les détails de la tâche d’exportation que vous venez de créer.

Exemple de réponse lors de la création d’une tâche d’exportation.
{
    "id": 100,
    "jobType": "BATCH",
    "destination": {
        "datasetId": "5b7c86968f7b6501e21ba9df",
        "segmentPerBatch": false,
        "batchId": "da5cfb4de32c4b93a09f7e37fa53ad52"
    },
    "fields": "identities.id,personalEmail.address",
    "schema": {
        "name": "_xdm.context.profile"
    },
    "imsOrgId": "{ORG_ID}",
    "status": "NEW",
    "filter": {
        "segments": [
            {
                "segmentId": "52c26d0d-45f2-47a2-ab30-ed06abc981ff",
                "segmentNs": "ups",
                "status": [
                    "realized"
                ]
            }
        ],
        "segmentQualificationTime": {
            "startTime": "2018-01-01T00:00:00Z",
            "endTime": "2018-02-01T00:00:00Z"
        },
        "fromIngestTimestamp": "2018-01-01T00:00:00Z",
        "emptyProfiles": true
    },
    "additionalFields": {
        "eventList": {
            "fields": "_id, _experience",
            "filter": {
                "fromIngestTimestamp": "2018-01-01T00:00:00Z"
            }
        }
    },
    "mergePolicy": {
        "id": "timestampOrdered-none-mp",
        "version": 1
    },
    "profileInstanceId": "ups",
    "metrics": {
        "totalTime": {
            "startTimeInMs": 123456789000,
        }
    },
    "computeGatewayJobId": {
        "exportJob": ""
    },
    "creationTime": 1538615973895,
    "updateTime": 1538616233239,
    "requestId": "d995479c-8a08-4240-903b-af469c67be1f"
}
PropriétéDescription
idUne valeur en lecture seule générée par le système qui identifie la tâche d’exportation qui vient d’être créée.

Si destination.segmentPerBatch avait été défini sur true, l’objet destination ci-dessus aurait également un tableau batches, comme illustré ci-dessous :

    "destination": {
        "dataSetId": "{DATASET_ID}",
        "segmentPerBatch": true,
        "batches": [
            {
                "segmentId": "segment1",
                "segmentNs": "ups",
                "status": ["realized"],
                "batchId": "da5cfb4de32c4b93a09f7e37fa53ad52"
            },
            {
                "segmentId": "segment2",
                "segmentNs": "AdCloud",
                "status": "exited",
                "batchId": "df4gssdfb93a09f7e37fa53ad52"
            }
        ]
    }

Récupération d’une tâche d’exportation spécifique

Vous pouvez récupérer des informations détaillées sur une tâche d’exportation spécifique en effectuant une requête de GET sur le point de terminaison /export/jobs et en fournissant l’identifiant de la tâche d’exportation que vous souhaitez récupérer dans le chemin d’accès de la requête.

Format d’API

GET /export/jobs/{EXPORT_JOB_ID}
ParamètreDescription
{EXPORT_JOB_ID}L’id de la tâche d’exportation à laquelle vous souhaitez accéder.

Requête

Exemple de requête pour récupérer une tâche d’exportation.
curl -X GET https://platform.adobe.io/data/core/ups/export/jobs/11037 \
 -H 'Authorization: Bearer {ACCESS_TOKEN}' \
 -H 'x-gw-ims-org-id: {ORG_ID}' \
 -H 'x-api-key: {API_KEY}' \
 -H 'x-sandbox-name: {SANDBOX_NAME}'

Réponse

Une réponse réussie renvoie un état HTTP 200 avec des informations détaillées sur la tâche d’exportation spécifiée.

Exemple de réponse lors de la récupération d’une tâche d’exportation.
{
    "id": 11037,
    "jobType": "BATCH",
    "destination": {
        "datasetId": "5b7c86968f7b6501e21ba9df",
        "segmentPerBatch": false,
        "batchId": "da5cfb4de32c4b93a09f7e37fa53ad52"
    },
    "fields": "identities.id,personalEmail.address",
    "schema": {
        "name": "_xdm.context.profile"
    },
    "imsOrgId": "{ORG_ID}",
    "status": "SUCCEEDED",
    "filter": {
        "segments": [
            {
                "segmentId": "52c26d0d-45f2-47a2-ab30-ed06abc981ff",
                "segmentNs": "ups",
                "status":[
                    "realized"
                ]
            }
        ]
    },
    "mergePolicy": {
        "id": "timestampOrdered-none-mp",
        "version": 1
    },
    "profileInstanceId": "ups",
    "metrics": {
        "totalTime": {
            "startTimeInMs": 123456789000,
            "endTimeInMs": 123456799000,
            "totalTimeInMs": 10000
        },
        "profileExportTime": {
            "startTimeInMs": 123456789000,
            "endTimeInMs": 123456799000,
            "totalTimeInMs": 10000
        },
        "totalExportedProfileCounter": 20,
        "exportedProfileByNamespaceCounter": {
            "namespace1": 10,
            "namespace2": 5
        }
    },
    "computeGatewayJobId": {
        "exportJob": "f3058161-7349-4ca9-807d-212cee2c2e94"
    },
    "creationTime": 1538615973895,
    "updateTime": 1538616233239,
    "requestId": "d995479c-8a08-4240-903b-af469c67be1f"
}
PropriétéDescription
destination

Informations de destination pour les données exportées :

  • datasetId : identifiant du jeu de données dans lequel les données ont été exportées.
  • segmentPerBatch : valeur booléenne qui indique si les identifiants de segment sont consolidés ou non. Une valeur false signifie que tous les identifiants de segment se trouvaient dans un seul identifiant de lot. Une valeur true signifie qu’un identifiant de segment est exporté dans un identifiant de lot.
fieldsListe des champs exportés, séparés par des virgules.
schema.nameNom du schéma associé au jeu de données dans lequel les données doivent être exportées.
filter.segments

Segments exportés. Les champs suivants sont inclus :

  • segmentId : identifiant du segment pour les profils à exporter.
  • segmentNs : espace de noms du segment pour le segmentID donné.
  • status : un tableau de chaînes fournissant un filtre d’état pour segmentID. Par défaut, status possède la valeur ["realized"] qui représente tous les profils appartenant au segment à l’heure actuelle. Les valeurs possibles sont les suivantes : realized et exited. Une valeur realized signifie que le profil est admissible pour le segment. Une valeur exiting signifie que le profil quitte le segment.
mergePolicyFusionner les informations de stratégie pour les données exportées.
metrics.totalTimeUn champ indiquant le temps total nécessaire à l’exécution de la tâche d’exportation.
metrics.profileExportTimeUn champ indiquant le temps nécessaire à l’exportation des profils.
totalExportedProfileCounterLe nombre total de profils exportés entre tous les lots.