使用数据删除任务删除用户及其数据 - Amazon Personalize

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

使用数据删除任务删除用户及其数据

导入数据后,您可以从数据集组中删除用户及其数据,包括他们的元数据和互动数据。您可以作为合规计划的一部分删除用户数据,或者为了处理用户删除请求,或者在用户群变化时保持数据最新。

删除用户后,Amazon Personalize 将不再根据他们的数据进行训练,也不会在生成用户细分时考虑用户。

要删除 Amazon Personalize 数据集和数据集组中模型中对用户的引用,请执行以下操作:

  1. 准备一个 CSV 文件,在 USER_ID 列中列出要删除的用户的用户 ID。

  2. 将 CSV 文件上传到亚马逊 S3 存储桶。您的 Amazon Personalize 服务角色必须拥有访问此存储桶的权限。

  3. 创建数据删除任务。数据删除作业是一种批处理作业,用于从数据集组中的模型和数据集中删除用户及其数据。

指南和要求

以下是删除用户的准则和要求:

  • 在创建数据删除任务之前,请确保没有正在使用您的数据集的作业,例如训练作业、批处理作业或批量或单个导入操作。并避免在执行数据删除任务时创建此类作业。如果发生任何训练或导入,我们无法保证用户的数据会从模型中删除,因此我们建议再创建一个数据删除任务。

  • 数据删除任务不会删除对 Amazon Personalize 以外的用户的引用。例如,它不会从您的 Amazon S3 存储桶中的批量推荐中删除他们的用户 ID。您必须手动删除这些记录。

  • 对于一个状态为 “待定” 的数据集组,您最多可以有 5 个删除任务。

  • 一个或多个数据删除输入文件的最大总大小为 50 MB。您可以在创建删除任务时重复使用相同的输入文件。

  • 每个数据删除任务都会删除数据集组中的用户及其交互数据。要删除所有数据集组中的数据,必须为每个数据集组创建一个数据删除任务。

  • 创建作业后,最多可能需要一天时间才能从数据集和模型中删除用户的数据。

  • 任务完成后,请务必更新所有自定义资源。请务必创建新的解决方案版本,并在必要时更新您的活动。如果您使用自动训练,您仍然可以手动创建新的解决方案版本。

  • 您的 Amazon Personalize 服务角色必须有权访问包含要删除的用户列表的 Amazon S3 存储桶。它需要GetObject存储桶及其内容的ListBucket权限。这些权限与导入数据相同。有关授予权限的信息和策略示例,请参阅向 Amazon Personalize 授予访问 Amazon S3 资源的权限

  • 您不能在存储要删除的用户 ID 列表的 Amazon S3 存储桶上使用自己的 AWS Key Management Service 密钥。

  • 如果某项仅出现在您的项目交互数据集中,并且只有您要删除的用户与该项目进行了互动,则该项目将不再出现在推荐中。

准备要删除的用户列表

在从 Amazon Personalize 中删除用户之前,您必须在 CSV 文件中准备一份要删除的用户列表并将其上传到亚马逊 S3。

准备要删除和上传的用户列表
  1. 创建一个 CSV 文件,列出要删除的用户的用户 ID。下面显示了必须如何格式化您的 CSV 文件。

    USER_ID abc 2a 5basc ab35 123f a55d 0v22 441fa efg
  2. 将您的 CSV 文件上传到亚马逊简单存储服务 (Amazon S3) 存储桶。有关将文件上传到 Amazon S3 的更多信息,请参阅《亚马逊简单存储服务用户指南》中的 “使用拖放方式上传文件和文件夹”。

  3. 让 Amazon Personalize 访问您的存储桶和 CSV 文件。Amazon Personalize 必须有权对您的存储桶及其内容执行GetObjectListBucket操作。这些权限与导入数据相同。有关授予权限的信息和策略示例,请参阅向 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 控制台、 AWS Command Line Interface (AWS CLI) 或 AWS 软件开发工具包创建数据删除任务。

要使用 Amazon Personalize 控制台删除用户,请创建一个包含名称、IAM 服务角色和数据的 Amazon S3 位置的数据删除任务。

删除记录(控制台)
  1. 打开 Amazon Personalize 控制台(网址为 https://console.aws.amazon.com/personalize/home),并登录您的账户。

  2. 数据集组页面,选择您的数据集组。这时,将显示数据集组概述

  3. 在导航窗格中,选择数据集

  4. 数据删除任务中,选择创建作业

  5. Job 详细信息中,为该作业命名。

  6. S3 输入源中,对于 S3 位置,指定存储要删除的用户 ID 列表的 CSV 文件的 Amazon S3 位置。你在中准备了这个文件准备要删除的用户列表

  7. 对于 IAM 角色,选择创建新角色或使用现有角色。如果您已完成为 Amazon Personalize 创建角色的先决条件并授予该角色访问您的 Amazon S3 存储桶的权限,请选择使用现有服务角色并指定您在中创建的角色为 Amazon Personalize 创建 IAM 角色

    您使用的角色必须有权对您的 Amazon S3 存储桶及其内容执行和ListBucket操作。GetObject这些权限与导入数据相同。有关授予权限的信息和策略示例,请参阅向 Amazon Personalize 授予访问 Amazon S3 资源的权限

  8. 对于标签,可以选择添加任何标签。有关标记 Amazon Personalize 资源的更多信息,请参阅为 Amazon Personalize 资源添加标签

  9. 请选择创建任务。作业开始并显示详细信息页面。

    创建作业后,大约需要一天的时间才能从数据集和模型中删除用户的数据。在任务完成之前,Amazon Personalize 会在训练时继续使用这些数据。用户可能会出现在用户细分中。

    当状态显示为 “已完成” 时,数据删除即告完成。如果任务因任何原因失败,我们建议创建另一个数据删除任务。任务完成后,请务必更新所有自定义资源。请务必创建新的解决方案版本,并在必要时更新您的活动。如果您使用自动训练,您仍然可以手动创建新的解决方案版本。

要使用删除用户 AWS 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-arn dataset group ARN \ --data-source dataLocation=s3://bucketname/filename.csv \ --role-arn roleArn

创建作业后,大约需要一天的时间才能从数据集和模型中删除用户的数据。在任务完成之前,Amazon Personalize 会在训练时继续使用这些数据。用户可能会出现在用户细分中。

当状态为 “已完成” 时,任务即告完成。使用describe-data-deletion-job命令检查状态并指定数据删除作业 ARN。有关 API 操作的更多信息,请参阅DescribeDataDeletionJob。要查看按创建时间排序的数据删除任务的历史记录,请使用 ListDataDeletionJobs API 操作。

如果任务因任何原因失败,我们建议创建另一个数据删除任务。任务完成后,请务必更新所有自定义资源。请务必创建新的解决方案版本,并在必要时更新您的活动。如果您使用自动训练,您仍然可以手动创建新的解决方案版本。

要使用 AWS 软件开发工具包删除用户,请使用 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 操作。

如果任务因任何原因失败,我们建议创建另一个数据删除任务。任务完成后,请务必更新所有自定义资源。请务必创建新的解决方案版本,并在必要时更新您的活动。如果您使用自动训练,您仍然可以手动创建新的解决方案版本。