使用数据删除作业删除用户及其数据 - Amazon Personalize
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用数据删除作业删除用户及其数据

导入数据后,您可以从数据集组中删除用户及其数据,包括元数据和交互数据。为了遵循合规计划,或者为了应对用户删除请求,或者为了在用户群变化时使数据保持最新,您可能需要删除用户数据。

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

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

  1. 准备一个在 USER _ID 列 userIds 中列出要删除的用户的CSV文件。

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

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

指南和要求

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

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

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

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

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

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

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

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

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

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

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

准备待删除用户的列表

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

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

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

  3. 让 Amazon Personalize 访问您的存储桶和您的CSV文件。Amazon Personalize 必须有权对您的存储桶及其内容执行 GetObjectListBucket 操作。这些权限与导入数据时的权限相同。有关授予权限和策略示例的信息,请参阅向 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 存储桶及其内容执行 GetObjectListBucket 操作。有关授予权限和策略示例的信息,请参阅向 Amazon Personalize 授予访问 Amazon S3 资源的权限

您可以使用 Amazon Personalize 控制台 Amazon Command Line Interface (Amazon CLI)或创建数据删除任务 Amazon SDKs。

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

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

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

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

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

  5. 作业详细信息中,为作业取名。

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

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

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

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

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

    创建作业后,需要大约一天时间才能从数据集和模型中删除用户的数据。在作业完成之前,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-arn dataset group ARN \ --data-source dataLocation=s3://amzn-s3-demo-bucket/filename.csv \ --role-arn roleArn

创建作业后,需要大约一天时间才能从数据集和模型中删除用户的数据。在作业完成之前,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操作。

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