データセットのエクスポート - Amazon Personalize

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

データセットのエクスポート

完了後データの準備とインポートでは、インタラクション、アイテム、またはユーザーデータセットのデータを Amazon S3 バケットにエクスポートできます。データセットをエクスポートした後、Amazon Personalize がレコメンデーションを生成するために使用するデータを検証および検査し、以前にリアルタイムで記録したユーザーインタラクションイベントを表示し、データに対してオフライン分析を実行できます。

一括でインポートしたデータ(Amazon Personalize データセットインポートジョブを使用してインポート)のみをエクスポートするか、増分インポートしたデータ(コンソールまたはPutEvents,PutUsers, またはPutItems操作)、またはその両方です。

データセットをエクスポートするには、データセットエクスポートジョブを作成します。Aデータセットエクスポートジョブは、データセット内のレコードを Amazon S3 バケット内の 1 つ以上の CSV ファイルに出力するレコードエクスポートツールです。出力 CSV ファイルには、データセットのスキーマのフィールドと一致する列名を持つヘッダー行が含まれます。Amazon Personalize は、重複するレコード(すべての項目で正確に一致するレコード)を 1 つのレコードに結合します。

データセットエクスポートジョブを作成するには、Amazon Personalize コンソールを使用します。AWS Command Line Interface(AWS CLI)、またはAWSSDK。

データセットエクスポートジョブの権限の要件

データセットをエクスポートするには、Amazon Personalize に Amazon S3 バケットにファイルを追加する権限が必要です。アクセス許可を付与するには、新しいAWS Identity and Access Management(IAM) ポリシーを Amazon Personalize サービスリンクロールに追加して、PutObjectおよびListBucketアクションを実行し、出力 Amazon S3 バケットにバケットポリシーをアタッチします。これにより、Amazon Personalize 原則にPutObjectおよびListBucket[Actions]

Amazon S3 のバケットとオブジェクトは、暗号化されていないか、AWS Key Management Service(AWSKMS) を暗号化するには、IAM ユーザーと Amazon Personalize サービスリンクロールにキーを使用するアクセス権限を付与する必要があります。また、Amazon Personalize 原則としてAWS KMSキーポリシー。詳細については、「」を参照してください。でのキーポリシーの使用AWSKMSAWS Key Management Serviceデベロッパーガイド

データセットをエクスポートするためのサービスにリンクされたロールポリシー

以下のポリシー例では、Amazon Personalize サービスリンクロールにPutObjectおよびListBucketアクション。置換bucket-name出力バケットの名前を使用した サービスリンク IAM ロールにポリシーをアタッチする方法については、「」を参照してください。Amazon S3 ポリシーを Amazon Personalize サービスロールにアタッチする

{ "Version": "2012-10-17", "Id": "PersonalizeS3BucketAccessPolicy", "Statement": [ { "Sid": "PersonalizeS3BucketAccessPolicy", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] } ] }

データセットエクスポート用の Amazon S3 バケットポリシー

以下のポリシー例では、Amazon Personalize にPutObjectおよびListBucketAmazon S3 バケットでのアクション。bucket-name をバケットの名前に置き換えます。バケットに Amazon S3 バケットポリシーを追加する方法については、「」S3 バケットポリシーを追加する方法Amazon Simple Storage Service ユーザーガイド.

