

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

# データセットのスキーマを置き換えて新しい列を追加する
<a name="updating-dataset-schema"></a>

 アイテムまたはユーザーデータセットを作成したら、そのスキーマを新規または既存のスキーマに置き換えることができます。データセットの作成後にデータ構造が変更された場合は、データセットのスキーマを置き換えることができます。例えば、Amazon Personalize にトレーニング中に考慮してほしいアイテムメタデータの新しい列が存在する場合があります。あるいは、レコメンデーションをフィルタリングする場合にのみ使用するデータ列を追加したい場合もあります。

 データセットのスキーマを置き換えるときは、以前のスキーマのフィールドをすべて保持しなければならず、データ型や属性を変更することはできません。データセットのスキーマを置き換えると、Amazon Personalize は既存のレコメンダーやカスタムソリューションのトレーニングから新しい列を自動的に除外します。その他のガイドラインと要件については、「[ガイドラインと要件](#replace-schema-guidelines)」を参照してください。

 Amazon Personalize コンソール、AWS Command Line Interface (AWS CLI) または AWS SDK を使用してデータセットのスキーマを置き換えることができます。

**Topics**
+ [ガイドラインと要件](#replace-schema-guidelines)
+ [データセットのスキーマの置き換え (コンソール)](#updating-dataset-schema-console)
+ [データセットのスキーマの置き換え (AWS CLI)](#updating-dataset-schema-cli)
+ [データセットのスキーマ (AWSSDK) の置き換え](#updating-dataset-schema-sdk)

## ガイドラインと要件
<a name="replace-schema-guidelines"></a>

データセットのスキーマを置き換える前に、次のガイドラインと要件に注意してください。
+ アイテムインタラクションデータセット、アクションインタラクションデータセット、またはアクションデータセットのスキーマを置き換えることはできません。
+ 置換スキーマには新しいフィールドを追加できますが、すべてのフィールドは以前のスキーマに残しておく必要があります。また、データ型や属性は変更できません。例えば、以前のスキーマにカテゴリ文字列データ用の `MEMBERSHIP_STATUS` フィールドが含まれている場合、使用する新しいスキーマには、これらの属性とデータ型を含む `MEMBERSHIP_STATUS` フィールドを含める必要があります。
+ 現在のスキーマに名前を変更したいフィールドがある場合や、そのデータ型や属性を変更したい場合は、新しい名前を付けてタイプや属性を変更した新しいフィールドを追加できます。次に、新しいフィールドをトレーニングに含め、古いフィールドを除外します。新しいフィールドは `null` データをサポートする必要があります。古いフィールドが NULL データをサポートしていなかった場合は、データをインポートするときに、プレースホルダーデータを使用してインポートがスキーマと一致することを確認できます。レコメンダーが使用する列の設定については、「[レコメンダーの更新](updating-recommender.md)」を参照してください。ソリューションによって使用される列の設定については、「[トレーニング時に使用する列の設定](custom-config-columns.md)」を参照してください。
+ 新しいフィールドは `null` データをサポートする必要があります。フィールドに NULL タイプを追加する方法については、「[スキーマのデータ型](how-it-works-dataset-schema.md#personalize-datatypes)」を参照してください。
+ データセットのスキーマを置き換えると、Amazon Personalize は既存のレコメンダーやカスタムソリューションのトレーニングから新しい列を自動的に除外します。変更したデータセットを使用するには、以下のアクションが必要です。
  + トレーニングで新しい列を使用するには、新しいスキーマに合うデータをインポートします。次に、レコメンダーを更新して新しい列を使用するか、新しいカスタムソリューションを作成して、トレーニング時に使用する列を設定します。

    レコメンダーが使用する列の更新については、「[レコメンダーの更新](updating-recommender.md)」を参照してください。ソリューションによって使用される列の設定については、「[トレーニング時に使用する列の設定](custom-config-columns.md)」を参照してください。
  + フィルタリング時にのみ列を使用するには、新しいスキーマと一致するデータをインポートし、新しいデータを使用するフィルターを作成して、そのフィルターをレコメンデーションリクエストに適用します。レコメンダーを更新したり、カスタムリソースを作成または更新したりする必要はありません。

## データセットのスキーマの置き換え (コンソール)
<a name="updating-dataset-schema-console"></a>

データセットのスキーマを Amazon Personalize コンソールに置き換えるには、変更するデータセットを選択し、新しいスキーマに置き換えるか、既存のスキーマを使用するかを選択します。

**データセットのスキーマを置き換えるには**

1. [https://console.aws.amazon.com/personalize/home](https://console.aws.amazon.com/personalize/home) で Amazon Personalize コンソールを開き、アカウントにサインインします。

1.  [**データセットグループ**] ページで、データセットグループを選択します。

1. ナビゲーションペインで **[データセット]** を選択し、変更するデータセットのラジオボタンを選択します。

1. **[アクション]** を選択し、**[スキーマの置換]** を選択します。

1. **[スキーマの詳細]** で、新しいスキーマと置き換えるか、以前に作成したスキーマに置き換えるかを選択します。

1. 使用する新しいスキーマを指定します。以下を選択した場合:
   + 新しいスキーマに置き換え、次にスキーマに名前を付け、**[スキーマ定義]** で JSON スキーマに変更を加えます。
   + 以前に作成したスキーマを使用する。次に **[以前に作成したスキーマ]** では、使用するスキーマを選択します。対象となるスキーマのみが表示されます。スキーマ要件については、「[ガイドラインと要件](#replace-schema-guidelines)」を参照してください。

1. ［**置換**］を選択します。データセットがアクティブになると、新しいスキーマに沿ったデータのインポートを開始できます。詳細については、「[Amazon Personalize データセットへのトレーニングデータのインポート](import-data.md)」を参照してください。

## データセットのスキーマの置き換え (AWS CLI)
<a name="updating-dataset-schema-cli"></a>

データセットのスキーマを AWS CLI に置き換えるには、`update-dataset` コマンドを使用して、更新するデータセットの Amazon リソースネーム (ARN) と、使用する新しいスキーマの ARN を指定します。アイテムインタラクションデータセット、アクションインタラクションデータセット、またはアクションデータセットのスキーマを更新することはできません。

 次のコードは、AWS CLI でデータセットのスキーマを更新する方法を示しています。データセットのスキーマを新しいものに置き換えるには、まず `create-schema` コマンドを使用します。そして、次のコードを使用して現在のスキーマを新しいスキーマに置き換えます。AWS CLI を使用したスキーマの作成については、「[データセットとスキーマの作成 (AWS CLI)](data-prep-creating-datasets.md#data-prep-creating-ds-cli)」を参照してください。データセットとスキーマの要件については、「[Amazon Personalize スキーマのスキーマ JSON ファイルの作成](how-it-works-dataset-schema.md)」を参照してください。

```
aws personalize update-dataset \
--dataset-arn Dataset ARN \
--schema-arn New schema ARN
```

 データセットがアクティブになると、新しいスキーマに沿ったデータのインポートを開始できます。詳細については、「[Amazon Personalize データセットへのトレーニングデータのインポート](import-data.md)」を参照してください。データセットの最新の更新については、[DescribeDataset](API_DescribeDataset.md) オペレーションを使用できます。

## データセットのスキーマ (AWSSDK) の置き換え
<a name="updating-dataset-schema-sdk"></a>

データセットのスキーマを AWS SDK に置き換えるには、`UpdateDataset` API オペレーションを使用します。更新するデータセットの Amazon リソースネーム (ARN) と使用する新しいスキーマを指定します。アイテムインタラクションデータセット、アクションインタラクションデータセット、またはアクションデータセットのスキーマを更新することはできません。

次のコードは、データセットのスキーマを SDK for Python (Boto3) で置き換える方法を示しています。データセットのスキーマを新しいスキーマに置き換えるには、まず [CreateSchema](API_CreateSchema.md) オペレーションを使用します。おして、次のコードを使用して現在のスキーマを新しいスキーマに置き換えます。AWS SDK を使用してスキーマを作成する方法については、「[データセットとスキーマの作成 (AWS SDKs)](data-prep-creating-datasets.md#data-prep-creating-ds-sdk)」を参照してください。データセットとスキーマの要件についての詳細は、「[Amazon Personalize スキーマのスキーマ JSON ファイルの作成](how-it-works-dataset-schema.md)」を参照してください。

```
import boto3

personalize = boto3.client('personalize')

update_dataset_response = personalize.update_dataset(
    datasetArn = 'dataset_arn',
    schemaArn = 'new_schema_arn'
)

print(update_dataset_response)
```

 データセットがアクティブになると、新しいスキーマに沿ったデータのインポートを開始できます。詳細については、「[Amazon Personalize データセットへのトレーニングデータのインポート](import-data.md)」を参照してください。データセットの最新の更新については、[DescribeDataset](API_DescribeDataset.md) オペレーションを使用できます。