データ取り込みエラー診断の取得
Adobe Experience Platform でのデータのアップロードと取得には 2 つの方法があります。 バッチ取り込みを使用すると、様々なファイルタイプ(CSVなど)を使用してデータを挿入できます。また、ストリーミング取り込みを使用すると、ストリーミングエンドポイントを使用してデータをExperience Platformにリアルタイムで挿入できます。
このドキュメントでは、バッチ取り込みの監視、部分的なバッチ取り込みエラーの管理、および部分的なバッチ取り込みタイプのリファレンスについて説明します。
はじめに
このガイドは、Adobe Experience Platform の次のコンポーネントを実際に利用および理解しているユーザーを対象としています。
- Experience Data Model (XDM) System:Experience Platform がカスタマーエクスペリエンスのデータの整理に使用する、標準化されたフレームワーク。
- Adobe Experience Platform Data Ingestion:Experience Platform にデータを送信するメソッド。
API 呼び出し例の読み取り
このチュートリアルでは、API 呼び出しの例を提供し、リクエストの形式を設定する方法を示します。 これには、パス、必須ヘッダー、適切な形式のリクエストペイロードが含まれます。 また、API レスポンスで返されるサンプル JSON も示されています。 ドキュメントで使用される API 呼び出し例の表記について詳しくは、 トラブルシューテングガイドのAPI 呼び出し例の読み方に関する節を参照してくださいExperience Platform。
必須ヘッダーの値の収集
Experience Platform API を呼び出すには、まず認証チュートリアルを完了する必要があります。 次に示すように、すべての Experience Platform API 呼び出しに必要な各ヘッダーの値は認証チュートリアルで説明されています。
Authorization: Bearer {ACCESS_TOKEN}x-api-key: {API_KEY}x-gw-ims-org-id: {ORG_ID}
Schema Registryに属するリソースを含むExperience Platformのすべてのリソースは、特定の仮想サンドボックスに分離されます。 Experience Platform API へのすべてのリクエストには、操作がおこなわれるサンドボックスの名前を指定するヘッダーが必要です。
x-sandbox-name: {SANDBOX_NAME}
エラー診断のダウンロード download-diagnostics
Adobe Experience Platformを使用すると、入力ファイルのエラー診断をダウンロードできます。 診断は、最大30日間Experience Platform以内に保持されます。
入力ファイルのリスト list-files
次のリクエストは、最終的なバッチで提供されたすべてのファイルのリストを取得します。
API 形式
GET /batches/{BATCH_ID}/meta?path=input_files
{BATCH_ID}リクエスト
curl -X GET https://platform.adobe.io/data/foundation/export/batches/af838510-2233-11ea-acf0-f3edfcded2d2/meta?path=input_files \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
応答
応答が成功すると、診断が保存された場所の詳細を示すJSON オブジェクトが返されます。
{
"_page": {
"count": 1,
"limit": 100
},
"data": [
{
"_links": {
"self": {
"href": "https://platform.adobe.io/data/foundation/export/batches/af838510-2233-11ea-acf0-f3edfcded2d2/meta?path=input_files/fileMetaData1.json"
}
},
"length": "1337",
"name": "fileMetaData1.json"
},
{
"_links": {
"self": {
"href": "https://platform.adobe.io/data/foundation/export/batches/af838510-2233-11ea-acf0-f3edfcded2d2}/meta?path=input_files/fileMetaData2.json"
}
},
"length": "1042",
"name": "fileMetaData2.json"
}
]
}
入力ファイル診断の取得 retrieve-diagnostics
すべての異なる入力ファイルのリストを取得したら、次のリクエストを使用して個々のファイルの診断を取得できます。
API 形式
GET /batches/{BATCH_ID}/meta?path=input_files/{FILE}
{BATCH_ID}{FILE}リクエスト
curl -X GET https://platform.adobe.io/data/foundation/export/batches/af838510-2233-11ea-acf0-f3edfcded2d2/meta?path=input_files/fileMetaData1.json \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
応答
応答が成功すると、診断が保存された場所の詳細を示すpath オブジェクトを含むJSON オブジェクトが返されます。 応答は、JSON行形式のpath オブジェクトを返します。
{"path": "F1.json"}
{"path": "etc/F2.json"}
バッチ取り込みエラーの取得 retrieve-errors
バッチにエラーが含まれている場合は、データを再び取り込むために、これらのエラーに関するエラー情報を取得する必要があります。
ステータスの確認 check-status
取り込んだバッチのステータスを確認するには、GET リクエストのパスにバッチのIDを指定する必要があります。 このAPI呼び出しの使用について詳しくは、 カタログエンドポイントガイド を参照してください。
API 形式
GET /catalog/batches/{BATCH_ID}
GET /catalog/batches/{BATCH_ID}?{FILTER}
{BATCH_ID}id 値。{FILTER}&)で区切られます。 詳しくは、 カタログデータのフィルタリング に関するガイドを参照してください。リクエスト
curl -X GET https://platform.adobe.io/data/foundation/catalog/batches/af838510-2233-11ea-acf0-f3edfcded2d2 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
エラーのない応答
応答が成功すると、バッチのステータスに関する詳細情報が返されます。
{
"af838510-2233-11ea-acf0-f3edfcded2d2": {
"status": "success",
"tags": {
"acp_enableErrorDiagnostics": true,
"acp_partialIngestionPercent": 5
},
"relatedObjects": [
{
"type": "dataSet",
"id": "5deac2648a19d218a888d2b1"
}
],
"id": "af838510-2233-11ea-acf0-f3edfcded2d2",
"externalId": "af838510-2233-11ea-acf0-f3edfcded2d2",
"inputFormat": {
"format": "parquet"
},
"imsOrg": "{ORG_ID}",
"started": 1576741718543,
"metrics": {
"inputByteSize": 568,
"inputFileCount": 4,
"inputRecordCount": 519,
"outputRecordCount": 497,
"failedRecordCount": 0
},
"completed": 1576741722026,
"created": 1576741597205,
"createdClient": "{API_KEY}",
"createdUser": "{USER_ID}",
"updatedUser": "{USER_ID}",
"updated": 1576741722644,
"version": "1.0.5"
}
}
metrics.failedRecordCountinputRecordCountをoutputRecordCountから引き算することで得ることができます。 この値は、errorDiagnosticsが有効であるかどうかにかかわらず、すべてのバッチで生成されます。エラーを伴う応答
バッチに1つ以上のエラーがあり、エラー診断が有効になっている場合、応答は、ペイロード自体とダウンロード可能なエラーファイルの両方で、エラーに関する詳細情報を返します。 エラーを含むバッチのステータスは、まだ成功のステータスである場合があります。
{
"01E8043CY305K2MTV5ANH9G1GC": {
"status": "success",
"tags": {
"acp_enableErrorDiagnostics": true,
"acp_partialIngestionPercent": 5
},
"relatedObjects": [
{
"type": "dataSet",
"id": "5deac2648a19d218a888d2b1"
}
],
"id": "01E8043CY305K2MTV5ANH9G1GC",
"externalId": "01E8043CY305K2MTV5ANH9G1GC",
"inputFormat": {
"format": "parquet"
},
"imsOrg": "{ORG_ID}",
"started": 1576741718543,
"metrics": {
"inputByteSize": 568,
"inputFileCount": 4,
"inputRecordCount": 519,
"outputRecordCount": 514,
"failedRecordCount": 5
},
"completed": 1576741722026,
"created": 1576741597205,
"createdClient": "{API_KEY}",
"createdUser": "{USER_ID}",
"updatedUser": "{USER_ID}",
"updated": 1576741722644,
"version": "1.0.5",
"errors": [
{
"code": "INGEST-1212-400",
"description": "Encountered 5 errors in the data. Successfully ingested 514 rows. Please review the associated diagnostic files for more details."
},
{
"code": "INGEST-1401-400",
"description": "The row has corrupted data and cannot be read or parsed. Fix the corrupted data and try again.",
"recordCount": 2
},
{
"code": "INGEST-1555-400",
"description": "A required field is either missing or has a value of null. Add the required field to the input row and try again.",
"recordCount": 3
}
]
}
}
metrics.failedRecordCountinputRecordCountをoutputRecordCountから引き算することで得ることができます。 この値は、errorDiagnosticsが有効であるかどうかにかかわらず、すべてのバッチで生成されます。errors.recordCounterrorDiagnosticsが有効な場合に のみ が生成されます。| code language-json |
|---|
|
次の手順 next-steps
このチュートリアルでは、部分的なバッチ取り込みエラーを監視する方法について説明しました。 バッチ取り込みについて詳しくは、バッチ取り込み開発者ガイドを参照してください。
付録 appendix
この節では、取り込みエラータイプに関する補足情報を提供します。
部分バッチ取り込みエラータイプ partial-ingestion-types
一部バッチ取り込みでは、データの取り込み時に3つの異なるエラータイプが発生します。
読み取り不可能なファイル unreadable
取得されたバッチに読み取り不可能なファイルが含まれている場合、バッチのエラーはバッチ自体に添付されます。 失敗したバッチについて詳しくは、『失敗したバッチの取得ガイド』を参照してください。
無効なスキーマまたはヘッダー schemas-headers
取得されたバッチに無効なスキーマまたは無効なヘッダーが含まれている場合、バッチのエラーはバッチ自体に添付されます。 失敗したバッチについて詳しくは、『失敗したバッチの取得ガイド』を参照してください。
解析不能な行 unparsable
取り込んだバッチに解析できない行がある場合は、次のリクエストを使用して、エラーを含むファイルのリストを表示できます。
API 形式
GET /export/batches/{BATCH_ID}/meta?path=row_errors
{BATCH_ID}id 値。リクエスト
curl -X GET https://platform.adobe.io/data/foundation/export/batches/01EFZ7W203PEKSAMVJC3X99VHQ/meta?path=row_errors \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
応答
応答が成功すると、エラーのあるファイルのリストが返されます。
{
"data": [
{
"name": "conversion_errors_0.json",
"length": "1162",
"_links": {
"self": {
"href": "https://platform.adobe.io:443/data/foundation/export/batches/01EFZ7W203PEKSAMVJC3X99VHQ/meta?path=row_errors%2Fconversion_errors_0.json"
}
}
},
{
"name": "parsing_errors_0.json",
"length": "153",
"_links": {
"self": {
"href": "https://platform.adobe.io:443/data/foundation/export/batches/01EFZ7W203PEKSAMVJC3X99VHQ/meta?path=row_errors%2Fparsing_errors_0.json"
}
}
}
],
"_page": {
"limit": 100,
"count": 2
}
}
次に、診断取得エンドポイント を使用して、エラーに関する詳細情報を取得できます。
エラーファイルを取得する際の応答の例を次に示します。
{
"_corrupt_record": "{missingQuotes: 'v1'}",
"_errors": [{
"code": "1401",
"message": "Row is corrupted and cannot be read, please fix and resend."
}],
"_filename": "parsing_errors_0.json"
}