Veröffentlichen von Berichten zur Zuordnung von Metriken in Amazon S3 - Amazon Personalize

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Veröffentlichen von Berichten zur Zuordnung von Metriken in Amazon S3

Wenn Sie bei der Erstellung Ihrer Metrik-Attribution einen Amazon S3 S3-Bucket angeben, können Sie für alle Massendaten wählen, dass jedes Mal, wenn Sie einen Datensatz-Importjob für Interaktionsdaten erstellen, Metrikberichte in Ihrem Amazon S3 S3-Bucket veröffentlicht werden.

Um Metriken in Amazon S3 zu veröffentlichen, geben Sie in Ihrer Metrik-Zuordnung einen Pfad zu Ihrem Amazon S3 S3-Bucket an. Anschließend veröffentlichen Sie Berichte in Amazon S3, wenn Sie einen Datensatz-Importauftrag erstellen. Wenn der Job abgeschlossen ist, finden Sie die Metriken in Ihrem Amazon S3 S3-Bucket. Jedes Mal, wenn Sie Metriken veröffentlichen, erstellt Amazon Personalize eine neue Datei in Ihrem Amazon S3 S3-Bucket. Der Dateiname beinhaltet die Importmethode und das Datum wie folgt:

AggregatedAttributionMetrics - ImportMethod - Timestamp.csv

Im Folgenden finden Sie ein Beispiel dafür, wie die ersten Zeilen einer CSV Metrikberichtsdatei aussehen könnten. Die Metrik in diesem Beispiel gibt Auskunft über die Gesamtzahl der Klicks von zwei verschiedenen Empfehlungen in Intervallen von 15 Minuten. Jeder Empfehlungsgeber wird durch seinen Amazon-Ressourcennamen (ARN) in der SOURCE Spalte EVENT _ ATTRIBUTION _ identifiziert.

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

Veröffentlichen von Metriken für Massendaten in Amazon S3 (Konsole)

Um Metriken mit der Amazon Personalize-Konsole in einem Amazon S3-Bucket zu veröffentlichen, erstellen Sie einen Datensatz-Import-Job und wählen Sie unter Event-Metriken in S3 veröffentlichen die Option Metriken für diesen Importjob veröffentlichen aus.

step-by-step Eine Anleitung finden Sie unterEinen Job zum Importieren von Datensätzen erstellen (Konsole).

Veröffentlichen von Metriken für Massendaten in Amazon S3 (AWS CLI)

Um Metriken mit dem AWS Command Line Interface (AWS CLI) in einem Amazon S3 S3-Bucket zu veröffentlichen, verwenden Sie den folgenden Code, um einen Datensatz-Importjob zu erstellen und das publishAttributionMetricsToS3 Flag bereitzustellen. Wenn Sie keine Metriken für einen bestimmten Job veröffentlichen möchten, lassen Sie das Kennzeichen weg. Informationen zu den einzelnen Parametern finden Sie unterCreateDatasetImportJob.

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

Veröffentlichen von Metriken für Massendaten in Amazon S3 (AWS SDKs)

Um Metriken mit dem in einem Amazon S3 S3-Bucket zu veröffentlichen AWS SDKs, erstellen Sie einen Datensatz-Import-Job und setzen Sie publishAttributionMetricsToS3 ihn auf true. Informationen zu den einzelnen Parametern finden Sie unterCreateDatasetImportJob.

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