Publicación y visualización de resultados - Amazon Personalize

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Publicación y visualización de resultados

Amazon Personalize envía los informes de cada métrica a CloudWatch Amazon S3:

  • Para PutEvents los datos y los datos incrementales masivos, Amazon Personalize envía automáticamente las métricas a CloudWatch. Para obtener información sobre cómo ver e identificar los informes en CloudWatch, consulteVisualización de las métricas en CloudWatch.

  • Para todos los datos masivos, si proporciona un bucket de Amazon S3 al crear su atribución de métricas, puede optar por publicar informes de métricas en su bucket de Amazon S3 cada vez que cree un trabajo de importación de conjuntos de datos para los datos de interacciones.

    Para obtener información sobre la publicación de informes de métricas en Amazon S3, consulte Publicación de métricas en Amazon S3.

Visualización de las métricas en CloudWatch

importante

Tras crear una atribución de métricas y registrar los eventos o importar datos incrementales de forma masiva, incurrirás en un CloudWatch coste mensual por métrica. Para obtener información sobre CloudWatch los precios, consulta la página de CloudWatch precios de Amazon. Para dejar de enviar métricas a CloudWatch, elimina la atribución de métricas.

Para ver las métricas CloudWatch, complete el procedimiento que se encuentra en Graficar una métrica. El Período mínimo que puede representar en una gráfica es de 15 minutos. Para el término de búsqueda, especifique el nombre que le dio a la métrica cuando creó la atribución de métricas.

A continuación se muestra un ejemplo de cómo puede aparecer una métrica en CloudWatch. La métrica muestra la tasa de clics por cada 15 minutos para dos generadores de recomendaciones diferentes.

Muestra un gráfico de la tasa de clics por cada 15 minutos para dos recomendantes diferentes.

Publicación de métricas en Amazon S3

Para publicar métricas en Amazon S3, debe proporcionar una ruta a su bucket de Amazon S3 en la atribución de métricas. A continuación, publique los informes en Amazon S3 cuando cree un trabajo de importación de conjuntos de datos.

Cuando se complete el trabajo, podrá encontrar las métricas en su bucket de Amazon S3. Cada vez que publique métricas, Amazon Personalize crea un archivo nuevo en su bucket de Amazon S3. El nombre del archivo incluye el método de importación y la fecha de la siguiente manera:

AggregatedAttributionMetrics - ImportMethod - Timestamp.csv

A continuación se muestra un ejemplo de cómo pueden aparecer las primeras filas de un archivo CSV de informe de métricas. La métrica de este ejemplo indica el total de clics de dos generadores de recomendaciones diferentes en intervalos de 15 minutos. Cada generador de recomendaciones se identifica por su nombre de recurso de Amazon (ARN) en la columna 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 ...... .....

Publicación de métricas para datos masivos en Amazon S3 (consola)

Para publicar métricas en un bucket de Amazon S3 con la consola de Amazon Personalize, cree un trabajo de importación de conjuntos de datos y elija Publicar métricas para este trabajo de importación en Publicar métricas de eventos en S3.

Para obtener step-by-step instrucciones, consulte. Importar registros masivos (consola)

Publicación de métricas para datos masivos en Amazon S3 (AWS CLI)

Para publicar métricas en un bucket de Amazon S3 con AWS Command Line Interface (AWS CLI), utilice el siguiente código para crear un trabajo de importación de conjuntos de datos y proporcionar la publishAttributionMetricsToS3 marca. Si no desea publicar métricas para un trabajo en concreto, omita la marca. Para obtener información acerca de 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

Publicación de métricas de datos masivos en Amazon S3 (AWS SDK)

Para publicar métricas en un bucket de Amazon S3 con los AWS SDK, cree un trabajo de importación de conjuntos de datos y establézcalo en publishAttributionMetricsToS3 true. Para obtener información acerca de 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();