세그먼트 내보내기 작업 엔드포인트
작성 대상:
- 개발자
내보내기 작업은 대상 세그먼트 구성원을 데이터 세트로 지속하는 데 사용되는 비동기 프로세스입니다. Adobe Experience Platform Segmentation API에서 내보내기 작업을 프로그래밍 방식으로 검색, 만들기 및 취소할 수 있는 /export/jobs
끝점을 사용할 수 있습니다.
시작하기
이 가이드에 사용된 끝점은 Adobe Experience Platform Segmentation Service API의 일부입니다. 계속하기 전에 시작 안내서에서 필수 헤더와 예제 API 호출을 읽는 방법 등 API를 성공적으로 호출하기 위해 알아야 하는 중요한 정보를 검토하십시오.
내보내기 작업 목록 검색
/export/jobs
끝점에 대한 GET 요청을 수행하여 조직에 대한 모든 내보내기 작업 목록을 검색할 수 있습니다.
API 형식
/export/jobs
끝점은 결과를 필터링하는 데 도움이 되는 몇 가지 쿼리 매개 변수를 지원합니다. 이러한 매개 변수는 선택 사항이지만 값비싼 오버헤드를 줄이는 데 도움이 되도록 사용하는 것이 좋습니다. 매개 변수 없이 이 끝점을 호출하면 조직에서 사용할 수 있는 모든 내보내기 작업을 검색합니다. 여러 매개 변수를 포함할 수 있으며 앰퍼샌드(&
)로 구분됩니다.
GET /export/jobs
GET /export/jobs?{QUERY_PARAMETERS}
쿼리 매개 변수
매개변수 | 설명 | 예 |
---|---|---|
limit | 반환된 내보내기 작업 수를 지정합니다. | limit=10 |
offset | 결과 페이지의 오프셋을 지정합니다. | offset=1540974701302_96 |
status | 상태를 기반으로 결과를 필터링합니다. 지원되는 값은 "NEW", "SUCCEEDED" 및 "FAILED"입니다. | status=NEW |
요청
다음 요청은 조직 내에서 마지막 두 개의 내보내기 작업을 검색합니다.
curl -X GET https://platform.adobe.io/data/core/ups/export/jobs?limit=2 \
-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을 반환합니다.
{
"records": [
{
"id": 100,
"jobType": "BATCH",
"destination": {
"datasetId": "5b7c86968f7b6501e21ba9df",
"segmentPerBatch": false,
"batchId": "da5cfb4de32c4b93a09f7e37fa53ad52",
},
"fields": "identities.id,personalEmail.address",
"schema": {
"name": "_xdm.context.profile"
},
"imsOrgId": "1BD6382559DF0C130A49422D@AdobeOrg",
"status": "SUCCEEDED",
"filter": {
"segments": [
{
"segmentId": "52c26d0d-45f2-47a2-ab30-ed06abc981ff",
"segmentNs": "ups",
"status": [
"realized"
]
}
]
},
"mergePolicy": {
"id": "timestampOrdered-none-mp",
"version": 1
},
"profileInstanceId": "ups",
"errors": [
{
"code": "0100000003",
"msg": "Error in Export Job",
"callStack": "com.adobe.aep.unifiedprofile.common.logging.Logger"
}
],
"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"
},
{
"profileInstanceId": "test_xdm_latest_profile_20_e2e_1538573005395",
"errors": [
{
"code": "0090000009",
"msg": "Error writing profiles to output path 'adl://va7devprofilesnapshot.azuredatalakestore.net/snapshot/722'",
"callStack": "com.adobe.aep.unifiedprofile.common.logging.Logger"
},
{
"code": "unknown",
"msg": "Job aborted.",
"callStack": "org.apache.spark.SparkException: Job aborted."
}
],
"jobType": "BATCH",
"filter": {
"segments": [
{
"segmentId": "52c26d0d-45f2-47a2-ab30-ed06abc981ff",
"segmentNs": "AAM",
"status": ["realized"]
}
]
},
"id": 722,
"schema": {
"name": "_xdm.context.profile"
},
"mergePolicy": {
"id": "7972e3d6-96ea-4ece-9627-cbfd62709c5d",
"version": 1
},
"status": "FAILED",
"requestId": "KbOAsV7HXmdg262lc4yZZhoml27UWXPZ",
"computeGatewayJobId": {
"exportJob": "15971e0f-317c-4390-9038-1a0498eb356f"
},
"metrics": {
"totalTime": {
"startTimeInMs": 1538573416687,
"endTimeInMs": 1538573922551,
"totalTimeInMs": 505864
},
"profileExportTime": {
"startTimeInMs": 1538573872211,
"endTimeInMs": 1538573918809,
"totalTimeInMs": 46598
}
},
"destination": {
"datasetId": "5bb4c46757920712f924a3eb",
"segmentPerBatch": false,
"batchId": "IWEQ6920712f9475762D"
},
"updateTime": 1538573922551,
"imsOrgId": "1BD6382559DF0C130A49422D@AdobeOrg",
"creationTime": 1538573416687
}
],
"page":{
"sortField": "createdTime",
"sort": "desc",
"pageOffset": "1540974701302_96",
"pageSize": 2
},
"link":{
"next": "/export/jobs/?limit=2&offset=1538573416687_722"
}
}
destination
내보낸 데이터의 대상 정보:
datasetId
: 데이터를 내보낸 데이터 세트의 ID입니다.segmentPerBatch
: 세그먼트 ID의 통합 여부를 보여 주는 부울 값입니다. 값이 "false"이면 모든 세그먼트 ID를 단일 배치 ID로 내보내는 것을 의미합니다. 값이 "true"이면 하나의 세그먼트 ID를 하나의 배치 ID로 내보내는 것을 의미합니다. 참고: 값을 true로 설정하면 일괄 내보내기 성능에 영향을 줄 수 있습니다.
fields
schema.name
filter.segments
내보내는 세그먼트입니다. 다음 필드가 포함되어 있습니다.
segmentId
: 프로필을 내보낼 세그먼트 ID입니다.segmentNs
: 지정된segmentID
에 대한 세그먼트 네임스페이스입니다.status
:segmentID
에 대한 상태 필터를 제공하는 문자열 배열입니다. 기본적으로status
은(는) 현재 시간에 세그먼트에 속하는 모든 프로필을 나타내는 값["realized"]
을(를) 갖습니다. 가능한 값은realized
및exited
입니다.realized
값은 프로필이 세그먼트에 적합함을 의미합니다. 값이exiting
이면 프로필이 세그먼트를 종료하는 것입니다.
mergePolicy
metrics.totalTime
metrics.profileExportTime
page
link.next
새 내보내기 작업 만들기
/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
filter.segments
내보낼 세그먼트를 지정합니다. 이 값을 생략하면 모든 프로필의 모든 데이터를 내보냅니다. 각각 다음 필드가 포함된 세그먼트 오브젝트 배열을 허용합니다.
segmentId
: (segments
을(를) 사용하는 경우 필수) 프로필을 내보낼 세그먼트 ID입니다.- 지정된
segmentID
에 대한segmentNs
(선택 사항) 세그먼트 네임스페이스입니다. status
(선택 사항)segmentID
에 대한 상태 필터를 제공하는 문자열 배열입니다. 기본적으로status
은(는) 현재 시간에 세그먼트에 속하는 모든 프로필을 나타내는 값["realized"]
을(를) 갖습니다. 가능한 값은realized
및exited
입니다.realized
값은 프로필이 세그먼트에 적합함을 의미합니다. 값이exiting
이면 프로필이 세그먼트를 종료하는 것입니다.
filter.segmentQualificationTime
filter.segmentQualificationTime.startTime
filter.segmentQualificationTime.endTime
filter.fromIngestTimestamp
내보낸 프로필은 이 타임스탬프 이후에 업데이트된 프로필만 포함하도록 제한됩니다. 타임스탬프는 RFC 3339 형식으로 제공해야 합니다.
- 프로필 에 대한
fromIngestTimestamp
(제공된 경우): 병합된 업데이트된 타임스탬프가 지정된 타임스탬프보다 큰 병합된 모든 프로필을 포함합니다.greater_than
피연산자 지원. - 이벤트 에 대한
fromIngestTimestamp
: 이 타임스탬프 이후에 수집된 모든 이벤트는 결과 프로필 결과에 따라 내보내집니다. 이는 이벤트 시간 자체가 아니라 이벤트에 대한 수집 시간입니다.
filter.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"]
을(를) 갖습니다. 가능한 값은realized
및exited
입니다.realized
값은 프로필이 세그먼트에 적합함을 의미합니다. 값이exiting
이면 프로필이 세그먼트를 종료하는 것입니다.
mergePolicy
metrics.totalTime
metrics.profileExportTime
totalExportedProfileCounter
특정 내보내기 작업 취소 또는 삭제
/export/jobs
끝점에 DELETE 요청을 하고 요청 경로에 삭제할 내보내기 작업의 ID를 제공하여 지정된 내보내기 작업의 삭제를 요청할 수 있습니다.
API 형식
DELETE /export/jobs/{EXPORT_JOB_ID}
{EXPORT_JOB_ID}
id
입니다.요청
curl -X DELETE https://platform.adobe.io/data/core/ups/export/jobs/{EXPORT_JOB_ID} \
-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 상태 204를 반환합니다.
{
"status": true,
"message": "Export job has been marked for cancelling"
}
다음 단계
이 안내서를 읽고 나면 이제 내보내기 작업이 작동하는 방식에 대해 더 잘 이해할 수 있습니다.