一括挿入のウォークスルー
このウォークスルーでは、Bulk API を使用してレコードを読み込む手順について説明します。
開始する前に、取り込み API の設定に必要な前提条件を完了していることを確認します。
- 取り込み API コネクタを設定する
- データストリームを作成およびリリースする
- 接続アプリケーションを設定する
-
定義したデータストリームに一致するデータを含む CSV ファイルを作成します。例: orders.csv
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 - Salesforce CDP アクセストークンを要求します。トークン交換応答の access_token プロパティには、認証ヘッダーで使用するベアラートークンが含まれます。instance_url は、API をホストしている Salesforce CDP インスタンスです。
-
データをアップロードするには、ジョブを作成します。この例では、ecomm 取り込み API コネクタから Orders データをアップロードします。レコードを削除する場合は、代わりに 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}‘ 9{ 10 "object": "Order", 11 "id": "913a8b00-7a9e-4331-aaf6-a019ae5021ab", 12 "operation": "upsert", 13 "sourceName": "ecomm_api", 14 "createdById": "005R0000000zqc8IAA", 15 "createdDate": "2021-08-12T17:06:42.921387Z", 16 "systemModstamp": "2021-08-12T17:06:42.921387Z", 17 "state": "Open", 18 "contentType": "CSV", 19 "apiVersion": "v1", 20 "contentUrl": "/api/v1/ingest/jobs/913a8b00-7a9e-4331-aaf6-a019ae5021ab/batches" 21} -
CSV データをアップロードします。ジョブを作成したら、データをアップロードできます。前に作成した CSV ファイルを使用してレコードデータを指定します。ジョブの一環として最大 100 個の CSV ファイルを送信できます。各ファイルは 150 MB を超えることはできません。
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' 6< HTTP/1.1 201 Created -
アップロードが完了します。データの送信が完了したら、ジョブを終了して Salesforce CDP にジョブの処理準備ができたことを伝達できます。
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}' 7{ 8 "object": "Order", 9 "id": "913a8b00-7a9e-4331-aaf6-a019ae5021ab", 10 "operation": "upsert", 11 "sourceName": "ecomm_api", 12 "createdById": "005R0000000zqc8IAA", 13 "createdDate": "2021-08-12T17:06:42.921387Z", 14 "systemModstamp": "2021-08-12T17:36:42.921387Z", 15 "state": "UploadComplete", 16 "contentType": "CSV", 17 "apiVersion": "v1", 18 "contentUrl": "/api/v1/ingest/jobs/913a8b00-7a9e-4331-aaf6-a019ae5021ab/batches" 19} -
ジョブの状況と結果を確認します。全体的なジョブの状況や処理されたレコード数など、ジョブに関する基本的な状況情報を取得するには、ジョブ情報の取得要求を使用します。ファイルがデータレイクに読み込まれるとジョブの状況は 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}' \ 3{ 4 "object": "Order", 5 "id": "913a8b00-7a9e-4331-aaf6-a019ae5021ab", 6 "operation": "upsert", 7 "sourceName": "GreasyConnector", 8 "createdById": "005R0000000zqc8IAA", 9 "createdDate": "2021-08-12T17:06:42.921387Z", 10 "systemModstamp": "2021-08-12T18:06:42.921387Z", 11 "state": "JobComplete", 12 "contentType": "CSV", 13 "apiVersion": "v1", 14 "contentUrl": "/api/v1/ingest/jobs/913a8b00-7a9e-4331-aaf6-a019ae5021ab/batches", 15 "retries": 0, 16 "totalProcessingTime": 0 17}