架构 - Amazon Personalize
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

架构

架构 会将您的数据结构告知给 Amazon Personalize,并允许 Amazon Personalize 解析数据。架构具有名称键,其值必须与数据集类型相匹配。创建架构后,您无法更改架构。

对于域数据集组,每种数据集类型都有一个包含必填字段和保留关键字的默认架构。每次创建数据集时,都可以使用现有域架构,也可以通过修改现有默认架构来创建新的域架构。使用默认架构作为指南,确定要为域导入哪些数据。定义架构并创建数据集后,就无法对架构进行更改。

架构格式设置要求

为域数据集组或自定义数据集组中的任何数据集创建架构时,您必须遵循以下指南:

  • 您必须以 Avro 格式定义架构。有关我们支持的 Avro 数据类型的信息,请参阅架构数据类型

  • 架构字段可以采用任何顺序显示,但它们必须与 CSV 文件中对应列标题的顺序匹配。

  • 架构必须是没有嵌套结构的平面 JSON 文件。例如,一个字段不能是多个子字段的父字段。

  • Amazon Personalize 架构不支持复杂类型,例如数组和映射。

  • 架构字段必须具有唯一的字母数字名称。例如,您不能同时添加 GENRES_FIELD_1 字段和 GENRESFIELD1 字段。

  • 您必须定义必填字段作为其所需的数据类型。保留的分类字符串字段的 categorical 属性必须设置为 true,而保留的字符串字段不能是分类字段。关键字不能出现在数据中。

  • 如果您添加自己的类型为 string 的元数据字段,并且您希望 Amazon Personalize 在训练时使用它,则该字段必须包含 categorical 属性或 textual 属性(只有物品架构支持带有文本属性的字段)。

  • 在生成主题、返回建议中的元数据和筛选建议时,Amazon Personalize 可以使用非分类字符串列,例如物品名称列。有关更多信息,请参阅 非分类字符串数据

  • Amazon Personalize 在训练或筛选建议时不使用 boolean 类型数据。要让 Amazon Personalize 在训练或筛选时使用布尔数据,请使用类型为字符串 的字段,并在数据中使用值 "True""False"。或者,您可以使用类型 intlong 以及值 01

  • 文本字段的类型必须为 string,且必须将 textual 属性设置为 true。有关非结构化文本数据的更多信息,请参阅非结构化文本元数据

根据域和数据集类型,域数据集组数据集还有其他要求。自定义数据集组数据集也有其他要求,具体取决于类型。

架构数据类型

Amazon Personalize 架构支持以下 Avro 类型的字段:

  • float

  • double

  • int

  • long

  • 字符串

  • 布尔值

  • null

一些必填字段和保留字段支持空数据。通过向字段添加 null 类型,您可以使用不完美的数据(例如,空值的元数据)来生成建议。有关哪些字段支持空数据的信息,请参阅域数据集和架构自定义数据集和架构。以下示例说明了如何为 GENDER 字段添加空类型。

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