일괄 처리 수집 개발자 안내서
이 문서는 Adobe Experience Platform에서 일괄 처리 수집 API 끝점을 사용하는 방법에 대한 포괄적인 안내서를 제공합니다. 사전 요구 사항 및 모범 사례를 포함한 일괄 처리 수집 API에 대한 개요를 보려면 일괄 처리 수집 API 개요를 읽는 것부터 시작하십시오.
이 문서의 부록에서는 샘플 CSV 및 JSON 데이터 파일을 포함하여 수집에 사용할 데이터 서식 지정에 대한 정보를 제공합니다.
시작하기
이 안내서에 사용된 API 끝점은 일괄 처리 수집 API의 일부입니다. 지원되는 객체 유형에 대해 기본 CRUD 작업을 수행할 수 있는 RESTful API를 통해 일괄 수집이 제공됩니다.
계속하기 전에 일괄 처리 수집 API 개요 및 시작 안내서를 검토하십시오.
JSON 파일 수집
일괄 처리 만들기
먼저 JSON을 입력 형식으로 한 일괄 처리를 만들어야 합니다. 배치를 생성할 때 데이터 세트 ID를 제공해야 합니다. 또한 배치의 일부로 업로드된 모든 파일이 제공된 데이터 세트에 연결된 XDM 스키마를 준수하는지 확인해야 합니다.
isMultiLineJson
플래그를 설정해야 합니다. 자세한 내용은 일괄 처리 수집 문제 해결 안내서를 참조하십시오.API 형식
POST /batches
요청
curl -X POST https://platform.adobe.io/data/foundation/import/batches \
-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 '{
"datasetId": "{DATASET_ID}",
"inputFormat": {
"format": "json"
}
}'
{DATASET_ID}
응답
{
"id": "{BATCH_ID}",
"imsOrg": "{ORG_ID}",
"updated": 0,
"status": "loading",
"created": 0,
"relatedObjects": [
{
"type": "dataSet",
"id": "{DATASET_ID}"
}
],
"version": "1.0.0",
"tags": {},
"createdUser": "{USER_ID}",
"updatedUser": "{USER_ID}"
}
{BATCH_ID}
{DATASET_ID}
파일 업로드
배치를 만들었으므로 이제 배치 생성 응답의 배치 ID를 사용하여 파일을 배치에 업로드할 수 있습니다. 여러 파일을 배치에 업로드할 수 있습니다.
API 형식
PUT /batches/{BATCH_ID}/datasets/{DATASET_ID}/files/{FILE_NAME}
{BATCH_ID}
{DATASET_ID}
{FILE_NAME}
요청
curl -X PUT https://platform.adobe.io/data/foundation/import/batches/{BATCH_ID}/datasets/{DATASET_ID}/files/{FILE_NAME}.json \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'content-type: application/octet-stream' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
--data-binary "@{FILE_PATH_AND_NAME}.json"
{FILE_PATH_AND_NAME}
acme/customers/campaigns/summer.json
).응답
200 OK
일괄 처리 완료
파일의 여러 부분을 모두 업로드했으면 데이터가 완전히 업로드되었음을 알리고 배치를 승격할 준비가 되었음을 표시해야 합니다.
API 형식
POST /batches/{BATCH_ID}?action=COMPLETE
{BATCH_ID}
요청
curl -X POST "https://platform.adobe.io/data/foundation/import/batches/{BATCH_ID}?action=COMPLETE" \
-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}'
응답
200 OK
Parquet 파일 수집 ingest-parquet-files
일괄 처리 만들기
먼저 Parquet를 입력 형식으로 하여 일괄 처리를 만들어야 합니다. 배치를 생성할 때 데이터 세트 ID를 제공해야 합니다. 또한 배치의 일부로 업로드된 모든 파일이 제공된 데이터 세트에 연결된 XDM 스키마를 준수하는지 확인해야 합니다.
요청
curl -X POST "https://platform.adobe.io/data/foundation/import/batches" \
-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 '{
"datasetId": "{DATASET_ID}",
"inputFormat": {
"format": "parquet"
}
}'
{DATASET_ID}
응답
201 Created
{
"id": "{BATCH_ID}",
"imsOrg": "{ORG_ID}",
"updated": 0,
"status": "loading",
"created": 0,
"relatedObjects": [
{
"type": "dataSet",
"id": "{DATASET_ID}"
}
],
"version": "1.0.0",
"tags": {},
"createdUser": "{USER_ID}",
"updatedUser": "{USER_ID}"
}
{BATCH_ID}
{DATASET_ID}
{USER_ID}
파일 업로드
이제 일괄 처리를 만들었으므로 이전 의 batchId
을(를) 사용하여 파일을 일괄 처리에 업로드할 수 있습니다. 여러 파일을 배치에 업로드할 수 있습니다.
API 형식
PUT /batches/{BATCH_ID}/datasets/{DATASET_ID}/files/{FILE_NAME}
{BATCH_ID}
{DATASET_ID}
{FILE_NAME}
요청
curl -X PUT https://platform.adobe.io/data/foundation/import/batches/{BATCH_ID}/datasets/{DATASET_ID}/files/{FILE_NAME}.parquet \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/octet-stream' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
--data-binary "@{FILE_PATH_AND_NAME}.parquet"
{FILE_PATH_AND_NAME}
acme/customers/campaigns/summer.parquet
).응답
200 OK
일괄 처리 완료
파일의 여러 부분을 모두 업로드했으면 데이터가 완전히 업로드되었음을 알리고 배치를 승격할 준비가 되었음을 표시해야 합니다.
API 형식
POST /batches/{BATCH_ID}?action=complete
{BATCH_ID}
요청
curl -X POST https://platform.adobe.io/data/foundation/import/batches/{BATCH_ID}?action=COMPLETE \
-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}'
응답
200 OK
큰 Parquet 파일 수집
일괄 처리 만들기
먼저 Parquet를 입력 형식으로 하여 일괄 처리를 만들어야 합니다. 배치를 생성할 때 데이터 세트 ID를 제공해야 합니다. 또한 배치의 일부로 업로드된 모든 파일이 제공된 데이터 세트에 연결된 XDM 스키마를 준수하는지 확인해야 합니다.
API 형식
POST /batches
요청
curl -X POST https://platform.adobe.io/data/foundation/import/batches \
-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 '{
"datasetId": "{DATASET_ID}",
"inputFormat": {
"format": "parquet"
}
}'
{DATASET_ID}
응답
201 Created
{
"id": "{BATCH_ID}",
"imsOrg": "{ORG_ID}",
"updated": 0,
"status": "loading",
"created": 0,
"relatedObjects": [
{
"type": "dataSet",
"id": "{DATASET_ID}"
}
],
"version": "1.0.0",
"tags": {},
"createdUser": "{USER_ID}",
"updatedUser": "{USER_ID}"
}
{BATCH_ID}
{DATASET_ID}
{USER_ID}
대용량 파일 초기화
일괄 처리를 작성한 후 일괄 처리에 청크를 업로드하기 전에 큰 파일을 초기화해야 합니다.
API 형식
POST /batches/{BATCH_ID}/datasets/{DATASET_ID}/files/{FILE_NAME}
{BATCH_ID}
{DATASET_ID}
{FILE_NAME}
요청
curl -X POST https://platform.adobe.io/data/foundation/import/batches/{BATCH_ID}/datasets/{DATASET_ID}/files/{FILE_NAME}.parquet?action=INITIALIZE \
-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}'
응답
201 Created
큰 파일 청크 업로드
이제 파일이 생성되었으므로 파일의 각 섹션에 대해 하나씩 반복된 PATCH 요청을 수행하여 모든 후속 청크를 업로드할 수 있습니다.
API 형식
PATCH /batches/{BATCH_ID}/datasets/{DATASET_ID}/files/{FILE_NAME}
{BATCH_ID}
{DATASET_ID}
{FILE_NAME}
요청
curl -X PATCH https://platform.adobe.io/data/foundation/import/batches/{BATCH_ID}/datasets/{DATASET_ID}/files/{FILE_NAME}.parquet \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/octet-stream' \
-H 'Content-Range: bytes {CONTENT_RANGE}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
--data-binary "@{FILE_PATH_AND_NAME}.parquet"
{CONTENT_RANGE}
{FILE_PATH_AND_NAME}
acme/customers/campaigns/summer.json
).응답
200 OK
전체 대형 파일
이제 일괄 처리를 만들었으므로 이전 의 batchId
을(를) 사용하여 파일을 일괄 처리에 업로드할 수 있습니다. 여러 파일을 배치에 업로드할 수 있습니다.
API 형식
POST /batches/{BATCH_ID}/datasets/{DATASET_ID}/files/{FILE_NAME}
{BATCH_ID}
{DATASET_ID}
{FILE_NAME}
요청
curl -X POST https://platform.adobe.io/data/foundation/import/batches/{BATCH_ID}/datasets/{DATASET_ID}/files/{FILE_NAME}.parquet?action=COMPLETE \
-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}'
응답
201 Created
일괄 처리 완료
파일의 여러 부분을 모두 업로드했으면 데이터가 완전히 업로드되었음을 알리고 배치를 승격할 준비가 되었음을 표시해야 합니다.
API 형식
POST /batches/{BATCH_ID}?action=COMPLETE
{BATCH_ID}
요청
curl -X POST https://platform.adobe.io/data/foundation/import/batches/{BATCH_ID}?action=COMPLETE \
-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}'
응답
200 OK
CSV 파일 수집
CSV 파일을 수집하려면 CSV를 지원하는 클래스, 스키마 및 데이터 세트를 만들어야 합니다. 필요한 클래스와 스키마를 만드는 방법에 대한 자세한 내용은 임시 스키마 만들기 자습서에 제공된 지침을 따르십시오.
데이터 세트 만들기
위의 지침에 따라 필요한 클래스와 스키마를 만든 후에는 CSV를 지원할 수 있는 데이터 세트를 만들어야 합니다.
API 형식
POST /catalog/dataSets
요청
curl -X POST https://platform.adobe.io/data/foundation/catalog/dataSets \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
-d '{
"name": "{DATASET_NAME}",
"schemaRef": {
"id": "https://ns.adobe.com/{TENANT_ID}/schemas/{SCHEMA_ID}",
"contentType": "application/vnd.adobe.xed+json;version=1"
}
}'
{TENANT_ID}
{SCHEMA_ID}
일괄 처리 만들기
그런 다음 CSV를 입력 형식으로 사용하여 일괄 처리를 만들어야 합니다. 배치를 생성할 때 데이터 세트 ID를 제공해야 합니다. 또한 배치의 일부로 업로드된 모든 파일이 제공된 데이터 세트에 연결된 스키마를 준수하는지 확인해야 합니다.
API 형식
POST /batches
요청
curl -X POST https://platform.adobe.io/data/foundation/import/batches \
-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 '{
"datasetId": "{DATASET_ID}",
"inputFormat": {
"format": "csv"
}
}'
{DATASET_ID}
응답
201 Created
{
"id": "{BATCH_ID}",
"imsOrg": "{ORG_ID}",
"updated": 0,
"status": "loading",
"created": 0,
"relatedObjects": [
{
"type": "dataSet",
"id": "{DATASET_ID}"
}
],
"version": "1.0.0",
"tags": {},
"createdUser": "{USER_ID}",
"updatedUser": "{USER_ID}"
}
{BATCH_ID}
{DATASET_ID}
{USER_ID}
파일 업로드
이제 일괄 처리를 만들었으므로 이전 의 batchId
을(를) 사용하여 파일을 일괄 처리에 업로드할 수 있습니다. 여러 파일을 배치에 업로드할 수 있습니다.
API 형식
PUT /batches/{BATCH_ID}/datasets/{DATASET_ID}/files/{FILE_NAME}
{BATCH_ID}
{DATASET_ID}
{FILE_NAME}
요청
curl -X PUT https://platform.adobe.io/data/foundation/import/batches/{BATCH_ID}/datasets/{DATASET_ID}/files/{FILE_NAME}.csv \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/octet-stream' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
--data-binary "@{FILE_PATH_AND_NAME}.csv"
{FILE_PATH_AND_NAME}
acme/customers/campaigns/summer.csv
).응답
200 OK
일괄 처리 완료
파일의 여러 부분을 모두 업로드했으면 데이터가 완전히 업로드되었음을 알리고 배치를 승격할 준비가 되었음을 표시해야 합니다.
API 형식
POST /batches/{BATCH_ID}?action=COMPLETE
요청
curl -X POST https://platform.adobe.io/data/foundation/import/batches/{BATCH_ID}?action=COMPLETE \
-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}'
응답
200 OK
일괄 처리 취소
일괄 처리를 처리하는 동안 취소할 수 있습니다. 하지만 일괄 처리가 완료되면(예: 성공 또는 실패 상태) 일괄 처리를 취소할 수 없습니다.
API 형식
POST /batches/{BATCH_ID}?action=ABORT
{BATCH_ID}
요청
curl -X POST https://platform.adobe.io/data/foundation/import/batches/{BATCH_ID}?action=ABORT \
-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}'
응답
200 OK
일괄 처리 삭제 delete-a-batch
삭제할 일괄 처리의 ID에 대해 action=REVERT
쿼리 매개 변수로 다음 POST 요청을 수행하여 일괄 처리를 삭제할 수 있습니다. 배치가 "비활성"으로 표시되어 가비지 수집에 적합합니다. 배치는 비동기적으로 수집되며, 이 때 "삭제됨"으로 표시됩니다.
API 형식
POST /batches/{BATCH_ID}?action=REVERT
{BATCH_ID}
요청
curl -X POST https://platform.adobe.io/data/foundation/import/batches/{BATCH_ID}?action=REVERT \
-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}'
응답
200 OK
일괄 처리 패치
조직의 프로필 스토어에서 데이터를 업데이트해야 하는 경우가 있습니다. 예를 들어 레코드를 수정하거나 속성 값을 변경해야 할 수 있습니다. Adobe Experience Platform은 업데이트 작업 또는 "일괄 패치 작업"을 통해 프로필 스토어 데이터의 업데이트 또는 패치를 지원합니다.
배치를 패치하려면 다음 조건을 충족해야 합니다.
- 프로필 및 특성 업데이트에 사용할 수 있는 데이터 집합입니다. 이 작업은 데이터 세트 태그를 통해 수행되며 특정
isUpsert:true
태그를unifiedProfile
배열에 추가해야 합니다. 데이터 집합을 만들거나 업데이트할 기존 데이터 집합을 구성하는 방법을 보여 주는 자세한 단계를 보려면 프로필 업데이트에 대한 데이터 집합을 활성화하는 자습서를 따르십시오. - 패치할 필드와 프로필의 ID 필드가 포함된 Parquet 파일입니다. 일괄 처리를 패치하는 데이터 형식은 일반 일괄 처리 수집 프로세스와 유사합니다. 필요한 입력은 Parquet 파일이며, 업데이트할 필드 외에도 프로필 저장소의 데이터와 일치시키기 위해 업로드된 데이터에는 ID 필드가 포함되어야 합니다.
프로필 및 업데이트에 대한 데이터 세트를 사용할 수 있고, 패치할 필드와 필수 ID 필드가 포함된 Parquet 파일이 있으면 Parquet 파일을 수집하는 단계에 따라 일괄 처리 수집을 통해 패치를 완료할 수 있습니다.
배치 재생
이미 수집된 배치를 바꾸려면 "배치 재생"을 사용합니다. 이 작업은 이전 배치를 삭제하고 대신 새 배치를 수집하는 것과 같습니다.
일괄 처리 만들기
먼저 JSON을 입력 형식으로 한 일괄 처리를 만들어야 합니다. 배치를 생성할 때 데이터 세트 ID를 제공해야 합니다. 또한 배치의 일부로 업로드된 모든 파일이 제공된 데이터 세트에 연결된 XDM 스키마를 준수하는지 확인해야 합니다. 또한 이전 배치를 재생 섹션에 참조로 제공해야 합니다. 아래 예에서는 ID가 batchIdA
및 batchIdB
인 배치를 재생하고 있습니다.
API 형식
POST /batches
요청
curl -X POST https://platform.adobe.io/data/foundation/import/batches \
-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 '{
"datasetId": "{DATASET_ID}",
"inputFormat": {
"format": "json"
},
"replay": {
"predecessors": ["${batchIdA}","${batchIdB}"],
"reason": "replace"
}
}'
{DATASET_ID}
응답
201 Created
{
"id": "{BATCH_ID}",
"imsOrg": "{ORG_ID}",
"updated": 0,
"status": "loading",
"created": 0,
"relatedObjects": [
{
"type": "dataSet",
"id": "{DATASET_ID}"
}
],
"replay": {
"predecessors": [
"batchIdA", "batchIdB"
],
"reason": "replace"
},
"version": "1.0.0",
"tags": {},
"createdUser": "{USER_ID}",
"updatedUser": "{USER_ID}"
}
{BATCH_ID}
{DATASET_ID}
{USER_ID}
파일 업로드
이제 일괄 처리를 만들었으므로 이전 의 batchId
을(를) 사용하여 파일을 일괄 처리에 업로드할 수 있습니다. 여러 파일을 배치에 업로드할 수 있습니다.
API 형식
PUT /batches/{BATCH_ID}/datasets/{DATASET_ID}/files/{FILE_NAME}
{BATCH_ID}
{DATASET_ID}
{FILE_NAME}
요청
curl -X PUT https://platform.adobe.io/data/foundation/import/batches/{BATCH_ID}/datasets/{DATASET_ID}/files/{FILE_NAME}.json \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/octet-stream' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
--data-binary "@{FILE_PATH_AND_NAME}.json"
{FILE_PATH_AND_NAME}
acme/customers/campaigns/summer.json
).응답
200 OK
일괄 처리 완료
파일의 여러 부분을 모두 업로드했으면 데이터가 완전히 업로드되었음을 알리고 배치를 승격할 준비가 되었음을 표시해야 합니다.
API 형식
POST /batches/{BATCH_ID}?action=COMPLETE
{BATCH_ID}
요청
curl -X POST https://platform.adobe.io/data/foundation/import/batches/{BATCH_ID}?action=COMPLETE \
-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}'
응답
200 OK
부록
다음 섹션에서는 일괄 처리 수집을 사용하여 Experience Platform에서 데이터를 수집하기 위한 추가 정보를 제공합니다.
일괄 처리 수집을 위한 데이터 변환
데이터 파일을 Experience Platform (으)로 수집하려면 파일의 계층 구조가 업로드할 데이터 세트와 연결된 XDM(Experience Data Model) 스키마를 준수해야 합니다.
XDM 스키마를 준수하도록 CSV 파일을 매핑하는 방법에 대한 정보는 올바른 형식의 JSON 데이터 파일의 예제와 함께 샘플 변형 문서에서 확인할 수 있습니다. 문서에 제공된 샘플 파일은 여기에서 찾을 수 있습니다.