Publicar e visualizar resultados - 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 e visualizar resultados

O Amazon Personalize envia os relatórios de cada métrica para o CloudWatch Amazon S3:

  • Para PutEvents dados e dados incrementais em massa, o Amazon Personalize envia automaticamente métricas para. CloudWatch Para obter informações sobre como visualizar e identificar relatórios em CloudWatch, consulteVisualizando métricas em CloudWatch.

  • 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 obter informações sobre como publicar relatórios de métricas no Amazon S3, consulte Publicar métricas no Amazon S3.

Visualizando métricas em CloudWatch

Importante

Depois de criar uma atribuição métrica e registrar eventos ou importar dados incrementais em massa, você incorrerá em algum custo mensal CloudWatch por métrica. Para obter informações sobre CloudWatch preços, consulte a página de CloudWatch preços da Amazon. Para parar de enviar métricas para CloudWatch, exclua a atribuição da métrica.

Para visualizar métricas CloudWatch, conclua o procedimento encontrado em Representar graficamente uma métrica. O período mínimo que você pode representar graficamente é de 15 minutos. Para o termo de pesquisa, especifique o nome que você deu à métrica ao criar a atribuição da métrica.

Veja a seguir um exemplo de como uma métrica pode aparecer em CloudWatch. A métrica mostra a taxa de cliques a cada 15 minutos para dois recomendadores diferentes.

Mostra um gráfico da taxa de cliques a cada 15 minutos para dois recomendadores diferentes.

Publicar métricas no Amazon S3

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, consulteImportar registros em massa (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://bucketname/filename \ --role-arn roleArn \ --import-mode INCREMENTAL \ --publish-attribution-metrics-to-s3

Publicação de métricas para dados em massa no Amazon S3 (AWS SDKs)

Para publicar métricas em um bucket do Amazon S3 com os AWS SDKs, crie um trabalho de importação de conjunto de dados e defina-o como verdadeiro. publishAttributionMetricsToS3 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://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://<name of your S3 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();