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

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

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

重要

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

入力データをフォーマットした後(入力データの書式設定) を作成し、Amazon Simple Storage Service (Amazon S3) バケットにアップロードします (Amazon S3 バケットへのアップロード) で、データセットのインポートジョブを作成して一括レコードをインポートします。

Aデータセットインポートジョブは、S3 バケットのデータをデータセットに設定する一括インポートツールです。データセットインポートジョブを作成し、一括レコードをインポートするには、Amazon Personalize コンソールを使用します。AWS Command Line Interface(AWS CLI)、またはAWSSDK。

一括レコードのインポート (コンソール)

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

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

注記

データセットをステップ 2: データセットとスキーマの作成の手順5に進みます。

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

  2. リポジトリの []データセットグループページで、データセットグループを選択します。データセットグループダッシュボードと表示されます。

  3. データセットをアップロードするセクションで、インポートするデータセットのタイプに対して、インポート.. -環境設定 < dataset type >ページが表示されます。

  4. このタイプのデータセットをすでに作成している場合は、データセット詳細およびスキーマ詳細フィールドは無効になります。[Next] を選択します。

    まだこのタイプのデータセットを作成していない場合は、データセット詳細およびスキーマ詳細フィールドを使用してデータセットを作成します。

  5. Eclipseデータセットインポートジョブの詳細, 用データセットインポートジョブ名で、インポートジョブの名前を指定します。

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

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

  8. を使用する場合データの場所で、Amazon S3 内のデータファイル保存場所を指定します。以下の構文を使用します。

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

    注記

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

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

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

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

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

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

一括レコードのインポート (AWS CLI)

  1. 次のコマンドを実行してデータセットのインポートジョブを作成します。データセットの Amazon リソースネーム (ARN) を提供します。ステップ 2: データセットとスキーマの作成と S3 バケット名 提供するAWS Identity and Access Management(IAM) ロール Amazon リソースネーム (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は、作成保留中と表示されます。

    { "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 と表示されると、データセットのインポートが完了します。これで、指定したデータセットを使用してモデルをトレーニングできます。

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

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

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

SDK for Python (Boto3)

[] を指定します。datasetGroupArnを選択し、dataLocationトレーニングデータを保存した Amazon S3 バケットへのパスに設定します。

向けのroleArnで、AWS Identity and Access Management(IAM) ロールで、S3 バケットへのアクセス許可を Amazon Personalize に付与します。「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 リソースネーム)、ジョブの名前、データセット ARN、Amazon S3 バケットパス(s3://<bucketname>/<file name.csv>)、およびサービスリンクされたロールの 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データセットを削除します。

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