Amazon Personalize でのデータセットのエクスポートジョブの作成 - Amazon Personalize

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

Amazon Personalize でのデータセットのエクスポートジョブの作成

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

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

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

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

データセットのエクスポートジョブを作成するには (コンソール)
  1. https://console.aws.amazon.com/personalize/ホームで Amazon Personalize コンソールを開きます。

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

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

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

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

  6. [Dataset export jobs] (データセットのエクスポートジョブ) で、[Create dataset export job] (データセットのエクスポートジョブを作成) を選択します。

  7. [Dataset export job details] (データセットのエクスポートジョブの詳細) の [Dataset export job name] (データセットのエクスポートジョブ名) に、エクスポートジョブの名前を入力します。

  8. IAM サービスロールで、「」で作成した Amazon Personalize サービスロールを選択しますAmazon Personalize 向けの IAM ロールの作成

  9. [Amazon S3 data output path] (Amazon S3 データ出力パス) で、宛先 Amazon S3 バケットを入力します。次の構文を使用します。

    s3://amzn-s3-demo-bucket/<folder path>

  10. 暗号化 AWS KMS に を使用している場合は、KMSキー ARNに AWS KMS キーの Amazon リソースネーム (ARN) を入力します。

  11. [Export data type] (データタイプをエクスポート) で、最初にデータをインポートした方法に基づいて、エクスポートするデータのタイプを選択します。

    • データセットのインポートジョブを使用して一括でインポートしたデータのみをエクスポートするには、[Bulk] (一括) を選択します。

    • コンソールまたはPutEventsPutUsers、または PutItems 操作を使用して個別にインポートしたデータのみをエクスポートするには、[増分] を選択します。

    • データセット内のすべてのデータをエクスポートするには、[Both] (両方) を選択します。

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

  13. [Create dataset export job] (データセットのエクスポートジョブを作成) を選択します。

    [Dataset overview] (データセットの概要) のページの [Dataset export jobs] (データセットのエクスポートジョブ) で、ジョブが [Export job status] (エクスポートジョブのステータス) で一覧表示されます。ステータスが になると、データセットのエクスポートジョブは完了です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 コマンドの例を示します。ジョブに名前を付け、 をエクスポートするデータセットの Amazon リソースネーム (ARN) dataset arnに置き換え、 を で作成した Amazon Personalize サービスロールARNの role ARNに置き換えますAmazon Personalize 向けの IAM ロールの作成。でs3DataDestination、 にはkmsKeyArnオプションで AWS KMS キーARNに を指定し、 には出力 Amazon S3 バケットへのパスpathを指定します。

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

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

  • コンソール、、、または PutItemsオペレーションを使用して個別にインポートしたデータのみをエクスポートPUTするにはPutEvents PutUsers、 を指定します。

  • データセット内のすべてのデータをエクスポートするように 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://amzn-s3-demo-bucket/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

データセットのエクスポートジョブの作成 (AWS SDKs)

データをデータセットにインポートし、出力 Amazon S3 バケットを作成したら、分析のためにデータセットをバケットにエクスポートできます。を使用してデータセットをエクスポートするには AWS SDKs、 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 バケットにエクスポートします。ジョブに名前を付け、 をエクスポートするデータセットの Amazon リソースネーム (ARN) dataset arnに置き換え、 を で作成した Amazon Personalize サービスロールARNの role ARNに置き換えますAmazon Personalize 向けの IAM ロールの作成。でs3DataDestination、 にはkmsKeyArnオプションで AWS KMS キーARNに を指定し、 には出力 Amazon S3 バケットへのパスpathを指定します。

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

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

  • コンソール、、、または PutItemsオペレーションを使用して個別にインポートしたデータのみをエクスポートPUTするにはPutEvents PutUsers、 を指定します。

  • データセット内のすべてのデータをエクスポートするように 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://amzn-s3-demo-bucket/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 メソッドを使用して、データセットのエクスポートジョブを作成します。パラメータとして、a PersonalizeClient、エクスポートジョブの名前、エクスポートするデータセットARNの 、取り込みモード、出力 Amazon S3 バケットのパス、 AWS KMS キーARNの を渡します。

ingestionMode は、次のいずれかのオプションになります。

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

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

  • データセット内のすべてのデータをエクスポートするように 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()); } }