Criar um novo trabalho de exportação

Você pode criar um novo trabalho de exportação fazendo uma solicitação POST para o ponto de extremidade /export/jobs.

Formato da API

POST /export/jobs

Solicitação

A solicitação a seguir cria um novo trabalho de exportação, configurado pelos parâmetros fornecidos na carga.

Um exemplo de solicitação para criar um trabalho de exportação.
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
    }
}'
PropriedadeDescrição
fieldsUma lista dos campos exportados, separados por vírgulas. Se deixado em branco, todos os campos serão exportados.
mergePolicyEspecifica a política de mesclagem para controlar os dados exportados. Inclua esse parâmetro quando houver vários segmentos sendo exportados. Se não for fornecido, a exportação seguirá a mesma política de mesclagem que o segmento fornecido.
filterUm objeto que especifica os segmentos que serão incluídos no trabalho de exportação por ID, tempo de qualificação ou tempo de assimilação, dependendo das subpropriedades listadas abaixo. Se deixado em branco, todos os dados serão exportados.
filter.segments

Especifica os segmentos a serem exportados. A omissão desse valor resultará na exportação de todos os dados de todos os perfis. Aceita uma matriz de objetos de segmento, cada um contendo os seguintes campos:

  • segmentId: (Obrigatório se estiver usando segments) ID de segmento para perfis a serem exportados.
  • segmentNs (Opcional) Namespace de segmento para o segmentID especificado.
  • status (Opcional) Uma matriz de cadeias de caracteres que fornece um filtro de status para segmentID. Por padrão, status terá o valor ["realized"], que representa todos os perfis que caem no segmento no momento atual. Os valores possíveis incluem: realized e exited. Um valor de realized significa que o perfil se qualifica para o segmento. Um valor de exiting significa que o perfil está saindo do segmento.
filter.segmentQualificationTimeFiltrar com base no tempo de qualificação do segmento. A hora de início e/ou de término pode ser fornecida.
filter.segmentQualificationTime.startTimeHora de início da qualificação de segmento para uma ID de segmento para um determinado status. Se não for fornecido, não haverá filtro na hora de início para uma qualificação de ID de segmento. O carimbo de data/hora deve ser fornecido no formato RFC 3339.
filter.segmentQualificationTime.endTimeHora de término da qualificação de segmento para uma ID de segmento para um determinado status. Se não for fornecido, não haverá filtro na hora de término para uma qualificação de ID de segmento. O carimbo de data/hora deve ser fornecido no formato RFC 3339.
filter.fromIngestTimestamp

Limita os perfis exportados para incluir apenas aqueles que foram atualizados após esse carimbo de data e hora. O carimbo de data/hora deve ser fornecido no formato RFC 3339.

  • fromIngestTimestamp para perfis, se fornecido: inclui todos os perfis mesclados em que o carimbo de data/hora atualizado mesclado é maior que o carimbo de data/hora fornecido. Suporta o operando greater_than.
  • fromIngestTimestamp para eventos: todos os eventos assimilados após esse carimbo de data/hora serão exportados correspondendo ao resultado do perfil resultante. Esse não é o tempo do evento em si, mas o tempo de assimilação dos eventos.
filter.emptyProfilesUm valor booleano que indica se os perfis vazios devem ser filtrados. Os perfis podem conter registros de perfil, registros ExperienceEvent ou ambos. Perfis sem registros de perfil e somente registros ExperienceEvent são chamados de "emptyProfiles". Para exportar todos os perfis no repositório de perfis, incluindo o "emptyProfiles", defina o valor de emptyProfiles como true. Se emptyProfiles estiver definido como false, somente perfis com registros de perfil no armazenamento serão exportados. Por padrão, se o atributo emptyProfiles não for incluído, somente os perfis que contêm registros de perfil serão exportados.
additionalFields.eventList

