

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 取代資料集的結構描述以新增資料欄
<a name="updating-dataset-schema"></a>

 建立項目或使用者資料集之後，您可以將其結構描述取代為新的或現有的結構描述。如果您在建立資料集之後變更資料結構，則可以取代資料集的結構描述。例如，您可能有您希望 Amazon Personalize 在訓練期間考慮的新項目中繼資料資料欄。或者，您可能想要新增資料欄，以在篩選建議時使用。

 當您取代資料集的結構描述時，您必須保留先前結構描述中的所有欄位，而且無法變更其資料類型或屬性。取代資料集的結構描述後，Amazon Personalize 會自動排除任何新資料欄，不對任何現有推薦者或自訂解決方案進行訓練。如需更多準則和要求，請參閱 [指導方針和要求](#replace-schema-guidelines)。

 您可以使用 Amazon Personalize 主控台 AWS Command Line Interface (AWS CLI) 和 AWS SDKs 取代資料集的結構描述。

**Topics**
+ [指導方針和要求](#replace-schema-guidelines)
+ [取代資料集的結構描述 （主控台）](#updating-dataset-schema-console)
+ [取代資料集的結構描述 (AWS CLI)](#updating-dataset-schema-cli)
+ [取代資料集的結構描述 (AWS SDKs)](#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. 選擇 **Replace** (取代)。當資料集處於作用中狀態時，您可以開始匯入符合新結構描述的資料。如需詳細資訊，請參閱[將訓練資料匯入 Amazon Personalize 資料集](import-data.md)。

## 取代資料集的結構描述 (AWS CLI)
<a name="updating-dataset-schema-cli"></a>

若要使用 取代資料集的結構描述 AWS CLI，請使用 `update-dataset`命令、指定要更新的資料集的 Amazon Resource Name (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)操作。

## 取代資料集的結構描述 (AWS SDKs)
<a name="updating-dataset-schema-sdk"></a>

若要使用 AWS SDKs 取代資料集的結構描述，請使用 `UpdateDataset` API 操作。指定要更新的資料集的 Amazon Resource Name (ARN) 和要使用的新結構描述。您無法更新項目互動資料集、動作互動資料集或動作資料集的結構描述。

下列程式碼說明如何使用適用於 Python 的 SDK (Boto3) 取代資料集的結構描述。若要將資料集的結構描述取代為新的結構描述，請先使用 [CreateSchema](API_CreateSchema.md)操作。然後使用下列程式碼，將目前的結構描述取代為新的結構描述。如需使用 AWS SDKs 建立結構描述的資訊，請參閱 [建立資料集和結構描述 (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)操作。