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/home で 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 向けの IAM ロールの作成」で作成した Amazon Personalize のサービスロールを選択します。

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

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

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

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

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

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

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

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

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

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

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

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

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