Importación de datos masivos a Amazon Personalize con un trabajo de importación de conjuntos de datos - 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.

Importación de datos masivos a Amazon Personalize con un trabajo de importación de conjuntos de datos

Una vez que haya formateado los datos de entrada (consultePreparación de los datos de entrenamiento para Amazon Personalize) y los haya completadoCrear un esquema y un conjunto de datos, estará listo para importar los datos masivos con un trabajo de importación de conjuntos de datos. Un trabajo de importación de conjuntos de datos es una herramienta de importación masiva que rellena un conjunto de datos con datos de Amazon S3.

Para importar datos de Amazon S3, sus CSV archivos deben estar en un bucket de Amazon S3 y debe conceder permiso a Amazon Personalize para acceder a sus recursos de Amazon S3:

Puede crear un trabajo de importación de conjuntos de datos mediante la consola Amazon Personalize, AWS Command Line Interface (AWS CLI), o AWS SDKs. Si anteriormente creó un trabajo de importación de conjuntos de datos para un conjunto de datos, puede usar un nuevo trabajo de importación de conjuntos de datos para agregar o reemplazar los datos masivos existentes. Para obtener más información, consulte Actualización de datos en conjuntos de datos después del entrenamiento.

Después de importar los datos, estará listo para crear recomendaciones de dominios (para grupos de conjuntos de datos de dominio) o recursos personalizados (para grupos de conjuntos de datos personalizados) para entrenar un modelo a partir de sus datos. Usará estos recursos para generar recomendaciones. Para obtener más información, consulte Recomendadores de dominios en Amazon Personalize o Recursos personalizados para la formación e implementación de modelos de Amazon Personalize.

Modos de importación

Si ya ha creado un trabajo de importación para el conjunto de datos, puede configurar la forma en que Amazon Personalize añade los nuevos registros. Para ello, debe especificar un modo de importación para el trabajo de importación del conjunto de datos. Si no ha importado registros masivos, el campo Modo de importación no está disponible en la consola y solo puede especificarlo FULL en la CreateDatasetImportJob API operación. El valor predeterminado es un reemplazo completo.

  • Para sobrescribir todos los datos masivos existentes en su conjunto de datos, elija Reemplazar datos existentes en la consola Amazon Personalize o especifíquelo FULL en la CreateDatasetImportJob API operación. Esto no reemplaza los datos que haya importado individualmente, incluidos los eventos registrados en tiempo real.

  • Para añadir los registros a los datos existentes en su conjunto de datos, elija Añadir a los datos existentes o especifíquelos INCREMENTAL en la CreateDatasetImportJob API operación. Amazon Personalize reemplaza cualquier registro con el mismo identificador por el nuevo.

    nota

    Para anexar datos a un conjunto de datos de interacciones de elementos o de interacciones de acción con un trabajo de importación de conjuntos de datos, debe tener al menos 1000 registros de interacciones de elementos o de interacciones de acción nuevos.

Crear un trabajo de importación de conjuntos de datos (consola)

importante

De forma predeterminada, un trabajo de importación de conjuntos de datos reemplaza cualquier dato existente en el conjunto de datos que haya importado de manera masiva. Si ya ha importado datos masivos, puede agregar datos cambiando el modo de importación del trabajo.

Para importar registros masivos a un conjunto de datos con la consola Amazon Personalize, cree un trabajo de importación de conjuntos de datos con un nombre, la función de IAM servicio y la ubicación de los datos.

Si acaba de crear su conjunto de datos en Crear un esquema y un conjunto de datos, vaya al paso 5.

