创建新的导出作业

您可以通过向/export/jobs端点发出POST请求来创建新的导出作业。

API格式

POST /export/jobs

请求

以下请求创建新的导出作业,该作业由有效负载中提供的参数配置。

创建导出作业的示例请求。
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
    }
}'
属性描述
fields导出的字段列表,以逗号分隔。 如果留空,将导出所有字段。
mergePolicy指定用于管理导出数据的合并策略。 有多个区段要导出时包含此参数。 如果未提供,导出将采用与给定区段相同的合并策略。
filter一个对象,它根据下面列出的子属性,按ID、限定时间或摄取时间指定要包含在导出作业中的区段。 如果留空,将导出所有数据。
filter.segments

指定要导出的区段。 忽略此值将导致导出所有用户档案中的所有数据。 接受区段对象的数组,每个对象包含以下字段:

  • segmentId(如果使用segments ​区段ID导出用户档案,则此为必填字段。
  • segmentNs (可选) ​给定segmentID的区段命名空间。
  • status (可选) ​为segmentID提供状态筛选器的字符串数组。 默认情况下,status将具有值["realized"],该值表示当前时间属于该区段的所有用户档案。 可能的值包括: realizedexited。 值为realized表示配置文件符合该区段的条件。 值为exiting表示配置文件正在退出区段。
filter.segmentQualificationTime根据区段鉴别时间进行筛选。 可以提供开始时间和/或结束时间。
filter.segmentQualificationTime.startTime给定状态的区段ID的区段资格开始时间。 如果未提供,则区段ID鉴别的开始时间将不存在过滤器。 时间戳必须以RFC 3339格式提供。
filter.segmentQualificationTime.endTime给定状态的区段ID的区段资格结束时间。 如果未提供,则区段ID鉴别的结束时间将没有过滤器。 时间戳必须以RFC 3339格式提供。
filter.fromIngestTimestamp

限制导出的配置文件仅包括在此时间戳之后更新的配置文件。 时间戳必须以RFC 3339格式提供。

  • 配置文件 ​的fromIngestTimestamp(如果提供):包括合并的更新时间戳大于给定时间戳的所有合并配置文件。 支持greater_than操作数。
  • 个事件 ​的fromIngestTimestamp:将导出在此时间戳之后摄取的所有事件,以对应于生成的配置文件结果。 这不是事件时间本身,而是事件的摄取时间。
filter.emptyProfiles一个布尔值,指示是否筛选空配置文件。 配置文件可以包含配置文件记录、ExperienceEvent记录,或同时包含两者。 没有配置文件记录且只有ExperienceEvent记录的配置文件称为“emptyProfiles”。 要导出配置文件存储中的所有配置文件,包括“emptyProfiles”,请将emptyProfiles的值设置为true。 如果emptyProfiles设置为false,则仅导出存储中具有配置文件记录的配置文件。 默认情况下,如果不包括emptyProfiles属性,则只导出包含配置文件记录的配置文件。
additionalFields.eventList

通过提供以下一个或多个设置,控制为子对象或关联对象导出的时间序列事件字段:

  • fields:控制要导出的字段。
  • filter:指定限制从关联对象包含结果的条件。 需要导出所需的最小值,通常为日期。
  • filter.fromIngestTimestamp:将时间序列事件筛选为提供的时间戳之后摄取的那些事件。 这不是事件时间本身,而是事件的摄取时间。
  • filter.toIngestTimestamp:将时间戳过滤为提供的时间戳之前摄取的那些时间戳。 这不是事件时间本身,而是事件的摄取时间。
destination

(必需) ​有关导出数据的信息:

  • datasetId(必需) ​要导出数据的数据集的ID。
  • segmentPerBatch(可选) ​布尔值,如果未提供,则默认为“false”。 如果值为“false”,则会将所有区段ID导出到单个批次ID中。 值为“true”会将一个区段ID导出到一个批次ID中。 请注意,将该值设置为“true”可能会影响批量导出性能。
schema.name(必需) ​与要导出数据的数据集关联的架构的名称。
evaluationInfo.segmentation(可选) ​布尔值,如果未提供,则默认为false。 值为true表示需要对导出作业进行分段。

响应

成功的响应返回HTTP状态200以及新创建的导出作业的详细信息。

创建导出作业时的示例响应。
{
    "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"
}
属性描述
id系统生成的只读值,用于标识刚创建的导出作业。

或者,如果将destination.segmentPerBatch设置为true,则上述destination对象将具有batches数组,如下所示:

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

检索特定导出作业

您可以通过向/export/jobs端点发出GET请求并在请求路径中提供要检索的导出作业的ID,来检索有关特定导出作业的详细信息。

API格式

GET /export/jobs/{EXPORT_JOB_ID}
参数描述
{EXPORT_JOB_ID}您要访问的导出作业的id

请求

用于检索导出作业的示例请求。
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}'

响应

成功的响应返回HTTP状态200,其中包含有关指定导出作业的详细信息。

检索导出作业时的示例响应。
{
    "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"
}
属性描述
destination

导出数据的目标信息:

  • datasetId:导出数据的数据集的ID。
  • segmentPerBatch:一个布尔值,它显示区段ID是否已合并。 值为false表示所有区段ID都位于单个批次ID中。 值为true表示将一个区段ID导出到一个批次ID中。
fields导出的字段列表,以逗号分隔。
schema.name与要导出数据的数据集关联的架构的名称。
filter.segments

导出的区段。 包括以下字段:

  • segmentId:要导出的配置文件的区段ID。
  • segmentNs:给定segmentID的区段命名空间。
  • status:为segmentID提供状态筛选器的字符串数组。 默认情况下,status将具有值["realized"],该值表示当前时间属于该区段的所有用户档案。 可能的值包括: realizedexited。 值为realized表示配置文件符合该区段的条件。 值为exiting表示配置文件正在退出区段。
mergePolicy合并导出数据的策略信息。
metrics.totalTime指示导出作业运行总时间的字段。
metrics.profileExportTime指示导出用户档案所用时间的字段。
totalExportedProfileCounter跨所有批次导出的配置文件总数。