Publicar relatórios de atribuição de métrica no Amazon S3 - Amazon Personalize

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Publicar relatórios de atribuição de métrica no Amazon S3

Para todos os dados em massa, se você fornecer um bucket do Amazon S3 ao criar sua atribuição métrica, poderá optar por publicar relatórios métricos no seu bucket do Amazon S3 sempre que criar um trabalho de importação do conjunto de dados para dados de interações.

Para publicar métricas no Amazon S3, você fornece um caminho para seu bucket do Amazon S3 em sua atribuição de métrica. Em seguida, você publica relatórios no Amazon S3 ao criar um trabalho de importação do conjunto de dados. Quando o trabalho for concluído, você poderá encontrar as métricas em seu bucket do Amazon S3. Cada vez que você publica métricas, o Amazon Personalize cria um novo arquivo no bucket do Amazon S3. O nome do arquivo inclui o método de importação e a data da seguinte forma:

AggregatedAttributionMetrics - ImportMethod - Timestamp.csv

Veja a seguir um exemplo de como as primeiras linhas de um arquivo CSV de relatório métrico podem aparecer. A métrica neste exemplo relata o total de cliques de dois recomendadores diferentes em intervalos de 15 minutos. Cada recomendador é identificado por seu nome do recurso da Amazon (ARN) na coluna EVENT_ATTRIBUTION_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 ...... .....

Publicar métricas para dados em massa no Amazon S3 (console)

Para publicar métricas em um bucket do Amazon S3 com o console Amazon Personalize, crie um trabalho de importação do conjunto de dados e escolha Publicar métricas para esse trabalho de importação em Publicar métricas de eventos no S3.

Para step-by-step obter instruções, consulteCriar um trabalho de importação do conjunto de dados (console).

Publicar métricas para dados em lote no Amazon S3 (AWS CLI)

Para publicar métricas em um bucket do Amazon S3 com o AWS Command Line Interface (AWS CLI), use o código a seguir para criar um trabalho de importação de conjunto de dados e fornecer a sinalização. publishAttributionMetricsToS3 Se você não quiser publicar métricas para um trabalho em particular, omita a sinalização. Para obter informações sobre cada parâmetro, consulte 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

Publicar métricas para dados em lote no Amazon S3 (AWS SDKs)

Para publicar métricas em um bucket do Amazon S3 com o AWS SDKs, crie um trabalho de importação de conjunto de dados e publishAttributionMetricsToS3 defina-o como verdadeiro. Para obter informações sobre cada parâmetro, consulte 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();