本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用数据删除作业删除用户及其数据
导入数据后,您可以从数据集组中删除用户及其数据,包括元数据和交互数据。为了遵循合规计划,或者为了应对用户删除请求,或者为了在用户群变化时使数据保持最新,您可能需要删除用户数据。
删除用户后,Amazon Personalize 将不再根据他们的数据进行训练,在生成用户细分时也不再考虑这些用户。
要删除对 Amazon Personalize 数据集中的用户以及数据集组中的模型的引用,请执行以下操作:
-
准备一个在 USER _ID 列 userIds 中列出要删除的用户的CSV文件。
-
将CSV文件上传到 Amazon S3 存储桶。您的 Amazon Personalize 服务角色必须具有访问此存储桶的权限。
-
创建数据删除作业。数据删除作业是一个批处理作业,用于从数据集组中的模型和数据集中删除用户及其数据。
指南和要求
以下是删除用户的准则和要求:
-
在创建数据删除作业之前,请确保没有正在使用您的数据集的作业,例如训练作业、批处理作业,或批量或单个导入操作。并避免在执行数据删除作业时创建此类作业。如果进行了任何训练或导入,我们无法保证用户的数据会从模型中删除,因此我们建议再创建一个数据删除作业。
-
数据删除作业不会删除对 Amazon Personalize 以外的用户的引用。例如,它不会将其userId从您的 Amazon S3 存储桶中的批量推荐中删除。您必须手动删除这些记录。
-
对于状态为的数据集组,您最多可以有 5 个删除任务PENDING。
-
一个或多个数据删除输入文件的最大总大小为 100 MB。在创建删除作业时,您可以重复使用相同的输入文件。
-
每个数据删除作业都会删除数据集组中的用户及其交互数据。要删除他们在所有数据集组中的数据,必须为每个数据集组创建一个数据删除任务。
-
创建作业后,最多可能需要一天时间才能从数据集和模型中删除用户的数据。
-
作业完成后,请务必更新所有自定义资源。请务必创建新的解决方案版本,并在必要时更新市场活动。如果您使用自动训练,您仍然可以手动创建新的解决方案版本。
-
您的 Amazon Personalize 服务角色必须有权访问包含待删除用户列表的 Amazon S3 存储桶。它需要存储桶及其内容的
GetObject
和ListBucket
权限。这些权限与导入数据时的权限相同。有关授予权限和策略示例的信息,请参阅向 Amazon Personalize 授予访问 Amazon S3 资源的权限。 -
您不能在存储要删除的用户列表的 Amazon S3 存储桶上使用自己的 Amazon Key Management Service 密钥。 userIds
-
如果某个物品仅在您的物品交互数据集中出现,并且只有您要删除的用户与该物品进行了互动,则该物品将不再出现在推荐中。
准备待删除用户的列表
在从 Amazon Personalize 中删除用户之前,您必须在CSV文件中准备好要删除的用户列表并将其上传到 Amazon S3。
准备待删除用户的列表并上传
-
创建一个列出要删除 userIds 的用户的CSV文件。下面显示了必须如何格式化您的CSV文件。
USER_ID abc 2a 5basc ab35 123f a55d 0v22 441fa efg
-
将您的CSV文件上传到亚马逊简单存储服务 (Amazon S3) 存储桶。有关将文件上传到 Amazon S3 的更多信息,请参阅《Amazon Simple Storage Service 用户指南》中的使用拖放功能上传文件和文件夹。
-
让 Amazon Personalize 访问您的存储桶和您的CSV文件。Amazon Personalize 必须有权对您的存储桶及其内容执行
GetObject
和ListBucket
操作。这些权限与导入数据时的权限相同。有关授予权限和策略示例的信息,请参阅向 Amazon Personalize 授予访问 Amazon S3 资源的权限。
创建数据删除作业
完成准备待删除用户的列表后,就可以通过数据删除作业来删除用户。
数据删除作业是一个批处理作业,用于从数据集组中的模型和数据集中删除用户及其数据。删除用户后,Amazon Personalize 将不再根据他们的数据进行训练,在生成用户细分时也不再考虑这些用户。
创建数据删除作业时,需要指定待删除用户的列表在 Amazon S3 中的位置。
-
如果您的数据位于单个文件中,请为 Amazon S3 位置使用以下语法:
s3://amzn-s3-demo-bucket/<folder path>/<CSV filename>.csv
-
如果您的CSV文件位于 Amazon S3 存储桶的某个文件夹中,则可以指定该文件夹的路径。对于数据删除作业,Amazon Personalize 会使用该文件夹及任何子文件夹中带有
.csv
文件扩展名的所有文件。该作业会忽略任何其他类型的文件。使用以下语法,在文件夹名称后面加上/
:s3://amzn-s3-demo-bucket/<folder path>/
您使用的角色必须有权对您的 Amazon S3 存储桶及其内容执行 GetObject
和 ListBucket
操作。有关授予权限和策略示例的信息,请参阅向 Amazon Personalize 授予访问 Amazon S3 资源的权限。
您可以使用 Amazon Personalize 控制台 Amazon Command Line Interface (Amazon CLI)或创建数据删除任务 Amazon SDKs。
要使用 Amazon Personalize 控制台删除用户,请创建一个包含名称、IAM服务角色和数据的 Amazon S3 位置的数据删除任务。
删除记录(控制台)
-
在https://console.aws.amazon.com/personalize/家
中打开 Amazon Personalize 控制台并登录您的账户。 -
在数据集组页面,选择您的数据集组。这时,将显示数据集组概述。
-
在导航窗格中,选择数据集。
-
在数据删除作业中,选择创建作业。
-
在作业详细信息中,为作业取名。
-
在 S3 输入源中,对于 S3 位置,指定存储要删除的用户列表CSV的文件的 Amazon S3 位置。 userIds 在准备待删除用户的列表中准备这个文件。
-
在IAM角色中,选择创建新角色或使用现有角色。如果您完成了为 Amazon Personalize 创建角色的先决条件,并授予此角色访问 Amazon S3 存储桶的权限,请选择使用现有服务角色,并指定您在为 Amazon Personalize 创建IAM角色中创建的角色。
您使用的角色必须有权对您的 Amazon S3 存储桶及其内容执行
GetObject
和ListBucket
操作。这些权限与导入数据时的权限相同。有关授予权限和策略示例的信息,请参阅向 Amazon Personalize 授予访问 Amazon S3 资源的权限。 -
对于标签,可以选择添加任何标签。有关标记 Amazon Personalize 资源的更多信息,请参阅为 Amazon Personalize 资源添加标签。
-
请选择创建任务。作业开始,并且会显示详细信息页面。
创建作业后,需要大约一天时间才能从数据集和模型中删除用户的数据。在作业完成之前,Amazon Personalize 会继续在训练时使用这些数据。用户可能会出现在用户细分中。
当状态显示为时,数据删除即告完成COMPLETED。如果作业因任何原因而失败,我们建议创建另一个数据删除作业。作业完成后,请务必更新所有自定义资源。请务必创建新的解决方案版本,并在必要时更新市场活动。如果您使用自动训练,您仍然可以手动创建新的解决方案版本。
要使用删除用户 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://amzn-s3-demo-bucket
/filename
.csv \ --role-arnroleArn
创建作业后,需要大约一天时间才能从数据集和模型中删除用户的数据。在作业完成之前,Amazon Personalize 会继续在训练时使用这些数据。用户可能会出现在用户细分中。
当状态为时,任务已完成COMPLETED。使用describe-data-deletion-job
命令检查状态并指定数据删除作业ARN。有关 API 操作的更多信息,请参阅DescribeDataDeletionJob。要查看按创建时间排序的数据删除任务的历史记录,请使用ListDataDeletionJobsAPI操作。
如果作业因任何原因而失败,我们建议创建另一个数据删除作业。作业完成后,请务必更新所有自定义资源。请务必创建新的解决方案版本,并在必要时更新市场活动。如果您使用自动训练,您仍然可以手动创建新的解决方案版本。
要使用删除用户 Amazon SDKs,请使用CreateDataDeletionJobAPI操作。以下代码展示了如何创建数据删除作业。要使用代码,请对其进行更新以指定任务名称、您在中为 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://amzn-s3-demo-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 会继续在训练时使用这些数据。用户可能会出现在用户细分中。
当状态为时,任务已完成COMPLETED。使用DescribeDataDeletionJob操作检查状态并指定数据删除作业ARN。要查看按创建时间排序的数据删除任务的历史记录,请使用ListDataDeletionJobsAPI操作。
如果作业因任何原因而失败,我们建议创建另一个数据删除作业。作业完成后,请务必更新所有自定义资源。请务必创建新的解决方案版本,并在必要时更新市场活动。如果您使用自动训练,您仍然可以手动创建新的解决方案版本。