

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon Personalize スキーマのスキーマ JSON ファイルの作成
<a name="how-it-works-dataset-schema"></a>

 [データを準備](preparing-training-data.md)すると、インポートするデータのタイプごとにスキーマ JSON ファイルを作成する準備が整います。これらのファイルは、列名とそのデータ型など、データの構造と内容を概説しています。

 [スキーマとデータセットの作成](data-prep-creating-datasets.md) で Amazon Personalize スキーマを作成するときは、スキーマ JSON ファイルを使用します。Amazon Personalize で、*スキーマ*とは、データセットにインポートするときに Amazon Personalize がデータを解析できるようにするリソースです。使用しているデータセットごとにスキーマを作成します。

 カスタムリソースの場合、各データセットには特定のスキーマ要件があります。ドメインデータセットグループの場合、選択したドメインによってデータセットとスキーマの要件が決まります。各ドメインには、各データセットタイプについてデフォルトのスキーマがあります。データセットを作成するときに、既存のドメインスキーマを使用するか、既存のデフォルトスキーマを変更して新しいドメインスキーマを作成できます。ドメインにインポートするデータのガイドとして、デフォルトのスキーマを使用します。

 以下のセクションでは、データセットタイプごとにスキーマ JSON ファイルを作成するためのカスタム要件とドメイン要件について説明します。

**Topics**
+ [スキーマ形式の要件](#general-schema-requirements)
+ [VIDEO\_ON\_DEMAND データセットとスキーマ](VIDEO-ON-DEMAND-datasets-and-schemas.md)
+ [ECOMMERCE データセットとスキーマ](ECOMMERCE-datasets-and-schemas.md)
+ [カスタムデータセットとスキーマ](custom-datasets-and-schemas.md)

## スキーマ形式の要件
<a name="general-schema-requirements"></a>

ドメインデータセットグループまたはカスタムデータセットグループのデータセットのスキーマを作成するときは、次のガイドラインに従う必要があります。
+  スキーマは [Avro 形式](https://docs.oracle.com/database/nosql-12.1.3.0/GettingStartedGuide/avroschemas.html)で定義する必要があります。サポートされている Avro データ型については、「[スキーマのデータ型](#personalize-datatypes)」を参照してください。
+  スキーマには名前キーがあり、その値はデータセットタイプと一致する必要があります。
+ スキーマフィールドは任意の順序で表示できますが、CSV ファイル内の対応する列ヘッダーの順序と一致する必要があります。
+  スキーマは、ネストされた構造のないフラットな JSON ファイルである必要があります。例えば、フィールドを複数のサブフィールドの親にすることはできません。
+ Amazon Personalize のスキーマは、配列やマップなどの複雑なタイプをサポートしません。
+  スキーマフィールドには一意の英数字名が必要です。例えば、`GENRES_FIELD_1` フィールドと `GENRESFIELD1` フィールドの両方を追加することはできません。
+ 必須フィールドを必須データ型として定義する必要があります。予約済みカテゴリ文字列フィールドでは `categorical` 属性を `true` に設定する必要がありますが、予約済み文字列フィールドはカテゴリに設定できません。キーワードをデータに含めることはできません。
+ タイプ `string` の独自のメタデータフィールドを追加して、Amazon Personalize がトレーニングの際にそれを使用するように希望する場合は、`categorical` 属性または `textual` 属性を含める必要があります (アイテムスキーマのみがテキスト属性のフィールドをサポートします)。
+ Amazon Personalize は、レコメンデーションのトレーニングやフィルタリングに `boolean` タイプデータを使用しません。Amazon Personalize でトレーニングやフィルタリングの際にブーリアンデータを使用するには、*文字列* 型のフィールドを使用し、データ内の `"True"` と `"False"` の値を使用します。または、*int* もしくは *long* 型と `0` と `1` の値を使用できます。
+  テキストフィールドは `string` タイプで、`textual` 属性は `true` に設定されている必要があります。非構造化テキストデータの詳細については、「[非構造化テキストメタデータ](items-datasets.md#text-data)」を参照してください。

 ドメインデータセットグループのデータセットには、ドメインとデータセットタイプの両方に基づいて追加要件があります。カスタムデータセットグループのデータセットには、タイプに応じて異なる要件があります。

### スキーマのデータ型
<a name="personalize-datatypes"></a>

Amazon Personalize のスキーマは、フィールド向けに次の Avro タイプをサポートします。
+ フロート
+ double
+ int
+ long
+ 文字列
+ boolean
+ null

 一部の必須フィールドと予約済みフィールドは NULL データをサポートしています。フィールドに `null` タイプを追加すると、不完全なデータ (例えば、空白の値を持つメタデータ) を使用して、レコメンデーションを生成できます。null データをサポートするフィールドについては、次のドメインのスキーマ要件トピックを参照してください。「[VIDEO\_ON\_DEMAND データセットとスキーマ](VIDEO-ON-DEMAND-datasets-and-schemas.md)」、「[ECOMMERCE データセットとスキーマ](ECOMMERCE-datasets-and-schemas.md)」、または「[カスタムデータセットとスキーマ](custom-datasets-and-schemas.md)」。次の例は、GENDER フィールドに null タイプを追加する方法を示しています。

```
{
  "name": "GENDER",
  "type": [
    "null",
    "string"
  ],
  "categorical": true
}
```