Menerbitkan laporan atribusi metrik ke Amazon S3 - Amazon Personalize

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menerbitkan laporan atribusi metrik ke Amazon S3

Untuk semua data massal, jika Anda menyediakan bucket Amazon S3 saat membuat atribusi metrik, Anda dapat memilih untuk menerbitkan laporan metrik ke bucket Amazon S3 setiap kali Anda membuat pekerjaan impor kumpulan data untuk data interaksi.

Untuk memublikasikan metrik ke Amazon S3, Anda menyediakan jalur ke bucket Amazon S3 di atribusi metrik. Kemudian Anda memublikasikan laporan ke Amazon S3 saat Anda membuat pekerjaan impor kumpulan data. Saat pekerjaan selesai, Anda dapat menemukan metrik di bucket Amazon S3 Anda. Setiap kali Anda mempublikasikan metrik, Amazon Personalize membuat file baru di bucket Amazon S3 Anda. Nama file termasuk metode impor dan tanggal sebagai berikut:

AggregatedAttributionMetrics - ImportMethod - Timestamp.csv

Berikut ini adalah contoh bagaimana beberapa baris pertama dari CSV file laporan metrik mungkin muncul. Metrik dalam contoh ini melaporkan total klik dari dua pemberi rekomendasi yang berbeda selama interval 15 menit. Setiap pemberi rekomendasi diidentifikasi dengan Nama Sumber Daya Amazon (ARN) di SOURCE kolom EVENT _ ATTRIBUTION _.

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 ...... .....

Menerbitkan metrik untuk data massal ke Amazon S3 (konsol)

Untuk memublikasikan metrik ke bucket Amazon S3 dengan konsol Amazon Personalize, buat tugas impor kumpulan data dan pilih Publikasikan metrik untuk pekerjaan impor ini di Publikasikan metrik peristiwa ke S3.

Untuk step-by-step instruksi, lihatMengimpor catatan massal (konsol).

Menerbitkan metrik untuk data massal ke Amazon S3 ()AWS CLI

Untuk memublikasikan metrik ke bucket Amazon S3 dengan AWS Command Line Interface AWS CLI(), gunakan kode berikut untuk membuat tugas impor kumpulan data dan memberikan tanda. publishAttributionMetricsToS3 Jika Anda tidak ingin mempublikasikan metrik untuk pekerjaan tertentu, hilangkan bendera. Untuk informasi tentang setiap parameter, lihatCreateDatasetImportJob.

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

Menerbitkan metrik untuk data massal ke Amazon S3 ()AWS SDKs

Untuk memublikasikan metrik ke bucket Amazon S3 dengan AWS SDKs, buat tugas impor kumpulan data dan publishAttributionMetricsToS3 setel ke true. Untuk informasi tentang setiap parameter, lihatCreateDatasetImportJob.

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();