Para importar registros masivos (consola)
  1. Abre la consola Amazon Personalize en https://console.aws.amazon.com/personalize/casa e inicia sesión en tu cuenta.

  2. En la página Grupos de conjuntos de datos, elija su grupo de conjuntos de datos. Aparece la Información general del grupo de conjuntos de datos.

  3. En el panel de navegación, elija Conjuntos de datos y seleccione el conjunto de datos en el que quiere importar datos masivos.

  4. En Trabajos de importación de conjuntos de datos, seleccione Crear trabajo de importación de conjuntos de datos.

  5. Si este es su primer trabajo de importación de un conjunto de datos, en Fuente de importación de datos, elija Importar datos de S3.

  6. En Nombre del trabajo de importación del conjunto de datos, especifique un nombre para su trabajo de importación.

  7. Si ya ha importado datos masivos, en el modo de importación, elija cómo actualizar el conjunto de datos. Elija Reemplazar datos existentes o Agregar a datos existentes. Esta opción no aparece si es tu primer trabajo para el conjunto de datos. Para obtener más información, consulte Actualización de datos en conjuntos de datos después del entrenamiento.

  8. En Fuente de importación de datos, en Ubicación de datos, especifique dónde se almacena el archivo de datos en Amazon S3. Utilice la siguiente sintaxis:

    s3:/amzn-s3-demo-bucket/<folder path>/<CSV filename>

    Si sus CSV archivos se encuentran en una carpeta de su bucket de Amazon S3 y desea cargar varios CSV archivos a un conjunto de datos con un solo trabajo de importación de conjuntos de datos, puede especificar la ruta a la carpeta. Amazon Personalize solo utiliza los archivos del primer nivel de su carpeta, no utiliza los datos de ninguna subcarpeta. Use la siguiente sintaxis con una / después del nombre de la carpeta:

    s3:/amzn-s3-demo-bucket/<folder path>/

  9. En IAMel rol, elija crear un nuevo rol o usar uno existente. Si ha completado los requisitos, elija Usar un rol de servicio existente y especifique el rol que creó en Creación de un IAM rol para Amazon Personalize.

  10. Si ha creado una atribución de métricas y desea publicar las métricas relacionadas con este trabajo en Amazon S3, en Publicar métricas de eventos en S3, elija Publicar métricas para este trabajo de importación.

    Si no ha creado una y desea publicar métricas para este trabajo, elija Crear atribución de métricas para crear una nueva en una pestaña diferente. Después de crear la atribución métrica, puede volver a esta pantalla y terminar de crear el trabajo de importación.

    Para obtener más información sobre atribuciones de métricas, consulte Midiendo el impacto de las recomendaciones de Amazon Personalize.

  11. Para Etiquetas, si lo desea, añada cualquier etiqueta. Para obtener más información acerca del etiquetado de recursos de Amazon Personalize, consulte Etiquetado de recursos de Amazon Personalize.

  12. Elija Start import (Iniciar importación). Se iniciará el trabajo de importación de los datos y aparecerá la página Información general del panel. La importación del conjunto de datos se completa cuando el estado se muestra comoACTIVE. Tras importar los datos a un conjunto de datos de Amazon Personalize, puede analizarlos, exportarlos a un bucket de Amazon S3, actualizarlos o eliminarlos eliminando el conjunto de datos.

    Después de importar los datos, estará listo para crear recomendaciones de dominios (para grupos de conjuntos de datos de dominio) o recursos personalizados (para grupos de conjuntos de datos personalizados) para entrenar un modelo a partir de sus datos. Usará estos recursos para generar recomendaciones. Para obtener más información, consulte Recomendadores de dominios en Amazon Personalize o Recursos personalizados para la formación e implementación de modelos de Amazon Personalize.

Crear un trabajo de importación de conjuntos de datos (AWS CLI)

importante

De forma predeterminada, un trabajo de importación de conjuntos de datos reemplaza cualquier dato existente en el conjunto de datos que haya importado de manera masiva. Si ya importó datos masivos, puede agregar datos cambiando el modo de importación del trabajo.

Para importar registros masivos mediante el AWS CLI, cree un trabajo de importación de conjuntos de datos mediante el CreateDatasetImportJob comando. Si anteriormente creó un trabajo de importación de conjuntos de datos para un conjunto de datos, puede usar el parámetro de modo de importación para especificar cómo agregar los nuevos datos. Para obtener más información sobre la actualización de los datos masivos existentes, consulte Actualización de datos en conjuntos de datos después del entrenamiento.

