替换数据集的架构以添加新列 - Amazon Personalize

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

替换数据集的架构以添加新列

创建物品或用户数据集后,您可以将其架构替换为新的或现有的架构。如果数据结构在您创建数据集后发生了更改,则您可以替换该数据集的架构。例如,您可能会有想让 Amazon Personalize 在训练期间考虑的新物品元数据列。或者,您可能想要添加一列仅在筛选建议时使用的数据。

替换数据集的架构时,必须保留先前架构中的所有字段,并且不能更改其数据类型或属性。在您替换数据集的架构后,Amazon Personalize 会自动将任何新列排除在任何现有推荐器或自定义解决方案的训练之外。有关更多指南和要求,请参阅指南和要求

您可以用 Amazon Personalize 控制台替换数据集的架构, AWS Command Line Interface (AWS CLI),以及 AWS SDKs.

指南和要求

在替换数据集架构之前,确保您了解以下指南和要求:

  • 您无法替换物品交互数据集、操作交互数据集或操作数据集的架构。

  • 您可以向替换架构中添加新字段,但必须保留先前架构中的所有字段。而且,您无法更改其数据类型或属性。例如,如果之前的架构包含分类字符串数据的 MEMBERSHIP_STATUS 字段,则您使用的新架构必须包含具有这些属性和数据类型的 MEMBERSHIP_STATUS 字段。

  • 如果当前架构有要重命名的字段,或者您要更改其数据类型或属性,则您可以添加一个具有新名称和修改类型或属性的新字段。然后,在训练中加入新字段,排除旧字段。任何新字段都必须支持 null 数据。如果旧字段不支持空数据,则在导入数据时,您可以使用占位符数据来确保您的导入与架构相匹配。有关配置推荐器使用的列的信息,请参阅更新推荐器。有关配置解决方案使用的列的信息,请参阅配置训练时使用的列

  • 任何新字段都必须支持 null 数据。有关向字段添加空类型的信息,请参阅架构数据类型

  • 在您替换数据集的架构后,Amazon Personalize 会自动将任何新列排除在任何现有推荐器或自定义解决方案的训练之外。使用修改后的数据集涉及以下操作:

    • 要在训练中使用任何新列,请导入与新架构一致的数据。然后,更新所有推荐器以使用任何新列,或者创建新的自定义解决方案并配置训练时使用的列。

      有关更新推荐器使用的列的信息,请参阅更新推荐器。有关配置解决方案使用的列的信息,请参阅配置训练时使用的列

    • 要仅在筛选时使用任何列,请导入与新架构一致的数据,创建使用新数据的筛选器,然后将筛选器应用于建议请求。您无需更新任何推荐器,也无需创建或更新任何自定义资源。

替换数据集的架构(控制台)

要通过 Amazon Personalize 控制台替换数据集的架构,您需选择要修改的数据集,然后选择替换为新架构或使用现有架构。

替换数据集的架构
  1. https://console.aws.amazon.com/personalize/家中打开 Amazon Personalize 控制台并登录您的账户。

  2. 数据集组页面,选择您的数据集组。

  3. 在导航窗格中,选择数据集,然后选择要修改的数据集的单选按钮。

  4. 选择操作,然后选择替换架构

  5. 架构详细信息中,选择替换为新架构或以前创建的架构。

  6. 指定要使用的新架构。如果您选择了:

    • 替换为新架构,然后为架构命名,然后在架构定义中对架构进行更改JSON。

    • 使用先前创建的架构,然后对于先前创建的架构,选择要使用的架构。这时,仅会列出符合条件的架构。有关架构要求的信息,请参阅指南和要求

  7. 选择替换。当数据集处于活动状态时,您可以开始导入与新架构一致的数据。有关更多信息,请参阅 将训练数据导入 Amazon Personalize 数据集

替换数据集的架构 (AWS CLI)

将数据集的架构替换为 AWS CLI,您可以使用update-dataset命令指定要更新的数据集的 Amazon 资源名称 (ARN) 和要使用的新架构的 Amazon 资源名称 ()。ARN您无法更新物品交互数据集、操作交互数据集或操作数据集的架构。

以下代码显示了如何使用更新数据集的架构 AWS CLI。 要用新数据集的架构替换数据集的架构,请先使用create-schema命令。然后,使用以下代码将当前架构替换为新架构。有关使用创建架构的信息 AWS CLI,请参阅 创建数据集和架构 (AWS CLI)。有关数据集和架构要求的信息,请参阅为 Amazon Personalize 架构创建架构JSON文件

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

当数据集处于活动状态时,您可以开始导入与新架构一致的数据。有关更多信息,请参阅 将训练数据导入 Amazon Personalize 数据集。有关数据集最新更新的信息,您可以使用 DescribeDataset 操作。

替换数据集的架构 (AWS SDKs)

将数据集的架构替换为 AWS SDKs,则使用该UpdateDatasetAPI操作。指定要更新的数据集的 Amazon 资源名称 (ARN) 和要使用的新架构。您无法更新物品交互数据集、操作交互数据集或操作数据集的架构。

以下代码显示了如何使用SDK适用于 Python 的 (Boto3) 替换数据集的架构。要将数据集的架构替换为新架构,请先使用 CreateSchema 操作。然后,使用以下代码将当前架构替换为新架构。有关使用创建架构的信息 AWS SDKs,请参阅创建数据集和架构 (AWS SDKs)。有关数据集和架构要求的信息,请参阅为 Amazon Personalize 架构创建架构JSON文件

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 数据集。有关数据集最新更新的信息,您可以使用 DescribeDataset 操作。