---
title: "バッチファイルをインポートします"
slug: "import-a-batch-file"
abstract: "JSONLバッチファイルをProfile Import APIにアップロードし、その進行状況を監視し、結果を確認できます。"
---
# バッチファイルをインポートします

> !重要機能の利用可能性は段階的に展開される一環です。あなたの組織はまだこの機能に気づいていないかもしれません。環境が導入された際に利用可能になります。

このウォークスルーでは、JSONLファイルをProfile Import APIにアップロードし、完了まで追跡し、結果を確認します。

このウォークスルーでは、以下の方法を説明します:

:::攻略

-   [APIキーを作成する](https://doc.sitecore.com/sai/ja/developers/sitecoreai/profile-import/import-a-batch-file.html#create-an-api-key)
-   [JSONLファイルを準備してください](https://doc.sitecore.com/sai/ja/developers/sitecoreai/profile-import/import-a-batch-file.html#prepare-your-jsonl-file)
-   [MD5チェックサムを計算します](https://doc.sitecore.com/sai/ja/developers/sitecoreai/profile-import/import-a-batch-file.html#compute-the-md5-checksum-of-the-jsonl-file)
-   [ファイルをアップロードしてください](https://doc.sitecore.com/sai/ja/developers/sitecoreai/profile-import/import-a-batch-file.html#upload-the-file)
-   [バッチの監視](https://doc.sitecore.com/sai/ja/developers/sitecoreai/profile-import/import-a-batch-file.html#monitor-the-batch)
-   [結果を見る](https://doc.sitecore.com/sai/ja/developers/sitecoreai/profile-import/import-a-batch-file.html#view-the-results)

:::

> !通知**始める前に**
> 
> -   アップロードできるJSONLファイルが準備されています。フォーマットの要件については [バッチファイルフォーマット](https://doc.sitecore.com/sai/ja/developers/sitecoreai/profile-import/batch-file-format.html) を参照してください。
> -   現在、あなたの環境に合う QUEUED や RUNNING ロットはありません。同時に稼働できるバッチは1つだけです。

## APIキーを作成する

本番環境では、静的APIキーを使って認証する必要があります。SitecoreAI設定の **プロファイルインポート** ページからAPIキーを作成できます。

> !注本番環境では、APIキーを作成できるのは組織所有者と組織管理者だけです。非本番環境では、すべてのユーザーがAPIキーを作成できます。

APIキーを作成するには:

1.  SitecoreAIで、**プロファイルインポート**\>**パフォーマンス**\>**設定**をクリックします。
    
2.  「 **認証情報** 」タブをクリックし、その後「 **認証情報を作成**」をクリックします。
    
3.  資格名と任意の説明を入力します。
    
4.  APIキーを1年後に失効させたい場合は、「 **認証情報は1年で失効する**」を選択してください。このオプションを選択しなければ、APIキーは失効しません。
    
5.  **「作成**」をクリックし、その後APIキーをコピーします。キーは一度だけ表示され、ダイアログを閉じた後は取り出せません。
    

> !警告ダイアログを閉じる前にAPIキーをコピーしてください。消えた後は再開できません。もし失ったら、新しい資格情報を作成しなければなりません。

## JSONLファイルを準備してください

入力ファイルはUTF-8エンコードのJSONライン(JSONL)形式で、1行につき1つのJSONオブジェクトが必要です。各行はプロファイルペイロードに対応する独立したレコードです。

{"recordType":"profile","identifiers":{"provider":"email","id":"alice1@example.com"},"contact":{"firstName":"Alice1","lastName":"Smith2"}, "extensions":{"where": "In the wonderland"}}
{"recordType":"profile","identifiers":{"provider":"email","id":"alice2@example.com"},"contact":{"firstName":"Alice2","lastName":"Smith2"}, "extensions":{"where": "In the wonderland1"}}
{"recordType":"profile","identifiers":{"provider":"email","id":"alice3@example.com"},"contact":{"firstName":"Alice3","lastName":"Smith2"}, "extensions":{"where": "In the wonderland2"}}
{"recordType":"profile","identifiers":{"provider":"email","id":"alice4@example.com"},"contact":{"firstName":"Alice4","lastName":"Smith2"}, "extensions":{"where": "In the wonderland3"}}
{"recordType":"profile","identifiers":{"provider":"email","id":"alice5@example.com"},"contact":{"firstName":"Alice5","lastName":"Smith2"}, "extensions":{"where": "In the wonderland4"}}
{"recordType":"profile","identifiers":{"provider":"userid","id":"crm-0042"},{"provider":"email","id":"bob@example.com"},"contact":{"firstName":"Bob","lastName":"Jones"}}
{"recordType":"profile","identifiers":{"provider":"userid","id":"crm-0044"},"contact":{"firstName":"James","lastName":"Red"}}
{"recordType":"profile","identifiers":{"provider":"userid","id":"crm-0044"},"contact":{"firstName":"James","lastName":"Red"}}
{"recordType":"profile","identifiers":{"provider":"userid","id":"crm-0044"},"contact":{"firstName":"James","lastName":"Red"}}
{"recordType":"profile","identifiers":{"provider":"userid","id":"crm-0044"},"contact":{"firstName":"James","lastName":"Red"}}
{"recordType":"profile","identifiers":{"provider":"userid","id":"crm-0044"},"contact":{"firstName":"James","lastName":"Red"}}
{"recordType":"profile","identifiers":{"provider":"userid","id":"crm-0044"},"contact":{"firstName":"James","lastName":"Red"}}

必要なidentifiers構造や対応フィールドを含む完全なフォーマット要件については、[バッチファイルフォーマット](https://doc.sitecore.com/sai/ja/developers/sitecoreai/profile-import/batch-file-format.html)を参照してください。

> !ヒントファイルサイズは100MB以下に抑えましょう。データセットがこの制限を超える場合は、複数のファイルに分割して1つずつアップロードし、各バッチが完了するのを待ってから次のバッチを始めてください。

## JSONLファイルのMD5チェックサムを計算します

APIはアップロード時にJSONLファイルの整合性を確認するためにMD5チェックサムを必要とします。アップロード前にMD5ハッシュを計算するには、以下のいずれかの方法を用いてください。

::::タブズ:::tab{title="Linux"}

md5sum guests.jsonl | awk '{print $1}'

:::

:::tab{title="macOS"}

md5 -q guests.jsonl

:::

:::tab{title="Windows (PowerShell)"}

(Get-FileHash guests.jsonl -Algorithm MD5).Hash.ToLower()

:::

:::tab{title="Windows (CMD)"}

certutil -hashfile guests.jsonl MD5

:::::::

コマンドは01556b1dcc2b3cb87889838ee349357aのような32文字の十六進進形文字列を出力します。この値をコピーしてください。[APIにアップロード](https://doc.sitecore.com/sai/ja/developers/sitecoreai/profile-import/import-a-batch-file.html#upload-the-file)する際にmd5フォーム欄として渡します。

## ファイルをアップロードしてください

> !注非本番環境では[Profileインポートページ](https://doc.sitecore.com/sai/ja/developers/sitecoreai/profile-import/import-a-batch-file.html#upload-through-the-profile-import-page-non-production-only)からファイルをアップロードできますが、本番環境ではAPIを使わなければなりません。

multipart/form-dataでPOSTリクエストを使って、プロフィールインポートAPIを通じてファイルをアップロードしてください。{base\_url}をAPIエンドポイントに置き換えてください。これは**プロフィールインポート**ページの**「認証情報**」タブで確認できます。AuthorizationヘッダーにAPIキーを含めてください。

curl -X POST "{base\_url}/v1/batches" \\
 -H "Authorization: ApiKey <your-api-key>" \\
 -F "file=@guests.jsonl" \\
 -F "md5=01556b1dcc2b3cb87889838ee349357a"

アップロードが成功すると、バッチを追跡するためのbatchIdが返202 Acceptedされます:

{
 "batchId": "7266232b-a7d4-496c-b0b3-be8dbde7495a",
 "status": "QUEUED",
 "checksumMd5": "01556b1dcc2b3cb87889838ee349357a",
 "fileSizeBytes": 1873,
 "createdAt": "2026-07-02T13:14:36.546433Z"
}

救batchId。状況確認や結果のダウンロードに使います。

> !注429 Too Many Requestsエラーが出た場合、すでにバッチがキューに入れられているか、あなたの環境で実行中であることを意味します。新しいファイルをアップロードする前に、完成するのを待ちましょう。

エラー応答の全リストについては、[プロファイルインポートAPI](https://doc.sitecore.com/sai/ja/developers/sitecoreai/profile-import/profile-import-api.html#upload-a-profile-batch-file)をご覧ください。

### プロフィールインポートページからアップロード(本番外のみ)

SitecoreAI UIを通じてファイルをアップロードするには:

1.  SitecoreAIで、**プロファイルインポート**\>**パフォーマンス**\>**設定**をクリックします。
    
2.  **アップロード**タブで**「バッチアップロード**」をクリックします。
    
3.  JSONLファイルを選択して **アップロード**をクリックします。
    

アップロードが完了すると、バッチは **アップロード** タブに表示され、進捗を監視できます。

## バッチの監視

**Profileインポート**ページからバッチを監視するか、batchIdを使ってステータスエンドポイントをポーリングできます。

curl "{base\_url}/v1/batches/{batchId}/status" \\
 -H "Authorization: ApiKey <your-api-key>"

回答には現在の状況と記録数が含まれます:

{
 "batchId": "7266232b-a7d4-496c-b0b3-be8dbde7495a",
 "status": "COMPLETED\_WITH\_ERRORS",
 "totalRecords": 12,
 "succeededRecords": 6,
 "failedRecords": 6,
 "processingTimeSeconds": 64,
 "startedProcessingAt": "2026-07-02T13:14:39.064400Z",
 "finishedProcessingAt": "2026-07-02T13:15:43.475259Z"
}

各状態および再試行の動作についてはバッチ [状態](https://doc.sitecore.com/sai/ja/developers/sitecoreai/profile-import/profile-import-errors-and-troubleshooting.html#batch-states)を参照してください。

## 結果を見る

バッチが最終状態(COMPLETED、COMPLETED\_WITH\_ERRORS、またはFAILED)に達した後、**プロファイルインポート** ページで結果を確認するか、[統計エンドポイント](https://doc.sitecore.com/sai/ja/developers/sitecoreai/profile-import/profile-import-api.html#get-batch-statistics) を使ってインポートの概要を確認できます。

curl "{base\_url}/v1/batches/7266232b-a7d4-496c-b0b3-be8dbde7495a/stats" \\
 -H "Authorization: ApiKey <your-api-key>"

回答にはインポートの概要が含まれています:

{
 "batchId": "7266232b-a7d4-496c-b0b3-be8dbde7495a",
 "status": "COMPLETED\_WITH\_ERRORS",
 "checksumMd5": "01556b1dcc2b3cb87889838ee349357a",
 "fileSizeBytes": 1873,
 "totalRecords": 12,
 "succeededRecords": 6,
 "createdRecords": 3,
 "updatedRecords": 3,
 "failedRecords": 6,
 "failedByCode": {
 "INVALID\_RECORD": {
 "count": 6,
 "firstRecordIndex": 6,
 "firstDescription": "No identifier with a valid id and a recognised provider"
 }
 },
 "processingTimeSeconds": 64,
 "createdBy": "joby@example.com",
 "createdAt": "2026-07-02T13:14:36.546433Z",
 "startedProcessingAt": "2026-07-02T13:14:39.064400Z",
 "finishedProcessingAt": "2026-07-02T13:15:43.475259Z"
}

また、各記録の結果を [閲覧するために結果をダウンロード](https://doc.sitecore.com/sai/ja/developers/sitecoreai/profile-import/profile-import-api.html#download-results) することもできます。

バッチファイルを正常にインポートしました。JSONLファイルを準備し、そのMD5チェックサムを計算し、APIを使ってアップロードし、処理を監視し、結果を取得しました。