

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 en Amazon Personalize con un trabajo de importación de conjuntos de datos
<a name="bulk-data-import-step"></a>

Después de formatear los datos de entrada (consulte [Preparación de los datos de entrenamiento para Amazon Personalize](preparing-training-data.md)) y completar [Creación de un esquema y un conjunto de datos](data-prep-creating-datasets.md), podrá 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, los archivos CSV deben estar en un bucket de Amazon S3 y debe conceder permiso a Amazon Personalize para acceder a los recursos de Amazon S3: 
+ Para obtener información sobre la carga de archivos en Amazon S3, consulte [Carga de archivos y carpetas con la función arrastrar y soltar](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/upload-objects.html) en la Guía del usuario de Amazon Simple Storage Service.
+ Para obtener información sobre la concesión de acceso a Amazon Personalize a los archivos en Amazon S3, consulte [Concesión de acceso a Amazon Personalize para los recursos de Amazon S3](granting-personalize-s3-access.md).

   Si utilizas AWS Key Management Service (AWS KMS) para el cifrado, debes conceder permiso a Amazon Personalize y a tu rol de servicio Amazon Personalize IAM para usar tu clave. Para obtener más información, consulte [Otorgar permiso a Amazon Personalize para usar tu AWS KMS clave](granting-personalize-key-access.md).

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 ha creado un trabajo de importación de conjuntos de datos para un conjunto de datos, puede usar un nuevo trabajo de ese tipo 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](updating-datasets.md). 

Si importa un artículo, usuario o acción con el mismo ID que otro registro que ya se encuentra en su conjunto de datos, Amazon Personalize lo sustituye por el nuevo registro. Si registra dos eventos de interacción con artículos o de interacción de acción con la misma marca de tiempo e idénticas propiedades, Amazon Personalize solo conserva uno de ellos.

 Después de importar los datos, podrá crear recomendadores 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 los datos. Usará estos recursos para generar recomendaciones. Para obtener más información, consulte [Recomendadores de dominios en Amazon Personalize](creating-recommenders.md) o [Recursos personalizados para el entrenamiento y la implementación de modelos de Amazon Personalize](create-custom-resources.md). 



