データセットのインポートジョブを使用したバルクレコードのインポート - Amazon Personalize

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

データセットのインポートジョブを使用したバルクレコードのインポート

重要

Amazon Personalize の一括インポートは、バルクデータの完全更新です。データセット内の既存のバルクデータが置き換えられます。これには、増分的にインポートされたレコードは含まれません。

入力データをフォーマットし (「入力データのフォーマット」を参照)、Amazon Simple Storage Service (Amazon S3) バケットにアップロードしたら (「Amazon S3 バケットへのアップロード」を参照)、データセットのインポートジョブを作成することによってバルクレコードをインポートします。

データセットインポートジョブは、S3 バケットからのデータをデータセットに取り込む一括インポートツールです。データセットのインポートジョブを作成し、Amazon Personalize コンソール、AWS Command Line Interface (AWS CLI)、または AWS SDK を使用してバルクレコードをインポートします。

バルクレコードのインポート (コンソール)

コンソールを使用して Amazon Personalize のデータセットにバルクレコードをインポートするには、名前、IAM サービスロール、およびデータの場所を使用してデータセットのインポートジョブを作成します。

バルクレコードをインポートするには (コンソール)

注記

ステップ 2: データセットとスキーマの作成 でデータセットを作成したばかりの場合は、ステップ 5 に進んでください。

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

  2. [Dataset groups] (データセットグループ) のページで、データセットグループを選択します。データセットグループの [Dashboard] (ダッシュボード) が表示されます。

  3. [Upload datasets] (データセットをアップロード) のセクションで、インポートするデータセットのタイプで、[Import] (インポート) を選択します。[Configure < dataset type >] (< データセットタイプ > を設定) のページが表示されます。

  4. このタイプのデータセットを既に作成している場合は、すべての [Dataset details] (データセットの詳細) と [Schema details] (スキーマの詳細) のフィールドが無効になります。[Next] (次へ) を選択します。

    このタイプのデータセットを作成していない場合は、[Dataset details] (データセットの詳細) フィールドと [Schema details] (スキーマの詳細) フィールドに入力してデータセットを作成します。

  5. [Dataset import job details] (データセットインポートジョブの詳細) で [Dataset import job name] (データセットインポートジョブ名) にインポートジョブの名前を指定します。

  6. [IAM service role (IAM サービスロール)] は、デフォルトで選択されている [Enter a custom IAM role ARN (カスタム IAM ロールの ARN を入力)] のままにします。

  7. [カスタム IAM ロールの ARN] で、Amazon Personalize の IAM ロールの作成 で作成したロールを指定します。

  8. [Data location] (データの場所) で、データファイルが Amazon S3 のどこに保存されるかを指定します。次の構文を使用します。

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

    注記

    CSV ファイルが S3 バケット内のフォルダにあり、1 つのデータセットのインポートジョブで複数の CSV ファイルをデータセットにアップロードする場合は、CSV ファイル名なしでこの構文を使用します。

  9. を使用する場合タグオプションで、タグを追加します。Amazon Personalize リソースのタグ付けの詳細については、「」を参照してください。Amazon Personalize リソースに対してタグ付け

  10. [Finish] を選択します。データインポートジョブが開始され、[Dashboard Overview (ダッシュボード概要)] ページが表示されます。

    ステータスが ACTIVE と表示されると、データセットのインポートが完了します。これで、指定したデータセットを使用してモデルをトレーニングできます。

    データをデータセットグループの関連するデータセットにインポートしたら、モデルをトレーニングしてソリューションバージョンを作成します。詳細については、「ソリューションの作成」を参照してください。

バルクレコードのインポート (AWS CLI)

AWS CLI を使用してバルクレコードをインポートするには、CreateDatasetImportJob コマンドを使用してデータセットのインポートジョブを作成します。

バルクレコードをインポートする (AWS CLI)

  1. 次のコマンドを実行してデータセットのインポートジョブを作成します。データセットに Amazon リソースネーム (ARN) を指定し、トレーニングデータを保存した Amazon S3 バケットへのパスを指定します。パスには次の構文を使用します。

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

    以下の内容を指定します。AWS Identity and Access Managementで作成した Amazon リソースネーム (ARN) ロール Amazon リソースネーム (ARN) ロール (ARN) ロールAmazon Personalize の IAM ロールの作成。オペレーションの詳細については、CreateDatasetImportJob を参照してください。

    aws personalize create-dataset-import-job \ --job-name dataset import job name \ --dataset-arn dataset arn \ --data-source dataLocation=s3://bucketname/filename \ --role-arn roleArn

    次の例に示すように、データセットのインポートジョブの ARN が表示されます。

    { "datasetImportJobArn": "arn:aws:personalize:us-west-2:acct-id:dataset-import-job/DatasetImportJobName" }
  2. describe-dataset-import-job コマンドを使用してステータスを確認します。前のステップで返されたデータセットのインポートジョブの ARN を指定します。オペレーションの詳細については、DescribeDatasetImportJob を参照してください。

    aws personalize describe-dataset-import-job \ --dataset-import-job-arn dataset import job arn

    データセットのインポートジョブのプロパティとそのステータスが表示されます。最初、status は [CREATE PENDING] と表示されます。

    { "datasetImportJob": { "jobName": "Dataset Import job name", "datasetImportJobArn": "arn:aws:personalize:us-west-2:acct-id:dataset-import-job/DatasetImportJobArn", "datasetArn": "arn:aws:personalize:us-west-2:acct-id:dataset/DatasetGroupName/INTERACTIONS", "dataSource": { "dataLocation": "s3://<bucketname>/ratings.csv" }, "roleArn": "role-arn", "status": "CREATE PENDING", "creationDateTime": 1542392161.837, "lastUpdatedDateTime": 1542393013.377 } }

    ステータスが ACTIVE と表示されると、データセットのインポートが完了します。これで、指定したデータセットを使用してモデルをトレーニングできます。

    データをデータセットグループの関連するデータセットにインポートしたら、モデルをトレーニングしてソリューションバージョンを作成します。詳細については、「ソリューションの作成」を参照してください。