{ "Version": "2012-10-17", "Id": "PersonalizeS3BucketAccessPolicy", "Statement": [ { "Sid": "PersonalizeS3BucketAccessPolicy", "Effect": "Allow", "Principal": { "Service": "personalize.amazonaws.com" }, "Action": [ "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] } ] }

データセットエクスポートジョブの作成 (コンソール)

データをデータセットにインポートし、出力 Amazon S3 バケットを作成したら、分析のためにデータをバケットにエクスポートできます。Amazon Personalize コンソールを使用してデータセットをエクスポートするには、データセットエクスポートジョブを作成します。Amazon S3 バケットを作成する方法については、「」を参照してください。バケットの作成Amazon Simple Storage Service ユーザーガイド

データセットをエクスポートする前に、Amazon Personalize サービスリンクされたロールが、出力 Amazon S3 バケットにアクセスして書き込めることを確認してください。「データセットエクスポートジョブの権限の要件」を参照してください。

データセットエクスポートジョブを作成するには (コンソール)

  1. で Amazon Personalize コンソールを開きます。https://console.aws.amazon.com/personalize/home

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

  3. リポジトリの []データセットグループページで、データセットグループを選択します。

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

  5. Amazon S3 バケットにエクスポートするデータセットを選択します。

  6. Eclipseデータセットエクスポートジョブ] で、データセットエクスポートジョブを作成します。

  7. Eclipseデータセットエクスポートジョブ詳細, 用データセットエクスポートジョブ名に、エクスポートジョブの名前を入力します。

  8. を使用する場合IAM サービスロールで、Amazon Personalize サービスリンクロールを選択します。Amazon Personalize の IAM サービスロールの作成

  9. を使用する場合Amazon S3 データ出力パス宛先 Amazon S3 バケットを入力します。以下の構文を使用します。

    s3://<name of your S3 bucket>/<folder path>

  10. 使用している場合AWS KMS暗号化用、KMS キー ARNの Amazon リソースネーム (ARN) をAWS KMSkey.

  11. を使用する場合データタイプのエクスポートで、データを最初にインポートした方法に基づいて、エクスポートするタイプデータを選択します。

    • 選択大容量を使用すると、データセットインポートジョブを使用して一括インポートしたデータのみをエクスポートできます。

    • 選択増分段階的にインポートしたデータのみをエクスポートするには、コンソールまたはPutEvents,PutUsers, またはPutItemsオペレーション.

    • 選択両方データセット内のすべてのデータをエクスポートします。

  12. 選択データセットエクスポートジョブを作成します。

    リポジトリの []データセットの概要ページで、データセットエクスポートジョブの場合、ジョブはエクスポートジョブステータス。ステータスが [] になると、データセットのエクスポートジョブは完了です。ACTIVE。その後、出力の Amazon S3 バケットからデータをダウンロードできます。Amazon S3 バケットからオブジェクトをダウンロードする方法については、オブジェクトのダウンロードAmazon Simple Storage Service ユーザーガイド.

データセットエクスポートジョブを作成するには (AWS CLI)

データをデータセットにインポートし、出力 Amazon S3 バケットを作成したら、分析のためにデータセットをバケットにエクスポートできます。データセットをエクスポートするにはAWS CLIデータセットエクスポートジョブを作成するには、create-dataset-export-job AWS CLIコマンドを実行します。Amazon S3 バケットを作成する方法については、「」を参照してください。バケットの作成Amazon Simple Storage Service ユーザーガイド

データセットをエクスポートする前に、Amazon Personalize サービスリンクロールが、出力 Amazon S3 バケットにアクセスして書き込むことができることを確認してください。「データセットエクスポートジョブの権限の要件」を参照してください。

の例を次に示します。create-dataset-export-job AWS CLIコマンドを実行します。ジョブに名前を付け、dataset arnエクスポートするデータセットの Amazon リソースネーム (ARN) に置き換え、role ARNで作成ARN Amazon Personalize サービスにリンクされたロールAmazon Personalize の IAM サービスロールの作成。Eclipses3DataDestinationに対し、kmsKeyArnで、オプションで ARN をAWS KMSキー、およびpath出力の Amazon S3 バケットへのパスを指定します。

を使用する場合ingestion-modeで、次のオプションからエクスポートするデータを指定します。

  • を指定するBULKを使用すると、データセットインポートジョブを使用して一括インポートしたデータのみをエクスポートできます。

  • を指定するPUT段階的にインポートしたデータのみをエクスポートするには、コンソールまたはPutEvents、PutUsers、またはPutItemsオペレーション.

  • を指定するALLデータセット内のすべてのデータをエクスポートします。

詳細については、「」を参照してください。CreateDatasetExportJob

aws personalize create-dataset-export-job \ --job-name job name \ --dataset-arn dataset ARN \ --job-output "{\"s3DataDestination\":{\"kmsKeyArn\":\"kms key ARN\",\"path\":\"s3://bucket-name/folder-name/\"}}" \ --role-arn role ARN \ --ingestion-mode PUT

データセットエクスポートジョブの ARN が表示されます。

{ "datasetExportJobArn": "arn:aws:personalize:us-west-2:acct-id:dataset-export-job/DatasetExportJobName" }

を使用するDescribeDatasetExportJobステータスを確認するには、オペレーションを実行します。

aws personalize describe-dataset-export-job \ --dataset-export-job-arn dataset export job ARN

データセットエクスポートジョブを作成するには (AWSSDK)

データをデータセットにインポートし、出力 Amazon S3 バケットを作成したら、分析のためにデータセットをバケットにエクスポートできます。データセットをエクスポートするにはAWSSDK では、データセットエクスポートジョブを作成するには、CreateDatasetExportJobオペレーション. Amazon S3 バケットを作成する方法については、「」を参照してください。バケットの作成Amazon Simple Storage Service ユーザーガイド

次のコードは、SDK for Python (Boto3) または SDK for Java 2.x SDK を使用してデータセットエクスポートジョブを作成する方法を示しています。

データセットをエクスポートする前に、Amazon Personalize サービスリンクロールが、出力 Amazon S3 バケットにアクセスして書き込むことができることを確認してください。「データセットエクスポートジョブの権限の要件」を参照してください。

SDK for Python (Boto3)

以下のを使用します。create_dataset_export_jobデータセット内のデータを Amazon S3 バケットにエクスポートします。ジョブに名前を付け、dataset arnエクスポートするデータセットの Amazon リソースネーム (ARN) に置き換え、role ARNで作成ARN Amazon Personalize サービスにリンクされたロールAmazon Personalize の IAM サービスロールの作成。Eclipses3DataDestinationに対し、kmsKeyArnで、オプションで ARN をAWS KMSキー、およびpath出力の Amazon S3 バケットへのパスを指定します。

を使用する場合ingestionModeで、次のオプションからエクスポートするデータを指定します。

  • を指定するBULKを使用すると、データセットインポートジョブを使用して一括インポートしたデータのみをエクスポートできます。

  • を指定するPUT段階的にインポートしたデータのみをエクスポートするには、コンソールまたはPutEvents、PutUsers、またはPutItemsオペレーション.

  • を指定するALLデータセット内のすべてのデータをエクスポートします。

import boto3 personalize = boto3.client('personalize') response = personalize.create_dataset_export_job( jobName = 'job name', datasetArn = 'dataset ARN', jobOutput = { "s3DataDestination": { "kmsKeyArn": "kms key ARN", "path": "s3://bucket-name/folder-name/" } }, roleArn = 'role ARN', ingestionMode = 'PUT' ) dsej_arn = response['datasetExportJobArn'] print ('Dataset Export Job arn: ' + dsej_arn) description = personalize.describe_dataset_export_job( datasetExportJobArn = dsej_arn)['datasetExportJob'] print('Name: ' + description['jobName']) print('ARN: ' + description['datasetExportJobArn']) print('Status: ' + description['status'])
SDK for Java 2.x

以下のを使用します。createDatasetExportJobデータセットエクスポートジョブを作成するにはメソッドを使用します。PersonalizeClient、エクスポートジョブの名前、エクスポートするデータセットの ARN、取り込みモード、出力 Amazon S3 バケットのパス、AWS KMSkey.

-ingestionMode次のいずれかのオプションを使用できます。

  • を使用するIngestionMode.BULKを使用すると、データセットインポートジョブを使用して一括インポートしたデータのみをエクスポートできます。

  • を使用するIngestionMode.PUT段階的にインポートしたデータのみをエクスポートするには、コンソールまたはPutEvents、PutUsers、またはPutItemsオペレーション.

  • を使用するIngestionMode.ALLデータセット内のすべてのデータをエクスポートします。

public static void createDatasetExportJob(PersonalizeClient personalizeClient, String jobName, String datasetArn, IngestionMode ingestionMode, String roleArn, String s3BucketPath, String kmsKeyArn) { long waitInMilliseconds = 30 * 1000; // 30 seconds String status = null; try { S3DataConfig exportS3DataConfig = S3DataConfig.builder() .path(s3BucketPath) .kmsKeyArn(kmsKeyArn) .build(); DatasetExportJobOutput jobOutput = DatasetExportJobOutput.builder() .s3DataDestination(exportS3DataConfig) .build(); CreateDatasetExportJobRequest createRequest = CreateDatasetExportJobRequest.builder() .jobName(jobName) .datasetArn(datasetArn) .ingestionMode(ingestionMode) .jobOutput(jobOutput) .roleArn(roleArn) .build(); String datasetExportJobArn = personalizeClient.createDatasetExportJob(createRequest).datasetExportJobArn(); DescribeDatasetExportJobRequest describeDatasetExportJobRequest = DescribeDatasetExportJobRequest.builder() .datasetExportJobArn(datasetExportJobArn) .build(); long maxTime = Instant.now().getEpochSecond() + 3 * 60 * 60; while (Instant.now().getEpochSecond() < maxTime) { DatasetExportJob datasetExportJob = personalizeClient.describeDatasetExportJob(describeDatasetExportJobRequest) .datasetExportJob(); status = datasetExportJob.status(); System.out.println("Export job status: " + status); if (status.equals("ACTIVE") || status.equals("CREATE FAILED")) { break; } try { Thread.sleep(waitInMilliseconds); } catch (InterruptedException e) { System.out.println(e.getMessage()); } } } catch (PersonalizeException e) { System.out.println(e.awsErrorDetails().errorMessage()); } }