Controla os campos de evento de série temporal exportados para objetos filho ou associados fornecendo uma ou mais das seguintes configurações:

  • fields: Controle os campos a serem exportados.
  • filter: especifica os critérios que limitam os resultados incluídos de objetos associados. Espera um valor mínimo necessário para a exportação, normalmente uma data.
  • filter.fromIngestTimestamp: Filtra os eventos de série temporal para aqueles que foram assimilados após o carimbo de data/hora fornecido. Esse não é o tempo do evento em si, mas o tempo de assimilação dos eventos.
  • filter.toIngestTimestamp: Filtra o carimbo de data/hora para aqueles que foram assimilados antes do carimbo de data/hora fornecido. Esse não é o tempo do evento em si, mas o tempo de assimilação dos eventos.
destination

(Obrigatório) Informações sobre os dados exportados:

  • datasetId: (Obrigatório) A ID do conjunto de dados para o qual os dados devem ser exportados.
  • segmentPerBatch: (Opcional) Um valor booliano que, se não for fornecido, assumirá "false" como padrão. Um valor "false" exporta todas as IDs de segmento em uma única ID de lote. Um valor "true" exporta uma ID de segmento em uma ID de lote. Observe que definir o valor como "true" pode afetar o desempenho da exportação de lote.
schema.name(Obrigatório) O nome do esquema associado ao conjunto de dados para o qual os dados devem ser exportados.
evaluationInfo.segmentation(Opcional) Um valor booliano que, se não for fornecido, assumirá false como padrão. Um valor de true indica que a segmentação precisa ser feita no trabalho de exportação.

Resposta

Uma resposta bem-sucedida retorna o status HTTP 200 com detalhes do trabalho de exportação recém-criado.

Um exemplo de resposta ao criar um trabalho de exportação.
{
    "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"
}
PropriedadeDescrição
idUm valor somente leitura gerado pelo sistema identificando o trabalho de exportação que acabou de ser criado.

Como alternativa, se destination.segmentPerBatch tivesse sido definido como true, o objeto destination acima teria uma matriz batches, como mostrado abaixo:

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

Recuperar um trabalho de exportação específico

Você pode recuperar informações detalhadas sobre um trabalho de exportação específico fazendo uma solicitação GET para o ponto de extremidade /export/jobs e fornecendo a ID do trabalho de exportação que deseja recuperar no caminho da solicitação.

Formato da API

GET /export/jobs/{EXPORT_JOB_ID}
ParâmetroDescrição
{EXPORT_JOB_ID}O id do trabalho de exportação que você deseja acessar.

Solicitação

Uma solicitação de amostra para recuperar um trabalho de exportação.
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}'

Resposta

Uma resposta bem-sucedida retorna o status HTTP 200 com informações detalhadas sobre o trabalho de exportação especificado.

Um exemplo de resposta ao recuperar um trabalho de exportação.
{
    "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"
}
PropriedadeDescrição
destination

Informações de destino dos dados exportados:

  • datasetId: A ID do conjunto de dados para o qual os dados foram exportados.
  • segmentPerBatch: um valor booleano que mostra se as IDs de segmento estão ou não consolidadas. Um valor de false significa que todas as IDs de segmento estavam em uma única ID de lote. Um valor de true significa que uma ID de segmento é exportada para uma ID de lote.
fieldsUma lista dos campos exportados, separados por vírgulas.
schema.nameO nome do esquema associado ao conjunto de dados para o qual os dados devem ser exportados.
filter.segments

Os segmentos que são exportados. Os seguintes campos estão incluídos:

  • segmentId: ID de segmento para perfis a serem exportados.
  • segmentNs: Namespace do segmento para o segmentID especificado.
  • status: uma matriz de cadeias de caracteres que fornece um filtro de status para segmentID. Por padrão, status terá o valor ["realized"], que representa todos os perfis que caem no segmento no momento atual. Os valores possíveis incluem: realized e exited. Um valor de realized significa que o perfil se qualifica para o segmento. Um valor de exiting significa que o perfil está saindo do segmento.
mergePolicyInformações de política de mesclagem para os dados exportados.
metrics.totalTimeUm campo que indica o tempo total que o trabalho de exportação levou para ser executado.
metrics.profileExportTimeUm campo que indica o tempo necessário para os perfis serem exportados.
totalExportedProfileCounterO número total de perfis exportados em todos os lotes.