---
title: "バッチファイルのフォーマット要件"
slug: "batch-file-formatting-requirements"
abstract: "バッチAPIを使ってSitecore CDPにデータをアップロードする際のJSONレコード、JSONファイル、そしてgzip化されたアーカイブファイルのフォーマット要件の概要。"
---
# バッチファイルのフォーマット要件

バッチAPIは、gzip化されたアーカイブファイルのアップロードをサポートしています(.gz)。 .zipなどの他のフォーマットはサポートされていません。

gzip化されたファイルの最大サイズは50MBです。

もしgzipファイルのサイズが50MBの制限を超えた場合は、元のJSONファイルを2つ以上のgzipファイルに再圧縮し、そのファイルは50MBサイズを超えません。その後、gzip化されたファイルを1つずつアップロードします。

gzip化されたファイルには、正確に1つのJSONファイルが含まれていなければなりません。例えば、アップロードしたいデータがimport.jsonにある場合、JSONファイルをgzip化してアップロードしなければなりませんimport.json.gz。

## JSONファイル内のJSONレコード

JSONファイルは各JSONレコードを別々の行にまとめる必要があります。例えば、ゲストレコードを含むJSONファイルをアップロードする場合、インポートする各ゲストはJSONファイル内にそれぞれ別の行を持たなければなりません。注文レコードを含むJSONファイルをアップロードする場合、インポートする各注文も別々の行に分けなければなりません。

各JSONレコードは以下のものでなければなりません:

-   有効なJSON。
-   縮小され、1本の行に収められた。
-   キャリッジリターンで終了。
-   [RFC 4627](https://tools.ietf.org/html/rfc4627)に従ってエンコードされています。

このサンプルのJSONファイル(import.json)には、2人のゲストごとに2つのJSONレコード、jane.doe@myretailsite.comとjohn.doe@myretailsite.comが含まれています。各レコード内のメールアドレスは [メール検証ルール](https://doc.sitecore.com/cdp/ja/developers/api/batch-api/batch-file-formatting-requirements.html#UUID-4499e082-be7d-9ebb-4936-c178936c1e06_section-idm234519583688215 "Email validation rules")に従う必要があります。各レコードは別々の行に分かれています。各行は有効ですがJSON JSONファイル全体は有効ではありません。

{"ref":"ace73c06-b361-11ed-afa1-0242ac120002","schema":"guest","mode":"upsert","value":{"guestType":"customer","identifiers":{"provider":"email","id":"jane.doe@myretailsite.com"},"extensions":{"name":"ext","key":"default","loyaltyNumber":"1234"}}}
{"ref":"7e1d404e-9fd5-4df5-acfe-3a64848ec594","schema":"guest","mode":"upsert","value":{"guestType":"customer","identifiers":{"provider":"email","id":"john.doe@myretailsite.com"},"extensions":{"name":"ext","key":"default","loyaltyNumber":"5678"}}}

> !警告重複記録の作成を防ぐために、以下のガイドラインに従ってください:
> 
> -   **Guest records** - JSONファイルに一意のゲストレコードは一度だけ含めるようにしてください。JSONファイルに重複ゲストレコードを含めると、Sitecore CDP内で重複ゲストが作成されます。
>     
> -   **Order records** - 同様に、JSONファイルに一意の注文レコードは一度だけ含めて、Sitecore CDP内で重複注文が作成されないようにしてください。
>     
> -   **CDP内のプロファイルなしで同じゲストに複数の注文** がある場合 - Sitecore CDPにプロフィールがないゲストのために複数の注文をアップロードする場合、異なるスレッドを使った並行アップロードは避けてください。これによりゲストが重複する恐れがあります。
>     

例えば、JSONファイルに以下のゲストレコードが含まれていて、最初と最後のレコードが重複している場合、同一のレコードは統合されず、2人のゲストが作成されます。

{"ref":"ace73c06-b361-11ed-afa1-0242ac120002","schema":"guest","mode":"upsert","value":{"guestType":"customer","identifiers":{"provider":"email","id":"jane.doe@myretailsite.com"},"extensions":{"name":"ext","key":"default","loyaltyNumber":"1234"}}}
{"ref":"7e1d404e-9fd5-4df5-acfe-3a64848ec594","schema":"guest","mode":"upsert","value":{"guestType":"customer","identifiers":{"provider":"email","id":"john.doe@myretailsite.com"},"extensions":{"name":"ext","key":"default","loyaltyNumber":"5678"}}}
{"ref":"ace73c06-b361-11ed-afa1-0242ac120002","schema":"guest","mode":"upsert","value":{"guestType":"customer","identifiers":{"provider":"email","id":"jane.doe@myretailsite.com"},"extensions":{"name":"ext","key":"default","loyaltyNumber":"1234"}}}

同様に、JSONファイルに同じ注文参照を持つ2つの注文レコードが含まれている場合、システム内には2つの注文レコードが生成されます。

各JSONレコードには以下の必須フィールドを含める必要があります:

フィールド名

種類

概要

ref

ストリング  
  
バージョン4 UUID

アップロードプロセス中にJSONレコードを識別する一意IDです。このIDはSitecore CDP内でゲストやレコードを識別するためには使われません。アップロードプロセス専用です。

schema

ストリング  
  
以下のいずれかでなければなりません:  
  

-   "guest"
-   "order"
-   "migration"

インポート中のvalueフィールドに含まれるレコードの種類。ゲストを移行する際は"schema"の価値として"migration"のみを使用してください。詳細は[ゲスト移行データモデル](https://doc.sitecore.com/cdp/ja/developers/api/batch-api/guest-migration-data-model.html)を参照してください。

mode

ストリング  
  
以下のいずれかでなければなりません:  
  

-   "insert"
-   "upsert"
-   "guest"
-   "delete"

記録をシステムにインポートする方法を示しています:  
  
insert - 既存のエンティティに属するすべてのものを上書きし、新しいエンティティが作成される  
  
upsert - リクエストで設定されたフィールドのみを既存のエンティティに更新します。エンティティが存在しない場合は、新しいエンティティが作成されます。  
  
guest\- フィールドの更新方法に特定の移行ルールを適用すること。ゲストの移行時には"mode"の値はのみ"guest"使用。詳細は[ゲスト移行データモデル](https://doc.sitecore.com/cdp/ja/developers/api/batch-api/guest-migration-data-model.html)を参照。  
  
delete - エンティティを削除する。

value

JSON オブジェクト

Sitecore CDPエンティティを含みます。

アップロード時に各オブジェクトのすべてのフィールドが存在する必要はありません。例外はゲストデータ拡張で、ゲストデータ拡張の種類によってはすべてのフィールドが必須になることがあります。

ゲストにupsertモードを使う場合、Sitecore CDP内のゲストを特定できるだけのデータと更新すべきフィールドだけを含める必要があります。

ゲストにguestモードを使用する場合、そのエンティティを有効とみなすために必要なすべての項目を含める必要があります。なぜなら、更新は有効なエンティティを生み出さなければならないからです。

## メール検証ルール

バッチインポートファイルのJSONレコード内の各メールアドレスは、以下の検証基準を満たす必要があります:

-   メールアドレスの名前とドメイン部分は、別々の正則表現(RegEx)を用いて独立して検証されます。
-   メールアドレスには名前とドメインの間に@記号が必要です。例えば: abc@test.com
-   名前もドメインもピリオド(.)で始まることも終わることもできません。例えば、test.@test.comと test@.test.com は無効ですが、te.st@test.comは有効です。
-   名前とドメインには、文字(a-z)、数字(0-9)、および以下の特殊文字が含まれます:!, #, $, %; &, ', \*, +, /, =, ?, ^, \_, ', {, |, }, ~, -.
-   ドメインは有効なドメイン名かIPアドレスでなければなりません。例えば、 abc@test.com、 abc@123.123.123.123。

### 有効なメールアドレスの例

-   john.doe@example.com
-   alice\_smith123@sub.example.co.uk
-   contact@company-name.com
-   user+label@domain.org
-   customer.service@my-domain.net

### 無効なメールアドレスの例

-   john..doe@example.com
-   alice.smith@.example.com
-   user@domain..com