Amazon S3 へのメトリクス属性レポートの発行 - Amazon Personalize

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

Amazon S3 へのメトリクス属性レポートの発行

すべてのバルクデータについて、メトリクス属性の作成時に Amazon S3 バケットを指定すると、インタラクションデータのデータセットインポートジョブを作成するたびに、Amazon S3 バケットにメトリクスレポートを発行することを選択できます。

Amazon S3 にメトリクスを発行するには、メトリクス属性で Amazon S3 バケットへのパスを指定します。次に、データセットのインポートジョブを作成する際に、レポートを Amazon S3 に発行します。ジョブが完了すると、Amazon S3 バケット内のメトリクスを見つけることができます。メトリクスを発行するたびに、Amazon Personalize は Amazon S3 バケットに新しいファイルを作成します。ファイル名には、次のようなインポート方法と日付が含まれます。

AggregatedAttributionMetrics - ImportMethod - Timestamp.csv

以下は、メトリクスレポートCSVファイルの最初の数行がどのように表示されるかの例です。この例のメトリクスは、2 人の異なるレコメンダーによる 15 分間隔での合計クリック数を報告しています。各レコメンダーは、EVENT_ATTRIBUTION_SOURCE 列の Amazon リソースネーム (ARN) によって識別されます。

METRIC_NAME,EVENT_TYPE,VALUE,MATH_FUNCTION,EVENT_ATTRIBUTION_SOURCE,TIMESTAMP COUNTWATCHES,WATCH,12.0,samplecount,arn:aws:personalize:us-west-2:acctNum:recommender/recommender1Name,1666925124 COUNTWATCHES,WATCH,112.0,samplecount,arn:aws:personalize:us-west-2:acctNum:recommender/recommender2Name,1666924224 COUNTWATCHES,WATCH,10.0,samplecount,arn:aws:personalize:us-west-2:acctNum:recommender/recommender1Name,1666924224 COUNTWATCHES,WATCH,254.0,samplecount,arn:aws:personalize:us-west-2:acctNum:recommender/recommender2Name,1666922424 COUNTWATCHES,WATCH,112.0,samplecount,arn:aws:personalize:us-west-2:acctNum:recommender/recommender1Name,1666922424 COUNTWATCHES,WATCH,100.0,samplecount,arn:aws:personalize:us-west-2:acctNum:recommender/recommender2Name,1666922424 ...... .....

バルクデータのメトリクスを Amazon S3 (コンソール) に発行する

Amazon Personalize コンソールで Amazon S3 バケットにメトリクスを発行するには、データセットのインポートジョブを作成し、[イベントメトリクスを S3 に公開する][このインポートジョブのメトリクスを公開] を選択します。

step-by-step 手順については、「」を参照してくださいデータセットのインポートジョブの作成 (コンソール)

バルクデータのメトリクスを Amazon S3 に発行する (AWS CLI)

AWS Command Line Interface (AWS CLI) を使用して Amazon S3 バケットにメトリクスを発行するには、次のコードを使用してデータセットのインポートジョブを作成し、 publishAttributionMetricsToS3フラグを指定します。特定のジョブのメトリクスを発行しない場合は、フラグを省略します。各パラメータについては、「CreateDatasetImportJob」を参照してください。

aws personalize create-dataset-import-job \ --job-name dataset import job name \ --dataset-arn dataset arn \ --data-source dataLocation=s3://amzn-s3-demo-bucket/filename \ --role-arn roleArn \ --import-mode INCREMENTAL \ --publish-attribution-metrics-to-s3

Amazon S3 へのバルクデータのメトリクスの発行 (AWS SDKs)

を使用して Amazon S3 バケットにメトリクスを発行するには AWS SDKs、データセットのインポートジョブを作成し、true publishAttributionMetricsToS3に設定します。各パラメータについては、「CreateDatasetImportJob」を参照してください。

SDK for Python (Boto3)
import boto3 personalize = boto3.client('personalize') response = personalize.create_dataset_import_job( jobName = 'YourImportJob', datasetArn = 'dataset_arn', dataSource = {'dataLocation':'s3://amzn-s3-demo-bucket/file.csv'}, roleArn = 'role_arn', importMode = 'INCREMENTAL', publishAttributionMetricsToS3 = True ) 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
public static String createPersonalizeDatasetImportJob(PersonalizeClient personalizeClient, String jobName, String datasetArn, String s3BucketPath, String roleArn, ImportMode importMode, boolean publishToS3) { 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) .importMode(importMode) .publishAttributionMetricsToS3(publishToS3) .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 ""; }
SDK for JavaScript v3
// Get service clients and commands using ES6 syntax. import { CreateDatasetImportJobCommand, PersonalizeClient } from "@aws-sdk/client-personalize"; // create personalizeClient const personalizeClient = new PersonalizeClient({ region: "REGION" }); // Set the dataset import job parameters. export const datasetImportJobParam = { datasetArn: 'DATASET_ARN', /* required */ dataSource: { dataLocation: 's3://amzn-s3-demo-bucket/<folderName>/<CSVfilename>.csv' /* required */ }, jobName: 'NAME', /* required */ roleArn: 'ROLE_ARN', /* required */ importMode: "FULL", /* optional, default is FULL */ publishAttributionMetricsToS3: true /* set to true to publish metrics to Amazon S3 bucket */ }; export const run = async () => { try { const response = await personalizeClient.send(new CreateDatasetImportJobCommand(datasetImportJobParam)); console.log("Success", response); return response; // For unit tests. } catch (err) { console.log("Error", err); } }; run();