本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
导出数据集
导入数据后,您可以将交互、项目或用户数据集中的数据导出到 Amazon S3 存储桶。导出数据集后,您可以验证和检查 Amazon Personalize 用于生成建议的数据、查看之前实时记录的用户互动事件以及对数据执行离线分析。
您可以选择仅导出批量导入的数据(使用 Amazon Personalize 数据集导入任务导入),只导出您以增量方式导入的数据(使用控制台导入的历史记录和实时记录或PutEvents
、PutUsers
,或者PutItems
操作),或两者兼而有。
Amazon Personalize 化组合了完全匹配的重复适用于所有领域变成一条记录。如果两条记录具有相同的 ID,Amazon Personalize 化将根据您选择导出的数据包含或删除重复项:
-
如果您同时导出批量数据和增量数据,Amazon Personalize 会根据用户的 ID 删除重复的商品或用户,只保留最新的商品或用户。对于交互数据集,Amazon Personalize 包括所有交互数据,而不管时间戳如
-
如果您仅导出增量数据,Amazon Personalize 将包括您以增量方式导入的所有商品、用户或互动数据,包括商品或具有相同 ID 的用户。仅排除与所有字段完全匹配的记录。
-
如果您仅导出批量数据,Amazon Personalize 化将包括您批量导入的所有商品、用户或互动数据,包括商品或具有相同 ID 的用户。仅排除与所有字段完全匹配的记录。
要导出数据集,请创建数据集导出作业。一个数据集导出作业是一种记录导出工具,可将数据集中的记录输出到 Amazon S3 存储桶中的一个或多个 CSV 文件。输出 CSV 文件包含一个标题行,其列名称与数据集架构中的字段匹配。
您可以使用 Amazon Personalize 控制台创建数据集导出作业,Amazon Command Line Interface(Amazon CLI),或者Amazon开发工具包。
数据集导出作业权限要求
要导出数据集,Amazon Personalize 的权限需要向 Amazon S3 存储桶添加文件的权限。要授予权限,请附加一个新的Amazon Identity and Access Management针对您的 Amazon Personalize 服务相关角色的 (IAM) 策略,该策略授予该角色使用PutObject
和ListBucket
对存储桶执行操作,并将存储桶策略附加到输出 Amazon S3 存储桶,该策略授予 Amazon Personalize 原则权限以使用PutObject
和ListBucket
行动。
Amazon S3 存储桶和对象必须免费加密,或者如果您正在使用Amazon Key Management Service(Amazon KMS) 对于加密,您必须授予 IAM 用户和 Amazon Personalize 服务角色使用密钥的权限。您还必须将 Amazon Personalize 化作为原则添加到您的Amazon KMS密钥策略。有关更多信息,请参阅 Amazon Key Management Service 开发人员指南中的使用 Amazon KMS 中的密钥策略。
如果您的域数据集组或自定义数据集组使用Amazon KMS用于加密的密钥、IAM 用户和Amazon KMS必须授予关键策略GenerateDataKeyWithoutPlaintext
和Decrypt
权限。
用于导出数据集的服务相关角色策略
以下示例策略授予您的 Amazon Personalize 化服务相关角色使用PutObject
和ListBucket
行动。Replacebucket-name
包含输出存储桶的名称。有关将策略附加到服务相关 IAM 角色的信息,请参阅将 Amazon S3 策略附加到您的 Amazon Personalize 化服务角色.
{ "Version": "2012-10-17", "Id": "PersonalizeS3BucketAccessPolicy", "Statement": [ { "Sid": "PersonalizeS3BucketAccessPolicy", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::
bucket-name
", "arn:aws:s3:::bucket-name
/*" ] } ] }
针对导出数据集的 Amazon S3 存储桶策略
以下示例策略授予 Amazon Personalize 使用PutObject
和ListBucket
针对 Amazon S3 存储桶采取的操作。将 bucket-name
替换为您的存储桶的名称。有关向存储桶添加 Amazon S3 存储桶策略的信息,请参阅如何添加 S3 存储桶策略?中的Amazon Simple Storage Service 用户指南。
{ "Version": "2012-10-17", "Id": "PersonalizeS3BucketAccessPolicy", "Statement": [ { "Sid": "PersonalizeS3BucketAccessPolicy", "Effect": "Allow", "Principal": { "Service": "personalize.amazonaws.com" }, "Action": [ "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::
bucket-name
", "arn:aws:s3:::bucket-name
/*" ] } ] }
创建数据集导出作业(控制台)
将数据导入数据集并创建输出 Amazon S3 存储桶后,您可以将数据导出到存储桶进行分析。要使用 Amazon Personalize 化控制台导出数据集,请创建数据集导出任务。有关创建 Amazon S3 存储桶的信息,请参阅创建存储桶中的Amazon Simple Storage Service 用户指南.
在导出数据集之前,请确保您的 Amazon Personalize 服务相关角色可以访问并写入输出的 Amazon S3 存储桶。请参阅 数据集导出作业权限要求。
创建数据集导出作业(控制台)
-
在打开 Amazon Personalize 控制台https://console.aws.amazon.com/personalize/home
. -
在导航窗格中,选择数据集组.
-
在存储库的数据集组页面中,选择数据集组。
-
在导航窗格中,选择数据集.
-
选择要导出到 Amazon S3 存储桶的数据集。
-
In数据集导出作业,选择创建数据集导出作业.
-
In数据集导出作业细节,对于数据集导出作业名称中,输入导出作业的名称。
-
适用于IAM 服务角色中,选择您在中创建的 Amazon Personalize 化服务相关角色创建 Amazon Personalize 的 IAM 角色.
-
适用于Amazon S3 数据输出路径中,输入目标 Amazon S3 存储桶。使用下面的语法:
s3://<name of your S3 bucket>/<folder path>
-
如果您在使用Amazon KMS对于加密,用于KMS 密钥 ARN中,输入 Amazon 资源名称 (ARN)Amazon KMS键。
-
适用于导出数据类型中,根据最初导入数据的方式选择要导出的数据类型。
-
选择批量仅导出使用数据集导入作业批量导入的数据。
-
选择递增仅导出使用控制台或进行增量导入的数据
PutEvents
、PutUsers
,或者PutItems
运算。 -
选择二者以导出数据集中的所有数据。
-
-
选择创建数据集导出作业.
在存储库的数据集概述在页面中数据集导出作业,该作业列出了导出任务状态. 当状态为时,数据集导出作业完成。活跃. 然后,您可以从输出 Amazon S3 存储桶中下载数据。有关从 Amazon S3 存储桶下载对象的信息,请参阅下载对象中的Amazon Simple Storage Service 用户指南。.
创建数据集导出作业 (Amazon CLI)
将数据导入数据集并创建输出 Amazon S3 存储桶后,您可以将数据集导出到存储桶进行分析。使用导出数据集Amazon CLI中,使用创建数据集导出作业create-dataset-export-job
Amazon CLI命令。有关创建 Amazon S3 存储桶的信息,请参阅创建存储桶中的Amazon Simple Storage Service 用户指南.
在导出数据集之前,请确保 Amazon Personalize 服务相关角色可以访问和写入输出的 Amazon S3 存储桶。请参阅 数据集导出作业权限要求。
以下是的示例create-dataset-export-job
Amazon CLI命令。给工作命名,替换dataset arn
使用要导出数据集的 Amazon 资源名称 (ARN) 进行替换role ARN
使用您在中创建的 Amazon Personalize 服务相关角色的 ARN创建 Amazon Personalize 的 IAM 角色. Ins3DataDestination
,对于kmsKeyArn
,可以选择 ARN 您的Amazon KMS关键,以及path
提供输出 Amazon S3 存储桶的路径。
适用于ingestion-mode
中,指定要从以下选项中导出的数据:
-
指定
BULK
仅导出使用数据集导入作业批量导入的数据。 -
指定
PUT
仅导出使用控制台或进行增量导入的数据PutEvents
、PutUser,或PutItems
运算。 -
指定
ALL
以导出数据集中的所有数据。
有关更多信息,请参阅CreateDatasetExportJob.
aws personalize create-dataset-export-job \ --job-name
job name
\ --dataset-arndataset ARN
\ --job-output "{\"s3DataDestination\":{\"kmsKeyArn\":\"kms key ARN
\",\"path\":\"s3://bucket-name
/folder-name
/\"}}" \ --role-arnrole ARN
\ --ingestion-modePUT
此时将显示数据集导出作业 ARN。
{ "datasetExportJobArn": "arn:aws:personalize:us-west-2:acct-id:dataset-export-job/DatasetExportJobName" }
使用DescribeDatasetExportJob
检查状态的操作。
aws personalize describe-dataset-export-job \ --dataset-export-job-arn
dataset export job ARN
创建数据集导出作业 (Amazon开发工具包)
将数据导入数据集并创建输出 Amazon S3 存储桶后,您可以将数据集导出到存储桶进行分析。使用导出数据集Amazon开发工具包,使用创建数据集导出作业CreateDatasetExportJoboperation. 有关创建 Amazon S3 存储桶的信息,请参阅创建存储桶中的Amazon Simple Storage Service 用户指南.
以下代码演示了如何使用 SDK for Python (Boto3) 或适用于 Java 2.x 的 SDK 创建数据集导出作业。
在导出数据集之前,请确保 Amazon Personalize 服务相关角色可以访问和写入输出的 Amazon S3 存储桶。请参阅 数据集导出作业权限要求。