本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用数据删除任务删除用户及其数据
导入数据后,您可以从数据集组中删除用户及其数据,包括他们的元数据和互动数据。您可以作为合规计划的一部分删除用户数据,或者为了处理用户删除请求,或者在用户群变化时保持数据最新。
删除用户后,Amazon Personalize 将不再根据他们的数据进行训练,也不会在生成用户细分时考虑用户。
要删除 Amazon Personalize 数据集和数据集组中模型中对用户的引用,请执行以下操作:
-
准备一个 CSV 文件,在 USER_ID 列中列出要删除的用户的用户 ID。
-
将 CSV 文件上传到亚马逊 S3 存储桶。您的 Amazon Personalize 服务角色必须拥有访问此存储桶的权限。
-
创建数据删除任务。数据删除作业是一种批处理作业,用于从数据集组中的模型和数据集中删除用户及其数据。
指南和要求
以下是删除用户的准则和要求:
-
在创建数据删除任务之前,请确保没有正在使用您的数据集的作业,例如训练作业、批处理作业或批量或单个导入操作。并避免在执行数据删除任务时创建此类作业。如果发生任何训练或导入,我们无法保证用户的数据会从模型中删除,因此我们建议再创建一个数据删除任务。
-
数据删除任务不会删除对 Amazon Personalize 以外的用户的引用。例如,它不会从您的 Amazon S3 存储桶中的批量推荐中删除他们的用户 ID。您必须手动删除这些记录。
-
对于一个状态为 “待定” 的数据集组,您最多可以有 5 个删除任务。
-
一个或多个数据删除输入文件的最大总大小为 50 MB。您可以在创建删除任务时重复使用相同的输入文件。
-
每个数据删除任务都会删除数据集组中的用户及其交互数据。要删除所有数据集组中的数据,必须为每个数据集组创建一个数据删除任务。
-
创建作业后,最多可能需要一天时间才能从数据集和模型中删除用户的数据。
-
任务完成后,请务必更新所有自定义资源。请务必创建新的解决方案版本,并在必要时更新您的活动。如果您使用自动训练,您仍然可以手动创建新的解决方案版本。
-
您的 Amazon Personalize 服务角色必须有权访问包含要删除的用户列表的 Amazon S3 存储桶。它需要
GetObject
存储桶及其内容的ListBucket
权限。这些权限与导入数据相同。有关授予权限的信息和策略示例,请参阅向 Amazon Personalize 授予访问 Amazon S3 资源的权限。 -
您不能在存储要删除的用户 ID 列表的 Amazon S3 存储桶上使用自己的 Amazon Key Management Service 密钥。
-
如果某项仅出现在您的项目交互数据集中,并且只有您要删除的用户与该项目进行了互动,则该项目将不再出现在推荐中。
准备要删除的用户列表
在从 Amazon Personalize 中删除用户之前,您必须在 CSV 文件中准备一份要删除的用户列表并将其上传到亚马逊 S3。
准备要删除和上传的用户列表
-
创建一个 CSV 文件,列出要删除的用户的用户 ID。下面显示了必须如何格式化您的 CSV 文件。
USER_ID abc 2a 5basc ab35 123f a55d 0v22 441fa efg
-
将您的 CSV 文件上传到亚马逊简单存储服务 (Amazon S3) 存储桶。有关将文件上传到 Amazon S3 的更多信息,请参阅《亚马逊简单存储服务用户指南》中的 “使用拖放方式上传文件和文件夹”。
-
让 Amazon Personalize 访问您的存储桶和 CSV 文件。Amazon Personalize 必须有权对您的存储桶及其内容执行
GetObject
和ListBucket
操作。这些权限与导入数据相同。有关授予权限的信息和策略示例,请参阅向 Amazon Personalize 授予访问 Amazon S3 资源的权限。
创建数据删除任务
完成后准备要删除的用户列表,您就可以通过数据删除任务删除用户了。
数据删除作业是一种批处理作业,用于从数据集组中的模型和数据集中删除用户及其数据。删除用户后,Amazon Personalize 将不再根据他们的数据进行训练,也不会在生成用户细分时考虑用户。
创建数据删除任务时,您可以指定要删除的用户列表的 Amazon S3 位置。
-
如果您的数据位于单个文件中,请对 Amazon S3 位置使用以下语法:
s3://<name of your S3 bucket>/<folder path>/<CSV filename>.csv
-
如果您的 CSV 文件位于 Amazon S3 存储桶的某个文件夹中,则可以指定该文件夹的路径。对于数据删除任务,Amazon Personalize 会使用该文件夹和任何子文件夹中带有
.csv
文件扩展名的所有文件。它会忽略任何其他类型的文件。使用以下语法,在文件夹名称后面加上/
:s3://<name of your S3 bucket>/<folder path>/
您使用的角色必须有权对您的 Amazon S3 存储桶及其内容执行和ListBucket
操作。GetObject
有关授予权限的信息和策略示例,请参阅向 Amazon Personalize 授予访问 Amazon S3 资源的权限。
您可以使用 Amazon Personalize 控制台、 Amazon Command Line Interface (Amazon CLI) 或 Amazon 软件开发工具包创建数据删除任务。
要使用 Amazon Personalize 控制台删除用户,请创建一个包含名称、IAM 服务角色和数据的 Amazon S3 位置的数据删除任务。
删除记录(控制台)
-
打开 Amazon Personalize 控制台(网址为 https://console.aws.amazon.com/personalize/home
),并登录您的账户。 -
在数据集组页面,选择您的数据集组。这时,将显示数据集组概述。
-
在导航窗格中,选择数据集。
-
在数据删除任务中,选择创建作业。
-
在 Job 详细信息中,为该作业命名。
-
在 S3 输入源中,对于 S3 位置,指定存储要删除的用户 ID 列表的 CSV 文件的 Amazon S3 位置。你在中准备了这个文件准备要删除的用户列表。
-
对于 IAM 角色,选择创建新角色或使用现有角色。如果您已完成为 Amazon Personalize 创建角色的先决条件并授予该角色访问您的 Amazon S3 存储桶的权限,请选择使用现有服务角色并指定您在中创建的角色为 Amazon Personalize 创建 IAM 角色。
您使用的角色必须有权对您的 Amazon S3 存储桶及其内容执行和
ListBucket
操作。GetObject
这些权限与导入数据相同。有关授予权限的信息和策略示例,请参阅向 Amazon Personalize 授予访问 Amazon S3 资源的权限。 -
对于标签,可以选择添加任何标签。有关标记 Amazon Personalize 资源的更多信息,请参阅为 Amazon Personalize 资源添加标签。
-
请选择创建任务。作业开始并显示详细信息页面。
创建作业后,大约需要一天的时间才能从数据集和模型中删除用户的数据。在任务完成之前,Amazon Personalize 会在训练时继续使用这些数据。用户可能会出现在用户细分中。
当状态显示为 “已完成” 时,数据删除即告完成。如果任务因任何原因失败,我们建议创建另一个数据删除任务。任务完成后,请务必更新所有自定义资源。请务必创建新的解决方案版本,并在必要时更新您的活动。如果您使用自动训练,您仍然可以手动创建新的解决方案版本。
要使用删除用户 Amazon CLI,请使用create-data-deletion-job
命令。此命令使用 CreateDataDeletion API 操作。以下代码显示如何创建数据删除任务。要使用代码,请对其进行更新以指定任务名称、您在中为 Amazon Personalize 创建 IAM 角色创建的 IAM 角色以及数据的 Amazon S3 位置。你在中准备了这个文件准备要删除的用户列表。
aws personalize create-data-deletion-job \ --job-name
deletion job name
\ --dataset-group-arndataset group ARN
\ --data-source dataLocation=s3://bucketname
/filename
.csv \ --role-arnroleArn
创建作业后,大约需要一天的时间才能从数据集和模型中删除用户的数据。在任务完成之前,Amazon Personalize 会在训练时继续使用这些数据。用户可能会出现在用户细分中。
当状态为 “已完成” 时,任务即告完成。使用describe-data-deletion-job
命令检查状态并指定数据删除作业 ARN。有关 API 操作的更多信息,请参阅DescribeDataDeletionJob。要查看按创建时间排序的数据删除任务的历史记录,请使用 ListDataDeletionJobs API 操作。
如果任务因任何原因失败,我们建议创建另一个数据删除任务。任务完成后,请务必更新所有自定义资源。请务必创建新的解决方案版本,并在必要时更新您的活动。如果您使用自动训练,您仍然可以手动创建新的解决方案版本。
要使用 Amazon 软件开发工具包删除用户,请使用 CreateDataDeletionJob API 操作。以下代码显示如何创建数据删除任务。要使用代码,请对其进行更新以指定任务名称、您在中为 Amazon Personalize 创建 IAM 角色创建的 IAM 角色以及数据的 Amazon S3 位置。你在中准备了这个文件准备要删除的用户列表。
import boto3 personalize = boto3.client('personalize') response = personalize.create_data_deletion_job( jobName = '
Deletion job name
', datasetGroupArn = 'Dataset Group ARN
', dataSource = {'dataLocation':'s3://bucket/file.csv
'}, roleArn = 'role_arn
' ) deletion_job_arn = response['dataDeletionJobArn'] print ('Deletion Job arn: ' + deletion_job_arn) description = personalize.describe_data_deletion_job( dataDeletionJobArn = deletion_job_arn)['dataDeletionJob'] print('Name: ' + description['jobName']) print('ARN: ' + description['dataDeletionJobArn']) print('Status: ' + description['status'])
创建作业后,大约需要一天的时间才能从数据集和模型中删除用户的数据。在任务完成之前,Amazon Personalize 会在训练时继续使用这些数据。用户可能会出现在用户细分中。
当状态为 “已完成” 时,任务即告完成。使用DescribeDataDeletionJob操作检查状态并指定数据删除任务 ARN。要查看按创建时间排序的数据删除任务的历史记录,请使用 ListDataDeletionJobs API 操作。
如果任务因任何原因失败,我们建议创建另一个数据删除任务。任务完成后,请务必更新所有自定义资源。请务必创建新的解决方案版本,并在必要时更新您的活动。如果您使用自动训练,您仍然可以手动创建新的解决方案版本。