バルクレコードのインポート (AWS SDK)

データセットにデータを追加するには、データセットのインポートジョブを作成して実行します。CreateDatasetImportJobオペレーション. 次のコードは、SDK for Python (Boto3) または SDK for Java 2.x を使用してデータセットのインポートジョブを作成する方法を示しています。

SDK for Python (Boto3)

ジョブ名を付けて、datasetArnデータセットの Amazon リソースネーム (ARN) を指定し、dataLocationトレーニングデータを保存した Amazon S3 バケットへのパスに設定します。パスには次の構文を使用します。

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

roleArn には、S3 バケットにアクセスするための許可を Amazon Personalize に付与する AWS Identity and Access Management (IAM) ロールを指定します。「Amazon Personalize の IAM ロールの作成」を参照してください。

import boto3 personalize = boto3.client('personalize') response = personalize.create_dataset_import_job( jobName = 'YourImportJob', datasetArn = 'dataset_arn', dataSource = {'dataLocation':'s3://bucket/file.csv'}, roleArn = 'role_arn' ) dsij_arn = response['datasetImportJobArn'] print ('Dataset Import Job arn: ' + dsij_arn) description = personalize.describe_dataset_import_job( datasetImportJobArn = dsij_arn)['datasetImportJob'] print('Name: ' + description['jobName']) print('ARN: ' + description['datasetImportJobArn']) print('Status: ' + description['status'])
SDK for Java 2.x

次の createPersonalizeDatasetImportJob メソッドを使用して、データセットのインポートジョブを作成します。パラメータとして、Amazon Personalize のサービスクライアント、ジョブの名前、データセットの ARN、Amazon S3 バケットパス (s3://<bucketname>/<file name.csv>) トレーニングデータと Amazon Personalize IAM サービスロールの ARN を保存した場所 (「」を参照)Amazon Personalize の IAM ロールの作成).

CSV ファイルが Amazon S3 バケットのフォルダにある場合は、1 つのデータセットのインポートジョブで複数の CSV ファイルをデータセットにアップロードできます。バケットパスには、ファイル名の代わりに bucket-name/folder-name/ を指定します。

public static String createPersonalizeDatasetImportJob(PersonalizeClient personalizeClient, String jobName, String datasetArn, String s3BucketPath, String roleArn) { long waitInMilliseconds = 60 * 1000; String status; String datasetImportJobArn; try { DataSource importDataSource = DataSource.builder() .dataLocation(s3BucketPath) .build(); CreateDatasetImportJobRequest createDatasetImportJobRequest = CreateDatasetImportJobRequest.builder() .datasetArn(datasetArn) .dataSource(importDataSource) .jobName(jobName) .roleArn(roleArn) .build(); datasetImportJobArn = personalizeClient.createDatasetImportJob(createDatasetImportJobRequest) .datasetImportJobArn(); DescribeDatasetImportJobRequest describeDatasetImportJobRequest = DescribeDatasetImportJobRequest.builder() .datasetImportJobArn(datasetImportJobArn) .build(); long maxTime = Instant.now().getEpochSecond() + 3 * 60 * 60; while (Instant.now().getEpochSecond() < maxTime) { DatasetImportJob datasetImportJob = personalizeClient .describeDatasetImportJob(describeDatasetImportJobRequest) .datasetImportJob(); status = datasetImportJob.status(); System.out.println("Dataset import job status: " + status); if (status.equals("ACTIVE") || status.equals("CREATE FAILED")) { break; } try { Thread.sleep(waitInMilliseconds); } catch (InterruptedException e) { System.out.println(e.getMessage()); } } return datasetImportJobArn; } catch (PersonalizeException e) { System.out.println(e.awsErrorDetails().errorMessage()); } return ""; }

DescribeDatasetImportJob 操作のレスポンスには、操作のステータスが含まれます。

ステータスが ACTIVE に変わるまで待ってから、データを使用してモデルをトレーニングしてください。

Amazon Personalize には、データセット、データセットグループ、データセットインポートジョブを管理するための操作が用意されています。例えば、ListDatasets ではデータセットグループ内のデータセットを一覧表示できます。DeleteDataset ではデータセットを削除できます。

データをデータセットグループの関連するデータセットにインポートしたら、モデルをトレーニングしてソリューションバージョンを作成します。詳細については、ソリューションの作成を参照してください。