一括挿入のウォークスルー
このウォークスルーでは、Bulk API を使用してレコードを読み込む手順について説明します。
開始する前に、取り込み API の設定に必要な前提条件を完了していることを確認します。
- 取り込み API コネクタを設定する
- データストリームを作成およびリリースする
- 接続アプリケーションを設定する
-
定義したデータストリームの項目に一致するヘッダー行を含む CSV ファイルを作成します。例: orders.csv。各画像ファイルは 150 MB を超えることはできません。
1id,contact_name,created_date,tax_exempt,ship_address,total,tax_rate,modified_date 2f19cae7e-5cdb-41ce-92ba-539afea04f9d,Jadyn Kozey,2021-07-22T08:57:08.118Z,false,9818 Walter Course Apt. 811,77506,84,2021-07-05T09:31:44.457Z 348c8b6a6-8179-4a15-ba19-ec5c8206ce28,Kristina Jakubowski,2021-07-08T22:57:02.008Z,false,245 Schowalter Port Suite 245,16986,61,2021-07-03T06:20:52.886Z - Data Cloud アクセストークンを要求します。トークン交換応答の access_token プロパティには、認証ヘッダーで使用するベアラートークンが含まれます。instance_url は、API をホストしている Data Cloud インスタンスです。
-
データをアップロードするには、最初にジョブを作成します。この例では、ecomm 取り込み API コネクタから Orders データを upsert により更新します。レコードを削除する場合は、代わりに delete 操作を使用します。ジョブの状況が Open のジョブ ID を含む JSON 応答が返されます。このジョブ ID は次のステップで必要です。
- 要求
-
1curl --location --request POST 'https://{instance_url}/api/v1/ingest/jobs' \ 2--header 'Authorization: Bearer {access_token}' \ 3--header 'Content-Type: application/json' \ 4--data-raw '{ 5 "object":"Orders", 6 "sourceName":"ecomm", 7 "operation":"upsert" 8}' - 応答
-
1{ 2 "object": "Order", 3 "id": "913a8b00-7a9e-4331-aaf6-a019ae5021ab", 4 "operation": "upsert", 5 "sourceName": "ecomm_api", 6 "createdById": "005R0000000zqc8IAA", 7 "createdDate": "2021-08-12T17:06:42.921387Z", 8 "systemModstamp": "2021-08-12T17:06:42.921387Z", 9 "state": "Open", 10 "contentType": "CSV", 11 "apiVersion": "v1", 12 "contentUrl": "/api/v1/ingest/jobs/913a8b00-7a9e-4331-aaf6-a019ae5021ab/batches" 13}
-
CSV データをアップロードします。ジョブを作成したら、データをアップロードできます。前に作成した CSV ファイルを使用してレコードデータを指定します。ジョブの一環として最大 100 個の CSV ファイルを送信できます。
- 要求
-
1curl --location --request PUT 'https://{instance_url}/api/v1/ingest/jobs/913a8b00-7a9e-4331-aaf6-a019ae5021ab/batches 2' \ 3--header 'Authorization: Bearer {access_token}' \ 4--header 'Content-Type: text/csv' \ 5--data-binary '@orders.csv' - 応答
-
1201 Created
-
アップロードが完了します。��ータの送信が完了したら、ジョブを終了して Data Cloud にジョブの処理準備ができたことを伝達できます。
- 要求
-
1curl -v --location --request PATCH 'https://{instance_url}/api/v1/ingest/jobs/913a8b00-7a9e-4331-aaf6-a019ae5021ab' \ 2--header 'Authorization: Bearer {access_token}' \ 3--header 'Content-Type: application/json' \ 4--data-raw '{ 5"state" : "UploadComplete" 6}' - 応答
-
1{ 2 "object": "Order", 3 "id": "913a8b00-7a9e-4331-aaf6-a019ae5021ab", 4 "operation": "upsert", 5 "sourceName": "ecomm_api", 6 "createdById": "005R0000000zqc8IAA", 7 "createdDate": "2021-08-12T17:06:42.921387Z", 8 "systemModstamp": "2021-08-12T17:36:42.921387Z", 9 "state": "UploadComplete", 10 "contentType": "CSV", 11 "apiVersion": "v1", 12 "contentUrl": "/api/v1/ingest/jobs/913a8b00-7a9e-4331-aaf6-a019ae5021ab/batches" 13}
-
ジョブの状況と結果を確認します。全体的なジョブの状況や処理されたレコード数など、ジョブに関する基本的な状況情報を取得するには、ジョブ情報の取得要求を使用します。ファイルがデータレークに読み込まれるとジョブの状況は UploadComplete から JobComplete または Failed に変わります。
- 要求
-
1curl -v --location --request GET 'https://{instance_url}/api/v1/ingest/jobs/913a8b00-7a9e-4331-aaf6-a019ae5021ab' \ 2--header 'Authorization: Bearer {access_token}' \ - 応答
-
1{ 2 "object": "Order", 3 "id": "913a8b00-7a9e-4331-aaf6-a019ae5021ab", 4 "operation": "upsert", 5 "sourceName": "GreasyConnector", 6 "createdById": "005R0000000zqc8IAA", 7 "createdDate": "2021-08-12T17:06:42.921387Z", 8 "systemModstamp": "2021-08-12T18:06:42.921387Z", 9 "state": "JobComplete", 10 "contentType": "CSV", 11 "apiVersion": "v1", 12 "contentUrl": "/api/v1/ingest/jobs/913a8b00-7a9e-4331-aaf6-a019ae5021ab/batches", 13 "retries": 0, 14 "totalProcessingTime": 0 15}