**Topics**
+ [

## Modos de importación
](#bulk-import-modes)
+ [

## Creación de un trabajo de exportación de conjuntos de datos (consola)
](#bulk-data-import-console)
+ [

## Creación de un trabajo de importación de conjuntos de datos (AWS CLI)
](#bulk-data-import-cli)
+ [

## Creación de un trabajo de importación de conjuntos de datos (AWS SDKs)
](#python-import-ex)

## Modos de importación
<a name="bulk-import-modes"></a>

Si ya ha creado un trabajo de importación para el conjunto de datos, puede configurar la forma en que Amazon Personalize agrega los nuevos registros. Para ello, especifique un modo de importación para el trabajo de importación de conjuntos de datos. Si no ha importado registros masivos, el campo **Modo de importación** no está disponible en la consola y solo puede especificar `FULL` en la operación de la API `CreateDatasetImportJob`. El valor predeterminado es un reemplazo completo.
+ Para sobrescribir todos los datos masivos existentes en su conjunto de datos, elija **Reemplazar los datos existentes** en la consola de Amazon Personalize o especifique `FULL` en la operación de la API [CreateDatasetImportJob](API_CreateDatasetImportJob.md). Esto no reemplaza los datos que haya importado individualmente, incluidos los eventos registrados en tiempo real.
+ Para anexar los registros a los datos existentes en su conjunto de datos, elija **Agregar a los datos existentes** o especifique `INCREMENTAL` en la operación de la API `CreateDatasetImportJob`. 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.

## Creación de un trabajo de exportación de conjuntos de datos (consola)
<a name="bulk-data-import-console"></a>

**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 adjuntar datos si cambia el [modo de importación](#bulk-import-modes) del trabajo.

 Para importar registros masivos en un conjunto de datos con la consola de Amazon Personalize, cree un trabajo de importación de conjuntos de datos con un nombre, el rol de servicio de IAM y la ubicación de sus datos.

Si acaba de crear su conjunto de datos en [Creación de un esquema y un conjunto de datos](data-prep-creating-datasets.md), vaya al paso 5.

**Para importar registros masivos (consola)**

1. Abre la consola Amazon Personalize en [https://console.aws.amazon.com/personalize/casa](https://console.aws.amazon.com/personalize/home) e inicia sesión en tu cuenta.

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

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

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

1. Si es el primer trabajo de importación de conjuntos de datos, en **Origen de importación de datos**, elija **Importar datos de S3**.

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

1. Si ya ha importado datos masivos, en **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 el 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](updating-datasets.md).

1. En **Origen de importación de datos**, en **Ubicación de datos**, especifique dónde está almacenado el archivo de datos en Amazon S3. Utilice la siguiente sintaxis:

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

   Si sus archivos CSV se encuentran en una carpeta de su bucket de Amazon S3 y desea subir varios archivos CSV 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>/**

1. En **Rol de IAM**, elija crear un rol nuevo 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 rol de IAM para Amazon Personalize](set-up-required-permissions.md#set-up-create-role-with-permissions). 

1. 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 [Medición del impacto de las recomendaciones de Amazon Personalize](measuring-recommendation-impact.md).

1. 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](tagging-resources.md).

1. 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 finaliza cuando el estado es ACTIVO. Tras importar los datos a un conjunto de datos de Amazon Personalize, puede [analizarlos](analyzing-data.md), [exportarlos a un bucket de Amazon S3](export-data.md), [actualizarlos](updating-datasets.md) o [eliminarlos](delete-dataset.md) suprimiendo el conjunto de datos. 

    Después de importar los datos, podrá crear recomendadores 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 los datos. Usará estos recursos para generar recomendaciones. Para obtener más información, consulte [Recomendadores de dominios en Amazon Personalize](creating-recommenders.md) o [Recursos personalizados para el entrenamiento y la implementación de modelos de Amazon Personalize](create-custom-resources.md). 

## Creación de un trabajo de importación de conjuntos de datos (AWS CLI)
<a name="bulk-data-import-cli"></a>

**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 adjuntar datos si cambia el [modo de importación](#bulk-import-modes) del trabajo.

 Para importar registros masivos mediante el AWS CLI, cree un trabajo de importación de conjuntos de datos mediante el [CreateDatasetImportJob](API_CreateDatasetImportJob.md) 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](updating-datasets.md).

**Importar registros masivos (AWS CLI)**

1. Ejecute el siguiente comando para crear un trabajo de importación de conjunto de datos. Proporcione el Nombre de recurso de Amazon (ARN) del conjunto de datos y especifique la ruta al 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>**

   Si sus archivos CSV se encuentran en un bucket de Amazon S3 y desea subir varios archivos CSV 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>/**

   Indique el rol AWS Identity and Access Management (IAM) Amazon Resource Name (ARN) en el que creó. [Creación de un rol de IAM para Amazon Personalize](set-up-required-permissions.md#set-up-create-role-with-permissions) 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](updating-datasets.md). Para obtener más información acerca de la operación, consulte [CreateDatasetImportJob](API_CreateDatasetImportJob.md).

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

   Se muestra el ARN del 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"
   }
   ```

1. Compruebe el estado utilizando el comando `describe-dataset-import-job`. Proporcione el ARN del trabajo de importación de conjunto de datos que obtuvo en el paso anterior. Para obtener más información acerca de la operación, consulte [DescribeDatasetImportJob](API_DescribeDatasetImportJob.md).

   ```
   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. En un principio, el valor de `status` es CREACIÓN PENDIENTE.

   ```
   {
     "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 finaliza cuando el estado es ACTIVO. Tras importar los datos a un conjunto de datos de Amazon Personalize, puede [analizarlos](analyzing-data.md), [exportarlos a un bucket de Amazon S3](export-data.md), [actualizarlos](updating-datasets.md) o [eliminarlos](delete-dataset.md) suprimiendo el conjunto de datos. 

    Después de importar los datos, podrá crear recomendadores 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 los datos. Usará estos recursos para generar recomendaciones. Para obtener más información, consulte [Recomendadores de dominios en Amazon Personalize](creating-recommenders.md) o [Recursos personalizados para el entrenamiento y la implementación de modelos de Amazon Personalize](create-custom-resources.md). 

## Creación de un trabajo de importación de conjuntos de datos (AWS SDKs)
<a name="python-import-ex"></a>

**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 adjuntar datos si cambia el [modo de importación](#bulk-import-modes) del trabajo.

Para importar datos, cree un trabajo de importación de conjuntos de datos con la operación [CreateDatasetImportJob](API_CreateDatasetImportJob.md). 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 el Nombre de recurso de Amazon (ARN) `datasetArn` de su conjunto de datos y establezca la `dataLocation` a la ruta para 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 archivos CSV se encuentran en un bucket de Amazon S3 y desea subir varios archivos CSV 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>/**

En el caso de`roleArn`, especifique el rol AWS Identity and Access Management (IAM) que otorga a Amazon Personalize los permisos para acceder a su bucket de S3. Consulte [Creación de un rol de IAM para Amazon Personalize](set-up-required-permissions.md#set-up-create-role-with-permissions). El `importMode` predeterminado es `FULL`. Esto reemplaza todos los datos masivos del conjunto de datos. Para adjuntar datos, establézcalos a `INCREMENTAL`. 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](updating-datasets.md). 

------
#### [ 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](API_DescribeDatasetImportJob.md) incluye el estado de la operación.

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

La importación del conjunto de datos finaliza cuando el estado es ACTIVO. Tras importar los datos a un conjunto de datos de Amazon Personalize, puede [analizarlos](analyzing-data.md), [exportarlos a un bucket de Amazon S3](export-data.md), [actualizarlos](updating-datasets.md) o [eliminarlos](delete-dataset.md) suprimiendo el conjunto de datos. 

 Después de importar los datos, podrá crear recomendadores 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 los datos. Usará estos recursos para generar recomendaciones. Para obtener más información, consulte [Recomendadores de dominios en Amazon Personalize](creating-recommenders.md) o [Recursos personalizados para el entrenamiento y la implementación de modelos de Amazon Personalize](create-custom-resources.md). 