Importar registros masivos (AWS CLI)
  1. Ejecute el siguiente comando para crear un trabajo de importación de conjunto de datos. Proporcione el nombre del recurso de Amazon (ARN) para su conjunto de datos y especifique la ruta al bucket de Amazon S3 en el que almacenó los datos de entrenamiento. Use la siguiente sintaxis para la ruta:

    s3:/amzn-s3-demo-bucket/<folder path>/<CSV filename>

    Si sus CSV archivos se encuentran en una carpeta de su bucket de Amazon S3 y desea cargar varios CSV archivos a un conjunto de datos con un solo trabajo de importación de conjuntos de datos, puede especificar la ruta a la carpeta. Amazon Personalize solo utiliza los archivos del primer nivel de su carpeta, no utiliza los datos de ninguna subcarpeta. Use la siguiente sintaxis con una / después del nombre de la carpeta:

    s3:/amzn-s3-demo-bucket/<folder path>/

    Proporcione la AWS Identity and Access Management (IAM) rol Amazon Resource Name (ARN) en el que creasteCreación de un IAM rol para Amazon Personalize. El import-mode predeterminado es FULL. Para obtener más información, consulte Actualización de datos en conjuntos de datos después del entrenamiento. Para obtener más información acerca de la operación, 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 FULL

    ARNSe muestra el trabajo de importación del conjunto de datos, como se muestra en el siguiente ejemplo.

    { "datasetImportJobArn": "arn:aws:personalize:us-west-2:acct-id:dataset-import-job/DatasetImportJobName" }
  2. Compruebe el estado utilizando el comando describe-dataset-import-job. Proporcione el trabajo de importación del conjunto de datos ARN que se devolvió en el paso anterior. Para obtener más información acerca de la operación, consulte DescribeDatasetImportJob.

    aws personalize describe-dataset-import-job \ --dataset-import-job-arn dataset import job arn

    Se muestran las propiedades del trabajo de importación del conjunto de datos y su estado. Inicialmente, se status muestra como CREATEPENDING.

    { "datasetImportJob": { "jobName": "Dataset Import job name", "datasetImportJobArn": "arn:aws:personalize:us-west-2:acct-id:dataset-import-job/DatasetImportJobArn", "datasetArn": "arn:aws:personalize:us-west-2:acct-id:dataset/DatasetGroupName/INTERACTIONS", "dataSource": { "dataLocation": "s3://amzn-s3-demo-bucket/ratings.csv" }, "importMode": "FULL", "roleArn": "role-arn", "status": "CREATE PENDING", "creationDateTime": 1542392161.837, "lastUpdatedDateTime": 1542393013.377 } }

    La importación del conjunto de datos se completa cuando el estado se muestra comoACTIVE. Tras importar los datos a un conjunto de datos de Amazon Personalize, puede analizarlos, exportarlos a un bucket de Amazon S3, actualizarlos o eliminarlos eliminando el conjunto de datos.

    Después de importar los datos, estará listo para crear recomendaciones de dominios (para grupos de conjuntos de datos de dominio) o recursos personalizados (para grupos de conjuntos de datos personalizados) para entrenar un modelo a partir de sus datos. Usará estos recursos para generar recomendaciones. Para obtener más información, consulte Recomendadores de dominios en Amazon Personalize o Recursos personalizados para la formación e implementación de modelos de Amazon Personalize.

Crear un trabajo de importación de conjuntos de datos (AWS SDKs)

importante

De forma predeterminada, un trabajo de importación de conjuntos de datos reemplaza cualquier dato existente en el conjunto de datos que haya importado de manera masiva. Si ya importó datos masivos, puede agregar datos cambiando el modo de importación del trabajo.

Para importar datos, cree un trabajo de importación de conjuntos de datos con la operación CreateDatasetImportJob. En el siguiente código se muestra cómo crear un trabajo de importación de conjuntos de datos.

Indique el nombre del trabajo, establezca datasetArn el nombre del recurso de Amazon (ARN) de su conjunto de datos y establezca la dataLocation ruta a su bucket de Amazon S3 donde almacenó los datos de entrenamiento. Use la siguiente sintaxis para la ruta:

s3:/amzn-s3-demo-bucket/<folder path>/<CSV filename>.csv

Si sus CSV archivos se encuentran en una carpeta de su bucket de Amazon S3 y desea cargar varios CSV archivos a un conjunto de datos con un solo trabajo de importación de conjuntos de datos, puede especificar la ruta a la carpeta. Amazon Personalize solo utiliza los archivos del primer nivel de su carpeta, no utiliza los datos de ninguna subcarpeta. Use la siguiente sintaxis con una / después del nombre de la carpeta:

s3:/amzn-s3-demo-bucket/<folder path>/

Para elroleArn, especifique el AWS Identity and Access Management (IAM) rol que otorga a Amazon Personalize permisos para acceder a su bucket de S3. Consulte Creación de un IAM rol para Amazon Personalize. El importMode predeterminado es FULL. Esto reemplaza todos los datos masivos del conjunto de datos. Para agregar datos, configúrelos INCREMENTAL en. Para obtener más información sobre la actualización de los datos masivos existentes, consulte Actualización de datos en conjuntos de datos después del entrenamiento.

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/filename.csv'}, roleArn = 'role_arn', importMode = 'FULL' ) 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) { 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) .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 */ }; 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();

La respuesta de la operación DescribeDatasetImportJob incluye el estado de la operación.

Debe esperar a que el estado cambie a para ACTIVE poder utilizar los datos para entrenar un modelo.

La importación del conjunto de datos se completa cuando el estado se muestra comoACTIVE. Tras importar los datos a un conjunto de datos de Amazon Personalize, puede analizarlos, exportarlos a un bucket de Amazon S3, actualizarlos o eliminarlos eliminando el conjunto de datos.

Después de importar los datos, estará listo para crear recomendaciones de dominios (para grupos de conjuntos de datos de dominio) o recursos personalizados (para grupos de conjuntos de datos personalizados) para entrenar un modelo a partir de sus datos. Usará estos recursos para generar recomendaciones. Para obtener más información, consulte Recomendadores de dominios en Amazon Personalize o Recursos personalizados para la formación e implementación de modelos de Amazon Personalize.