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

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

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

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

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

第 1 步:创建 Domain 数据集组。

创建域数据集组并使用Amazon CLI使用以下命令。对于域,请指定ECOMMERCE要么VIDEO_ON_DEMAND.

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

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

完成后,第 1 步:创建 Domain 数据集组。中,创建架构和交互数据集以存储来自用户与目录中项目之间交互的数据。

创建架构和数据集

  1. 以 Avro 格式创建交互模式文件,并将其保存为 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 ate 中创建架构。ReplaceschemaName将替换为架构的名称。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 ate (Amazon Persation) 返回新架构的 ARN。记录下来,因为您在下一个步骤中需要使用该值。

  3. 使用CreateDatasetoperation. 有关不同类型的数据集的更多信息,请参阅数据集和架构.

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

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

    创建数据集后,您就可以导入数据了。请参阅第 3 步:导入交互数据

第 3 步:导入交互数据

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

对于批量导入,请通过运行以下命令来创建数据集导入作业。提供您的域数据集组的 Amazon 资源名称 (ARN) 以及 Amazon S3 存储桶名称。提供Amazon Identity and Access Management(IAM) 角色您在中创建的 Amazon 资源名称 (ARN)为 Amazon Personalize 创建 IAM 服务角色. 有关操作的更多信息,请参阅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

此时将显示数据集导入作业 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", "creationDateTime": 1542392161.837, "lastUpdatedDateTime": 1542393013.377 } }

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