创建域数据集组并导入交互数据 (Amazon CLI) - Amazon Personalize
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

创建域数据集组并导入交互数据 (Amazon CLI)

创建域数据集组时,您可以选择一个域,创建架构和 Interactions 数据集,然后导入历史数据。如果您没有历史数据,可以选择稍后以增量方式记录互动数据。

创建 Interactions 数据集时,您可以使用域的默认架构,也可以对其进行自定义以创建自己的架构。架构允许 Amazon Personalize 读取您的数据。使用字段及其类型作为指南,确定要将哪些数据导入 Amazon Personalize。有关默认架构的更多信息,请参阅域数据集和架构.

第 1 步:创建域数据集组

创建域数据集组并使用以下命令选择您的域名Amazon CLI使用以下命令。对于域,请指定以下任一项ECOMMERCE要么VIDEO_ON_DEMAND.

aws personalize create-dataset-group \ --name dataset group name \ --domain domain name

第 2 步:创建架构和交互数据集

在你完成之后第 1 步:创建域数据集组,创建一个架构和一个 Interactions 数据集,用于存储来自用户与目录中商品之间交互的数据。

创建架构和数据集

  1. 创建 Avro 格式的 Interactions 架构文件,并将其作为 JSON 文件保存在工作目录中。

    架构必须与您的数据和架构中的列相匹配name必须是Interactions. 以下是 VIDEO_ON_DEMAND 域的默认交互架构示例。有关更多信息,请参阅 域数据集和架构

    { "type": "record", "name": "Interactions", "namespace": "com.amazonaws.personalize.schema", "fields": [ { "name": "USER_ID", "type": "string" }, { "name": "ITEM_ID", "type": "string" }, { "name": "EVENT_TYPE", "type": "string" }, { "name": "TIMESTAMP", "type": "long" } ], "version": "1.0" }
  2. 通过运行以下命令,在 Amazon Personalize 中创建架构。Replace(替换)schemaName将替换为架构的名称,替换business domainVIDEO_ON_DEMAND要么ECOMMERCE,然后替换file://SchemaName.json使用您在上一步中创建的 JSON 文件的位置。此示例将该文件显示为属于当前文件夹。创建架构后,便无法更改架构。有关该 API 的更多信息,请参阅CreateSchema

    aws personalize create-schema \ --name schema name \ --domain business domain \ --schema file://SchemaName.json

    Amazon Personalize ersonal 将返回新架构的 ARN。请将其记录下来,因为需要在下一步中用到。

  3. 使用创建数据集CreateDataset操作。有关不同类型的数据集的信息,请参阅数据集和架构.

    使用以下命令create-dataset命令创建交互数据集。为数据集命名并指定datasetGroupArn返回的第 1 步:创建域数据集组. 使用schemaArn从您创建的架构中。

    aws personalize create-dataset \ --name Dataset Name \ --dataset-group-arn Dataset Group ARN \ --dataset-type INTERACTIONS \ --schema-arn Schema Arn

    创建数据集后,您已准备好导入数据。请参阅 第 3 步:导入互动数据

第 3 步:导入互动数据

重要

默认情况下,数据集导入任务会替换您批量导入的数据集中的任何现有数据。要在不替换现有数据的情况下添加新记录,请为import-mode. 有关示例,请参阅 更新批量记录 (Amazon CLI)

在你完成之后第 2 步:创建架构和交互数据集,您已准备好导入数据。如果您在 Amazon S3 中有数据,请使用数据集导入任务导入数据。如果您只想以增量方式导入交互数据,则可跳过这一步,改用PutEvents操作直到你有至少 1000 次历史和增量交互的组合。有关更多信息,请参阅记录事件.

对于批量导入,通过运行以下命令创建数据集导入任务。为您的域数据集组提供 Amazon Resource Name(ARN)数据集 Amazon S3 Resource Name(ARN)。路径使用以下语法:

s3://<name of your S3 bucket>/<folder path>/<CSV filename>

提供Amazon Identity and Access Management您在创建的 (IAmazon) 角色您创建ARN Amazon Resource Name。为 Amazon Personalize. 默认 import-modeFULL。有关更多信息,请参阅更新批量记录 (Amazon开发工具包). 有关 API 操作的更多信息,请参阅CreateDatasetImportJob.

aws personalize create-dataset-import-job \ --job-name dataset import job name \ --dataset-arn dataset arn \ --data-source dataLocation=s3://bucketname/filename \ --role-arn roleArn --import-mode FULL

将显示数据集导入任务 ARN,如以下示例所示。

{ "datasetImportJobArn": "arn:aws:personalize:us-west-2:acct-id:dataset-import-job/DatasetImportJobName" }

通过使用 describe-dataset-import-job 命令来检查状态。提供数据集导入任务 ARN。有关操作的更多信息,请参阅DescribeDatasetImportJob

aws personalize describe-dataset-import-job \ --dataset-import-job-arn dataset import job arn

这将显示数据集导入作业的属性,包括其状态。最初,status显示为 “待创建”。

{ "datasetImportJob": { "jobName": "Dataset Import job name", "datasetImportJobArn": "arn:aws:personalize:us-west-2:acct-id:dataset-import-job/DatasetImportJobArn", "datasetArn": "arn:aws:personalize:us-west-2:acct-id:dataset/DatasetGroupName/INTERACTIONS", "dataSource": { "dataLocation": "s3://<bucketname>/ratings.csv" }, "roleArn": "role-arn", "status": "CREATE PENDING", "importMode": "FULL", "creationDateTime": 1542392161.837, "lastUpdatedDateTime": 1542393013.377 } }

当状态显示为 ACTIVE 时,数据集导入完成。