Publication de rapports d'attribution de métriques sur Amazon S3 - Amazon Personalize

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Publication de rapports d'attribution de métriques sur Amazon S3

Pour toutes les données en masse, si vous fournissez un compartiment Amazon S3 lorsque vous créez votre attribution de métriques, vous pouvez choisir de publier des rapports de métriques dans votre compartiment Amazon S3 chaque fois que vous créez une tâche d'importation d'ensemble de données pour les données d'interactions.

Pour publier des métriques sur Amazon S3, vous indiquez un chemin d'accès à votre compartiment Amazon S3 dans votre attribution de métriques. Vous publiez ensuite des rapports sur Amazon S3 lorsque vous créez une tâche d'importation de jeux de données. Une fois le travail terminé, vous pouvez trouver les métriques dans votre compartiment Amazon S3. Chaque fois que vous publiez des métriques, Amazon Personalize crée un nouveau fichier dans votre compartiment Amazon S3. Le nom du fichier inclut la méthode et la date d'importation, comme suit :

AggregatedAttributionMetrics - ImportMethod - Timestamp.csv

Voici un exemple de la façon dont les premières lignes d'un fichier CSV de rapport métrique peuvent apparaître. La métrique présentée dans cet exemple indique le nombre total de clics provenant de deux recommandateurs différents sur des intervalles de 15 minutes. Chaque recommandeur est identifié par son Amazon Resource Name (ARN) dans la colonne EVENT_ATTRIBUTITION_SOURCE.

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

Publication de métriques pour les données en masse sur Amazon S3 (console)

Pour publier des métriques dans un compartiment Amazon S3 à l'aide de la console Amazon Personalize, créez une tâche d'importation de jeux de données et choisissez Publier les métriques pour cette tâche d'importation dans Publier les métriques d'événements sur S3.

Pour step-by-step obtenir des instructions, voirCréation d'une tâche d'importation de jeux de données (console).

Publication de métriques pour les données en masse sur Amazon S3 (AWS CLI)

Pour publier des métriques dans un compartiment Amazon S3 avec le AWS Command Line Interface (AWS CLI), utilisez le code suivant pour créer une tâche d'importation de jeu de données et fournir l'publishAttributionMetricsToS3indicateur. Si vous ne souhaitez pas publier de statistiques pour une tâche en particulier, omettez l'indicateur. Pour plus d'informations sur chaque paramètre, consultezCreateDatasetImportJob.

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

Publication de métriques pour les données en masse sur Amazon S3 (AWS SDKs)

Pour publier des métriques dans un compartiment Amazon S3 à l'aide du AWS SDKs, créez une tâche d'importation de jeux de données et publishAttributionMetricsToS3 définissez-la sur true. Pour plus d'informations sur chaque paramètre, consultezCreateDatasetImportJob.

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