

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# データ削除ジョブを使用してユーザーとそのデータを削除する
<a name="delete-records"></a>

 データをインポートしたら、データセットグループからメタデータやインタラクションデータを含むユーザーとそのデータを削除できます。コンプライアンスプログラムの一部としてユーザーデータを削除したり、ユーザー削除リクエストに対処したり、ユーザーベースが変更されてもデータを最新の状態に保つことができます。

 ユーザーを削除すると、Amazon Personalize はデータに関するトレーニングを行わず、ユーザーセグメントの生成時にユーザーを考慮しなくなります。

 Amazon Personalize データセットおよびデータセットグループのモデル内のユーザーへの参照を削除するには、以下を実行します。

1. USER\$1ID 列で削除するユーザーの userId を一覧表示する CSV ファイルを作成します。

1. Amazon S3 バケットに CSV ファイルをアップロードします。Amazon Personalize サービスロールには、このバケットにアクセスするアクセス許可が必要です。

1.  データ削除ジョブを作成します。*データ削除ジョブ*は、データセットグループのモデルとデータセットからユーザーとそのデータを削除するバッチジョブです。

**Topics**
+ [ガイドラインと要件](#data-deletion-guidelines-requirements)
+ [削除するユーザーのリストを準備する](#prepare-deletion-input-file)
+ [データ削除ジョブの作成](#creating-data-deletion-job)

## ガイドラインと要件
<a name="data-deletion-guidelines-requirements"></a>

ユーザーを削除するためのガイドラインと要件を次に示します。
+  データ削除ジョブを作成する前に、トレーニングジョブ、バッチジョブ、一括または個別のインポートオペレーションなど、データセットを使用するジョブが進行中でないことを確認します。また、データ削除ジョブが進行中の間は、このようなジョブを作成しないでください。トレーニングやインポートが発生した場合、ユーザーのデータがモデルから削除されることを保証することはできません。追加のデータ削除ジョブを作成することをお勧めします。
+  データ削除ジョブは、Amazon Personalize の外部ユーザーへの参照を削除しません。例えば、Amazon S3 バケットのバッチレコメンデーションから userId を削除することはありません。これらのレコードは手動で削除する必要があります。
+  ステータスが PENDING のデータセットグループには、最大 5 つの削除ジョブを設定できます。
+  データ削除入力ファイルの最大合計サイズは 100 MB です。削除ジョブを作成するときと同じ入力ファイルを再利用できます。
+  各データ削除ジョブは、*データセットグループ*内のユーザーとそのインタラクションデータを削除します。すべてのデータセットグループでデータを削除するには、データセットグループごとにデータ削除ジョブを作成する必要があります。
+ ジョブを作成した後、データセットとモデルからユーザーのデータを削除するまでに最大 1 日かかる場合があります。
+ ジョブが完了したら、必ずカスタムリソースを更新してください。必ず新しいソリューションバージョンを作成し、必要に応じてキャンペーンを更新します。自動トレーニングを使用している場合でも、新しいソリューションバージョンを手動で作成できます。
+  Amazon Personalize サービスロールには、削除するユーザーのリストを含む Amazon S3 バケットにアクセスするアクセス許可が必要です。バケットとそのコンテンツに対する `GetObject` と `ListBucket` アクセス許可が必要です。これらのアクセス許可は、データのインポートと同じです。アクセス許可の付与とポリシーの例については、「[Amazon Personalize に対する、Amazon S3 リソースへのアクセスの付与](granting-personalize-s3-access.md)」を参照してください。
+  削除するユーザーの userId のリストを保存する Amazon S3 バケットで独自の AWS Key Management Service キーを使用することはできません。
+  アイテムがアイテムインタラクションデータセットにのみ表示され、削除しているユーザーのみがこのアイテムとやり取りした場合、このアイテムはレコメンデーションに表示されなくなります。

## 削除するユーザーのリストを準備する
<a name="prepare-deletion-input-file"></a>

 Amazon Personalize からユーザーを削除する前に、CSV ファイルで削除するユーザーのリストを作成し、Amazon S3 にアップロードする必要があります。

**削除してアップロードするユーザーのリストを準備するには**

1. 削除するユーザーの userId を一覧表示する CSV ファイルを作成します。以下は、CSV ファイルのフォーマット方法を示しています。

   ```
   USER_ID
   abc
   2a
   5basc
   ab35
   123f
   a55d
   0v22
   441fa
   efg
   ```

1. Amazon Simple Storage Service (Amazon S3) バケットに CSV ファイルをアップロードします。Amazon S3 へのファイルのアップロードについては、「Amazon Simple Storage Service ユーザーガイド」の「[ドラッグアンドドロップを使用したファイルとフォルダのアップロード](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/upload-objects.html)」を参照してください。

1. Amazon Personalize にバケットと CSV ファイルへのアクセスを許可します。Amazon Personalize には、バケットとそのコンテンツに対して `GetObject` および `ListBucket` アクションを実行するアクセス許可が必要です。これらのアクセス許可は、データのインポートと同じです。アクセス許可の付与とポリシーの例については、「[Amazon Personalize に対する、Amazon S3 リソースへのアクセスの付与](granting-personalize-s3-access.md)」を参照してください。

## データ削除ジョブの作成
<a name="creating-data-deletion-job"></a>

[削除するユーザーのリストを準備する](#prepare-deletion-input-file) を完了すると、データ削除ジョブを使用してユーザーを削除する準備が整います。

*データ削除ジョブ*は、データセットグループのモデルとデータセットからユーザーとそのデータを削除するバッチジョブです。ユーザーを削除すると、Amazon Personalize はデータに関するトレーニングを行わず、ユーザーセグメントの生成時にユーザーを考慮しなくなります。

データ削除ジョブを作成するときは、削除するユーザーのリストの Amazon S3 の場所を指定します。
+ データが 1 つのファイルにある場合は、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 リソースへのアクセスの付与](granting-personalize-s3-access.md)」を参照してください。

 データ削除ジョブは、Amazon Personalize コンソール、AWS Command Line Interface (AWS CLI)、または AWS SDK を使用して作成します。

### データ削除ジョブの作成 (コンソール)
<a name="create-data-deletion-job-console"></a>

 Amazon Personalize コンソールを使用してユーザーを削除するには、名前、IAM サービスロール、およびデータの Amazon S3 の場所を使用してデータ削除ジョブを作成します。

**レコードを削除するには (コンソール)**

1. [https://console.aws.amazon.com/personalize/home](https://console.aws.amazon.com/personalize/home) で Amazon Personalize コンソールを開き、アカウントにサインインします。

1.  **[データセットグループ]** のページで、データセットグループを選択します。データセットグループの **概要** が表示されます。

1. ナビゲーションペインで、**[データセット]** を選択します。

1. **[データ削除ジョブ]** で、**[ジョブの作成]** を選択します。

1. **[ジョブの詳細]** で、ジョブに名前を付けます。

1. **[S3 入力ソース]** で、**[S3 の場所]** に対して、削除するユーザーの userId のリストを保存する CSV ファイルの Amazon S3 の場所を指定します。このファイルは「[削除するユーザーのリストを準備する](#prepare-deletion-input-file)」で準備しました。

1. [**IAM ロール**] で、新しいロールを作成するか、既存のロールを使用するかを選択します。Amazon Personalize のロールを作成するための前提条件を完了し、このロールに Amazon S3 バケットへのアクセス許可を付与した場合は、**[既存のサービスロールを使用する]** を選択し、「[Amazon Personalize 向けの IAM ロールの作成](set-up-required-permissions.md#set-up-create-role-with-permissions)」で作成したロールを指定します。

   使用するロールには、Amazon S3 バケットとそのコンテンツに対して `GetObject` および `ListBucket` アクションを実行するアクセス許可が必要です。これらのアクセス許可は、データのインポートと同じです。アクセス許可の付与とポリシーの例については、「[Amazon Personalize に対する、Amazon S3 リソースへのアクセスの付与](granting-personalize-s3-access.md)」を参照してください。

1. **[タグ]** には、オプションで任意のタグを追加します。Amazon Personalize リソースのタグ付けについての詳細は、「[Amazon Personalize リソースのタグ付け](tagging-resources.md)」を参照してください。

1. **[ジョブの作成]** を選択します。ジョブが開始され、詳細ページが表示されます。

    ジョブを作成したら、データセットとモデルからユーザーのデータを削除するのに約 1 日かかります。ジョブが完了するまで、Amazon Personalize はトレーニング時に引き続きデータを使用します。また、ユーザーはユーザーセグメントに表示される場合があります。

   ステータスが COMPLETED と表示されると、データの削除は完了です。何らかの理由でジョブが失敗する場合は、別のデータ削除ジョブを作成することをお勧めします。ジョブが完了したら、必ずカスタムリソースを更新してください。必ず新しいソリューションバージョンを作成し、必要に応じてキャンペーンを更新します。自動トレーニングを使用している場合でも、新しいソリューションバージョンを手動で作成できます。

### データ削除ジョブの作成 (AWS CLI)
<a name="create-data-deletion-job-cli"></a>

 AWS CLI を使用してユーザーを削除するには、`create-data-deletion-job` コマンドを使用します。このコマンドは CreateDataDeletion API オペレーションを使用します。次のコードは、データ削除ジョブを作成する方法を示しています。コードを使用するには、ジョブ名、「[Amazon Personalize 向けの IAM ロールの作成](set-up-required-permissions.md#set-up-create-role-with-permissions)」で作成した IAM ロール、およびデータの Amazon S3 の場所を指定してコードを更新します。このファイルは「[削除するユーザーのリストを準備する](#prepare-deletion-input-file)」で準備しました。

```
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
```

 ジョブを作成したら、データセットとモデルからユーザーのデータを削除するのに約 1 日かかります。ジョブが完了するまで、Amazon Personalize はトレーニング時に引き続きデータを使用します。また、ユーザーはユーザーセグメントに表示される場合があります。

ジョブが終了すると、ステータスは COMPLETED になります。`describe-data-deletion-job` コマンドを使用してステータスを確認し、データ削除ジョブ ARN を指定します。API オペレーションの詳細については、「[DescribeDataDeletionJob](API_DescribeDataDeletionJob.md)」を参照してください。作成時刻でソートされたデータ削除ジョブの履歴を表示するには、[ListDataDeletionJobs](API_ListDataDeletionJobs.md) API オペレーションを使用します。

何らかの理由でジョブが失敗する場合は、別のデータ削除ジョブを作成することをお勧めします。ジョブが完了したら、必ずカスタムリソースを更新してください。必ず新しいソリューションバージョンを作成し、必要に応じてキャンペーンを更新します。自動トレーニングを使用している場合でも、新しいソリューションバージョンを手動で作成できます。

### データ削除ジョブの作成 (AWS SDK)
<a name="create-data-deletion-job-sdks"></a>

 AWS SDK を使用してユーザーを削除するには、[CreateDataDeletionJob](API_CreateDataDeletionJob.md) API オペレーションを使用します。次のコードは、データ削除ジョブを作成する方法を示しています。コードを使用するには、ジョブ名、「[Amazon Personalize 向けの IAM ロールの作成](set-up-required-permissions.md#set-up-create-role-with-permissions)」で作成した IAM ロール、およびデータの Amazon S3 の場所を指定してコードを更新します。このファイルは「[削除するユーザーのリストを準備する](#prepare-deletion-input-file)」で準備しました。

```
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'])
```

 ジョブを作成したら、データセットとモデルからユーザーのデータを削除するのに約 1 日かかります。ジョブが完了するまで、Amazon Personalize はトレーニング時に引き続きデータを使用します。また、ユーザーはユーザーセグメントに表示される場合があります。

ジョブが終了すると、ステータスは COMPLETED になります。[DescribeDataDeletionJob](API_DescribeDataDeletionJob.md) オペレーションを使用してステータスを確認し、データ削除ジョブ ARN を指定します。作成時刻でソートされたデータ削除ジョブの履歴を表示するには、[ListDataDeletionJobs](API_ListDataDeletionJobs.md) API オペレーションを使用します。

何らかの理由でジョブが失敗する場合は、別のデータ削除ジョブを作成することをお勧めします。ジョブが完了したら、必ずカスタムリソースを更新してください。必ず新しいソリューションバージョンを作成し、必要に応じてキャンペーンを更新します。自動トレーニングを使用している場合でも、新しいソリューションバージョンを手動で作成できます。