

Para obtener capacidades similares a las de Amazon Timestream, considere Amazon Timestream LiveAnalytics para InfluxDB. Ofrece una ingesta de datos simplificada y tiempos de respuesta a las consultas en milisegundos de un solo dígito para realizar análisis en tiempo real. Obtenga más información [aquí](https://docs.aws.amazon.com//timestream/latest/developerguide/timestream-for-influxdb.html).

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.

# Uso de la carga por lotes en Timestream para LiveAnalytics
<a name="batch-load"></a>

Con la *carga por lotes* para Amazon Timestream, puede LiveAnalytics incorporar archivos CSV almacenados en Amazon S3 a Timestream por lotes. Con esta nueva funcionalidad, puede tener sus datos en Timestream LiveAnalytics sin tener que depender de otras herramientas ni escribir código personalizado. Puede usar la carga por lotes para rellenar los datos con tiempos de espera flexibles, como aquellos que no se necesitan inmediatamente para consultas o análisis. 

Puede crear tareas de carga por lotes utilizando las Consola de administración de AWS AWS CLI, las y las. AWS SDKs Para obtener más información, consulte [Uso de la carga por lotes con la consola](batch-load-using-console.md), [Uso de la carga por lotes con AWS CLI](batch-load-using-cli.md) y [Uso de la carga por lotes con el AWS SDKs](batch-load-using-sdk.md).

Además de la carga por lotes, puede escribir varios registros al mismo tiempo con la operación de la WriteRecords API. Para obtener orientación sobre qué URL debe usar, consulte [Elegir entre la operación de la WriteRecords API y la carga por lotes](writes.writes-or-batch-load.md).

**Topics**
+ [Conceptos de carga por lotes en Timestream](batch-load-concepts.md)
+ [Requisitos previos de carga de lotes](batch-load-prerequisites.md)
+ [Prácticas recomendadas de carga por lotes](batch-load-best-practices.md)
+ [Preparación de un archivo de datos de carga por lotes](batch-load-preparing-data-file.md)
+ [Mapeos de modelos de datos para carga por lotes](batch-load-data-model-mappings.md)
+ [Uso de la carga por lotes con la consola](batch-load-using-console.md)
+ [Uso de la carga por lotes con AWS CLI](batch-load-using-cli.md)
+ [Uso de la carga por lotes con el AWS SDKs](batch-load-using-sdk.md)
+ [Uso de informes de errores de carga por lotes](batch-load-using-error-reports.md)

# Conceptos de carga por lotes en Timestream
<a name="batch-load-concepts"></a>

Revise los siguientes conceptos para comprender mejor la funcionalidad de carga por lotes. 

**Tarea de carga por lotes**: la tarea que define los datos de origen y el destino en Amazon Timestream. Al crear la tarea de carga por lotes, debe especificar una configuración adicional, como el modelo de datos. Puede crear tareas de carga por lotes a través de Consola de administración de AWS AWS CLI, el y el AWS SDKs. 

**Destino de importación**: la base de datos y la tabla de destino en Timestream. Para obtener información sobre la creación de bases de datos y tablas, consulte [Creación de una base de datos de](console_timestream.md#console_timestream.db.using-console) y [Creación de una tabla](console_timestream.md#console_timestream.table.using-console).

**Origen de datos**: el archivo CSV de origen que se almacena en un bucket de S3. Para obtener más información acerca de cómo preparar los archivos de datos, consulte [Preparación de un archivo de datos de carga por lotes](batch-load-preparing-data-file.md). Para obtener más información acerca de los precios de S3, consulte [Precios de Amazon S3](https://aws.amazon.com/s3/pricing/).

**Informe de errores de carga por lotes**: informe que almacena información sobre los errores de una tarea de carga por lotes. La ubicación de S3 para los informes de error de la carga por lotes se define como parte de una tarea de carga por lotes. Para obtener información acerca de la información presente en los informes, consulte [Uso de informes de errores de carga por lotes](batch-load-using-error-reports.md).

**Mapeo del modelo de datos**: un mapeo de carga por lotes para el tiempo, las dimensiones y las medidas desde una fuente de datos en una ubicación de S3 hasta un flujo temporal de destino para LiveAnalytics una tabla. Para obtener más información, consulte [Mapeos de modelos de datos para carga por lotes](batch-load-data-model-mappings.md).

# Requisitos previos de carga de lotes
<a name="batch-load-prerequisites"></a>

Esta es una lista de requisitos previos para usar la carga por lotes. Para ver las prácticas recomendadas, consulte [Prácticas recomendadas de carga por lotes](batch-load-best-practices.md).
+ Los datos de origen de la carga por lotes se almacenan en Amazon S3 en formato CSV con encabezados.
+ Para cada bucket de origen de Amazon S3, debe contar con los siguientes permisos en una política adjunta:

  ```
  "s3:GetObject",
  "s3:GetBucketAcl"
  "s3:ListBucket"
  ```

  Igualmente, para cada bucket de salida de Amazon S3 en los que se escriben informes, debe contar con los siguientes permisos en una política adjunta:

  ```
  "s3:PutObject",
  "s3:GetBucketAcl"
  ```

  Por ejemplo:

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Action": [
                  "s3:GetObject",
                  "s3:GetBucketAcl",
                  "s3:ListBucket"
              ],
              "Resource": [
                  "arn:aws:s3:::amzn-s3-demo-source-bucket1\u201d",
                  "arn:aws:s3:::amzn-s3-demo-source-bucket2\u201d"
              ],
              "Effect": "Allow"
          },
          {
              "Action": [
                  "s3:PutObject",
                  "s3:GetBucketAcl"
              ],
              "Resource": [
                  "arn:aws:s3:::amzn-s3-demo-destination-bucket\u201d"
              ],
              "Effect": "Allow"
          }
      ]
  }
  ```

------
+ Timestream for LiveAnalytics analiza el CSV asignando la información que se proporciona en el modelo de datos a los encabezados del CSV. Los datos deben tener una columna que represente la marca de tiempo, al menos una columna de dimensiones y al menos una columna de medida.
+ Los depósitos de S3 utilizados con la carga por lotes deben estar en la misma región y proceder de la misma cuenta que la LiveAnalytics tabla Timestream for que se utiliza en la carga por lotes.
+ La columna `timestamp` debe ser un tipo de datos largo que represente el tiempo transcurrido desde la época de Unix. Por ejemplo, la marca de tiempo `2021-03-25T08:45:21Z` se representaría como `1616661921`. Timestream admite segundos, milisegundos, microsegundos y nanosegundos para la precisión de la marca de tiempo. Al utilizar el lenguaje de consulta, puede convertir entre formatos con funciones como `to_unixtime`. Para obtener más información, consulte [Funciones de fecha y hora](date-time-functions.md).
+ Timestream admite el tipo de datos de cadena para los valores de dimensión. Admite los tipos de datos largos, dobles, de cadena y booleanos para las columnas de medida.

Para conocer los límites y las cuotas de carga de lotes, consulte [Carga por lotes](ts-limits.md#limits.batch-load).

# Prácticas recomendadas de carga por lotes
<a name="batch-load-best-practices"></a>

La carga por lotes funciona mejor (alto rendimiento) cuando se cumplen las siguientes condiciones y recomendaciones:

1. Los archivos CSV que se envían para su ingesta son pequeños, específicamente con un tamaño de archivo de 100 MB a 1 GB, para mejorar el paralelismo y la velocidad de ingesta.

1. Evite introducir datos simultáneamente en la misma tabla (por ejemplo, mediante la operación de la WriteRecords API o una consulta programada) cuando la carga del lote esté en curso. Esto podría provocar limitaciones y la tarea de carga por lotes fallaría.

1. No añada, modifique ni elimine archivos del bucket de S3 que se usa en la carga por lotes mientras esta tarea esté en ejecución.

1. No elimine ni revoque los permisos de las tablas o el origen, ni denuncie los buckets de S3 que tengan tareas de carga por lotes programadas o en curso.

1. Cuando ingiera datos con un conjunto de valores de dimensión de alta cardinalidad, siga las instrucciones que se indican en. [Recomendaciones para la partición de registros de múltiples medidas](data-modeling.md#data-modeling-multi-measure-partitioning)

1. Asegúrese de comprobar la exactitud de los datos mediante el envío de un archivo pequeño. Se le cobrará por cualquier dato que se envíe a la carga del lote, independientemente de si es correcto o no. Para obtener más información sobre los precios, consulte [Precios de Amazon Timestream](https://aws.amazon.com/timestream/pricing/).

1. No reanude una tarea de carga por lotes a menos que las `ActiveMagneticStorePartitions` sean inferiores a 250. Es posible que el trabajo se limite y falle. El envío de varios trabajos al mismo tiempo para la misma base de datos debería reducir el número.

A continuación, se indican las prácticas recomendadas para la consola:

1. Use el [generador](batch-load-using-console.md#batch-load-using-visual-builder) solo para lograr un modelado de datos más simple que use solo un nombre de medida para los registros de medidas múltiples.

1. Para un modelado de datos más complejo, use JSON. Por ejemplo, use JSON cuando use varios nombres de medidas al emplear registros de medidas múltiples. 

Para obtener información adicional sobre las prácticas LiveAnalytics recomendadas, consulte. [Prácticas recomendadas](best-practices.md)

# Preparación de un archivo de datos de carga por lotes
<a name="batch-load-preparing-data-file"></a>

Un archivo de datos de origen tiene valores separados por delimitadores. El término más específico, valores separados por comas (CSV) se usa de forma genérica. Los separadores de columnas válidos incluyen comas y barras verticales. Los registros se separan mediante líneas nuevas. Los archivos deben almacenarse en Amazon S3. Al crear una nueva tarea de carga por lotes, la ubicación de los datos de origen se especifica mediante un ARN para el archivo. Un archivo contiene encabezados. Una columna representa la marca de tiempo. Al menos otra columna representa una medida.

Los cubos S3 utilizados con la carga de lotes deben estar en la misma región que la transmisión temporal de la LiveAnalytics tabla que se utiliza en la carga de lotes. No añada ni elimine archivos del bucket de S3 que se usa en la carga por lotes una vez que se haya enviado esta tarea. Para obtener más información acerca del trabajo con buckets de S3, consulte [Introducción a Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html).

**nota**  
Los archivos CSV que generan algunas aplicaciones, como Excel, pueden contener una marca de orden de bytes (BOM) que entra en conflicto con la codificación esperada. La secuencia temporal de las tareas de carga por LiveAnalytics lotes que hacen referencia a un archivo CSV con una lista de materiales arroja un error cuando se procesan mediante programación. Para evitarlo, puede eliminar la BOM, que es un carácter invisible.  
Por ejemplo, puede guardar el archivo desde una aplicación como Notepad\$1\$1, que le permite especificar una nueva codificación. También puede usar una opción programática que lea la primera línea, elimine el carácter de la línea y escriba el nuevo valor sobre la primera línea del archivo.  
Al guardar desde Excel, hay varias opciones de CSV. Guardar con una opción de CSV diferente puede evitar el problema descrito. Pero debería comprobar el resultado, ya que un cambio en la codificación puede afectar a algunos caracteres.

## Parámetros de formato CSV
<a name="batch-load-data-file-options"></a>

Se usan caracteres de escape cuando se representa un valor que, de otro modo, estaría reservado por los parámetros de formato. Por ejemplo, si el carácter de comilla es una comilla doble, para representarlo en los datos, coloque el carácter de escape antes de la comilla doble.

Para obtener información acerca de cuándo especificarlos al crear una tarea de carga por lotes, consulte [Creación de una tarea de carga de lotes](batch-load-using-console.md#console_timestream.create-batch-load.using-console).


| Parámetro | Opciones | 
| --- | --- | 
| Separador de columnas | (Coma [“,”] \$1 Barra vertical [“\$1”] \$1 Punto y coma [“;”] \$1 Tabulador [“/t”] \$1 Espacio en blanco [“ ”]) | 
| Carácter de escape | none | 
| Carácter de comilla | Consola: (Comilla doble ["] \$1 Comilla simple [']) | 
| Valor nulo | Espacio en blanco (“ ”) | 
| Recorte de espacio en blanco | Consola: (No \$1 Sí) | 

# Mapeos de modelos de datos para carga por lotes
<a name="batch-load-data-model-mappings"></a>

A continuación, se analiza el esquema de los mapeos de modelos de datos y se proporciona un ejemplo.

## Esquema de mapeos de modelos de datos
<a name="batch-load-data-model-mappings-schema"></a>

La sintaxis de la solicitud `CreateBatchLoadTask` y un objeto `BatchLoadTaskDescription` que se devuelve por una llamada a `DescribeBatchLoadTask` incluye un objeto `DataModelConfiguration` con el `DataModel` para la carga por lotes. `DataModel`Define las asignaciones desde los datos de origen que se almacenan en formato CSV en una ubicación de S3 hasta un flujo temporal de destino para la base de datos y la tabla. LiveAnalytics 

El `TimeColumn` campo indica la ubicación de los datos de origen para el valor que se va a asignar a la columna de la tabla de destino en Timestream for. `time` LiveAnalytics La `TimeUnit` especifica la unidad de la `TimeColumn`, y puede expresarse en `MILLISECONDS`, `SECONDS`, `MICROSECONDS` o `NANOSECONDS`. También hay mapeos de dimensiones y medidas. Los mapeos de dimensiones se componen de columnas de origen y campos de destino. 

Para obtener más información, consulte [DimensionMapping](https://docs.aws.amazon.com/timestream/latest/developerguide/API_DimensionMapping). Los mapeos de las medidas tienen dos opciones: `MixedMeasureMappings` y `MultiMeasureMappings`.

En resumen, a `DataModel` contiene las asignaciones de una fuente de datos en una ubicación de S3 a una cadena temporal de destino para la tabla siguiente. LiveAnalytics 
+ Time
+ Dimensiones
+ Medidas

Si es posible, le recomendamos que asigne los datos de medición a registros de medidas múltiples en Timestream for. LiveAnalytics Para obtener más información sobre los beneficios de los registros de medidas múltiples, consulte [Registros de múltiples medidas](writes.md#writes.writing-data-multi-measure). 

Si se almacenan varias medidas de los datos de origen en una fila, puede mapearlas a registros de múltiples medidas de Timestream para su uso. LiveAnalytics `MultiMeasureMappings` Si hay valores que deben mapearse a un registro de medida única, puede usar `MixedMeasureMappings`. 

Tanto `MixedMeasureMappings` como `MultiMeasureMappings` incluyen `MultiMeasureAttributeMappings`. Se admiten registros de medidas múltiples independientemente de si se necesitan registros de medida única.

Si solo se necesitan registros objetivo de medidas múltiples en Timestream LiveAnalytics, puede definir las asignaciones de medidas en la siguiente estructura.

```
CreateBatchLoadTask
    MeasureNameColumn
    MultiMeasureMappings
        TargetMultiMeasureName
        MultiMeasureAttributeMappings array
```

**nota**  
Recomendamos usar `MultiMeasureMappings` siempre que sea posible.

Si se necesitan registros objetivo de una sola medida en Timestream LiveAnalytics, puede definir las asignaciones de medidas en la siguiente estructura.

```
CreateBatchLoadTask
    MeasureNameColumn
    MixedMeasureMappings array
        MixedMeasureMapping
            MeasureName
            MeasureValueType
            SourceColumn
            TargetMeasureName
            MultiMeasureAttributeMappings array
```

Cuando se usa `MultiMeasureMappings`, la matriz `MultiMeasureAttributeMappings` siempre es necesaria. Cuando se usa la matriz `MixedMeasureMappings`, si el `MeasureValueType` es `MULTI` para un `MixedMeasureMapping` dado, `MultiMeasureAttributeMappings` es necesario para dicho `MixedMeasureMapping`. De lo contrario, `MeasureValueType` indica el tipo de medida para el registro de medida única.

De cualquier forma, hay una matriz de `MultiMeasureAttributeMapping` disponible. Los mapeos a los registros de medidas múltiples en cada `MultiMeasureAttributeMapping` se definen de la siguiente manera:

`SourceColumn`  
La columna de los datos de origen que se encuentra en Amazon S3.

`TargetMultiMeasureAttributeName`  
El nombre de la medida múltiple de destino en la tabla de destino. Esta entrada es necesaria cuando no se proporciona `MeasureNameColumn`. Si se proporciona `MeasureNameColumn`, se usará el valor de esa columna como nombre de la medida múltiple.

`MeasureValueType`  
Puede ser uno de los siguientes: `DOUBLE`, `BIGINT`, `BOOLEAN`, `VARCHAR` o bien `TIMESTAMP`.

## Ejemplo de mapeos de modelos de datos con `MultiMeasureMappings`
<a name="batch-load-data-model-mappings-example-multi"></a>

En este ejemplo, se muestra el mapeo a registros de medidas múltiples, el enfoque preferido, que almacena cada valor de medida en una columna dedicada. Puede descargar un archivo CSV de muestra en [CSV de muestra](samples/batch-load-sample-file.csv.zip). El ejemplo tiene los siguientes encabezados para asignarlos a una columna de destino de una tabla Timestream for. LiveAnalytics 
+ `time`
+ `measure_name`
+ `region`
+ `location`
+ `hostname`
+ `memory_utilization`
+ `cpu_utilization`

Identifique las columnas `time` y `measure_name` en el archivo CSV. En este caso, se asignan directamente al Timestream para las columnas de la LiveAnalytics tabla con el mismo nombre.
+ `time` se mapea a `time`
+ `measure_name` se mapea a `measure_name` (o al valor que elija)

Al utilizar la API, se especifica `time` en el campo `TimeColumn` y un valor de unidad de tiempo compatible, como `MILLISECONDS`, en el campo `TimeUnit`. Estos corresponden al **Nombre de la columna de origen** y a la **Entrada de hora de la marca de tiempo** en la consola. Puede agrupar o particionar los registros según `measure_name`, que se define con la clave `MeasureNameColumn`.

En la muestra, `region`, `location` y `hostname` son dimensiones. Las dimensiones se mapean en una matriz de objetos `DimensionMapping`.

En el caso de las medidas, el valor se `TargetMultiMeasureAttributeName` convertirá en una columna en el flujo temporal de la tabla. LiveAnalytics Puede conservar el mismo nombre, como en este ejemplo. O bien, puede especificar uno nuevo. `MeasureValueType` es uno de los siguientes: `DOUBLE`, `BIGINT`, `BOOLEAN`, `VARCHAR` o `TIMESTAMP`. 

```
{
  "TimeColumn": "time",
  "TimeUnit": "MILLISECONDS",
  "DimensionMappings": [
    {
      "SourceColumn": "region",
      "DestinationColumn": "region"
    },
    {
      "SourceColumn": "location",
      "DestinationColumn": "location"
    },
    {
      "SourceColumn": "hostname",
      "DestinationColumn": "hostname"
    }
  ],
  "MeasureNameColumn": "measure_name",
  "MultiMeasureMappings": {
    "MultiMeasureAttributeMappings": [
      {
        "SourceColumn": "memory_utilization",
        "TargetMultiMeasureAttributeName": "memory_utilization",
        "MeasureValueType": "DOUBLE"
      },
      {
        "SourceColumn": "cpu_utilization",
        "TargetMultiMeasureAttributeName": "cpu_utilization",
        "MeasureValueType": "DOUBLE"
      }
    ]
  }
}
```

![\[Visual builder interface showing column mappings for timestream data attributes and types.\]](http://docs.aws.amazon.com/es_es/timestream/latest/developerguide/images/column-mapping.jpg)


## Ejemplo de mapeos de modelos de datos con `MixedMeasureMappings`
<a name="batch-load-data-model-mappings-example-mixed"></a>

Le recomendamos que utilice este enfoque solo cuando necesite mapear registros de una sola medida en Timestream para. LiveAnalytics

# Uso de la carga por lotes con la consola
<a name="batch-load-using-console"></a>

Los siguientes son los pasos para usar la carga por lotes con la Consola de administración de AWS. Puede descargar un archivo CSV de muestra en [CSV de muestra](samples/batch-load-sample-file.csv.zip).

**Topics**
+ [Acceso a la carga por lotes](#console_timestream.access-batch-load.using-console)
+ [Creación de una tarea de carga de lotes](#console_timestream.create-batch-load.using-console)
+ [Reanudación de una tarea de carga por lotes](#console_timestream.resume-batch-load.using-console)
+ [Uso del creador visual](#batch-load-using-visual-builder)

## Acceso a la carga por lotes
<a name="console_timestream.access-batch-load.using-console"></a>

Siga estos pasos para acceder a la carga por lotes mediante la Consola de administración de AWS.

1. Abra la [Consola Amazon Timestream](https://console.aws.amazon.com/timestream).

1. En el panel de navegación, elija **Herramientas de administración** y, a continuación, elija **Tareas de carga por lotes**.

1. Desde aquí, puede ver la lista de tareas de carga por lotes y profundizar en una tarea determinada para obtener más detalles. También puede crear y reanudar tareas.

## Creación de una tarea de carga de lotes
<a name="console_timestream.create-batch-load.using-console"></a>

Para crear un rol de tarea de carga por lotes mediante la Consola de administración de AWS, siga estos pasos.

1. Abra la [Consola Amazon Timestream](https://console.aws.amazon.com/timestream).

1. En el panel de navegación, elija **Herramientas de administración** y, a continuación, elija **Tareas de carga por lotes**.

1. Seleccione **Crear tarea de carga por lotes**.

1. En **Destino de importación**, elija lo siguiente.
   + **Base de datos de destino**: seleccione el nombre de la base de datos que se creó en [Creación de una base de datos de](console_timestream.md#console_timestream.db.using-console).
   + **Tabla de destino**: seleccione el nombre de la tabla que se creó en [Creación de una tabla](console_timestream.md#console_timestream.table.using-console).

   Si es necesario, puede añadir una tabla desde este panel con el botón **Crear tabla nueva**.

1. Desde **Ubicación del origen de datos de S3** en **Origen de datos**, seleccione el bucket de S3 donde se almacenan los datos de origen. Utilice el botón **Examinar S3** para ver los recursos de S3 a los que tiene acceso la AWS cuenta activa o introduzca la URL de la ubicación de S3. El origen de datos debe encontrarse en la misma región.

1. En **Configuración de formato de archivo** (sección ampliable), puede usar la configuración predeterminada para analizar los datos de entrada. También puede elegir la **Configuración avanzada**. Desde allí, puede elegir **Parámetros del formato CSV** y seleccionar los parámetros para analizar los datos de entrada. Para obtener más información sobre estos parámetros, consulte [Parámetros de formato CSV](batch-load-preparing-data-file.md#batch-load-data-file-options).

1. En **Configurar mapeo de modelo de datos**, configure el modelo de datos. Para obtener orientación adicional sobre el modelo de datos, consulte [Mapeos de modelos de datos para carga por lotes](batch-load-data-model-mappings.md)
   + En **Mapeo de modelo de datos**, elija **Entrada de configuración de mapeo** y elija una de las siguientes opciones.
     + **Creador visual**: para mapear los datos de forma visual, elija **TargetMultiMeasureName**o **MeasureNameColumn**. A continuación, desde **Creador visual**, mapee las columnas.

       El creador visual detecta y carga automáticamente los encabezados de las columnas de origen desde el archivo de origen de datos cuando se selecciona un único archivo CSV como origen de datos. Elija el atributo y el tipo de datos para crear el mapeo.

       Para obtener información sobre cómo usar el creador visual, consulte [Uso del creador visual](#batch-load-using-visual-builder).
     + **Editor JSON**: un editor JSON de formato libre para configurar su modelo de datos. Elija esta opción si está familiarizado con Timestream for LiveAnalytics y desea crear mapeos de modelos de datos avanzados.
     + **Archivo JSON de S3**: seleccione un archivo de modelo JSON que haya almacenado en S3. Elija esta opción si ya ha configurado un modelo de datos y desea reusarlo para cargas de lotes adicionales.

1. Desde **Ubicación de registros de errores en S3** en **Informe de registro de errores**, seleccione la ubicación de S3 que se usará para informar de los errores. Para obtener información acerca de cómo usar esta acción, consulte [Uso de informes de errores de carga por lotes](batch-load-using-error-reports.md).

1. En **Tipo de clave de cifrado**, seleccione una de las opciones siguientes:
   + **Clave administrada por Amazon S3 (SSE-S3)**: una clave de cifrado que Amazon S3 crea, administra y usa por usted.
   + **AWS KMS key (SSE-KMS)**: clave de cifrado protegida por (). AWS Key Management Service AWS KMS

1. Elija **Siguiente**.

1. En la página **Revisar y crear página**, revise y edite la configuración y en caso de ser necesario.
**nota**  
No puede cambiar la configuración de las tareas de carga por lotes una vez que se haya creado la tarea. Los tiempos de finalización de las tareas variarán en función de la cantidad de datos que se importen.

1. Seleccione **Crear tarea de carga por lotes**.

## Reanudación de una tarea de carga por lotes
<a name="console_timestream.resume-batch-load.using-console"></a>

Cuando selecciona una tarea de carga por lotes con el estado “Progreso detenido” y que aún se puede reanudar, se le solicitará que reanude la tarea. También hay un banner con el botón **Reanudar tarea** cuando vea los detalles de esas tareas. Las tareas que se pueden reanudar tienen una fecha de caducidad. Una vez caducada esa fecha, las tareas no se pueden reanudar.

## Uso del creador visual
<a name="batch-load-using-visual-builder"></a>

Puede usar el generador visual para asignar columnas de datos de origen, uno o más archivos CSV almacenados en un depósito de S3 a columnas de destino en una tabla Timestream for. LiveAnalytics 

**nota**  
Su función necesitará el permiso `SelectObjectContent` para el archivo. Sin esto, tendrá que añadir y eliminar columnas manualmente.

### Modo de carga automática de columnas de origen
<a name="batch-load-using-visual-builder-auto-load"></a>

Timestream for LiveAnalytics puede escanear automáticamente el archivo CSV de origen en busca de nombres de columnas si solo especificas un bucket. Cuando no haya mapeos existentes, puede elegir **Importar columnas de origen**.

1. Con la opción **Creador visual** seleccionada en los **Ajustes de entrada de la configuración de mapeo**, defina la entrada de hora de la marca de tiempo. `Milliseconds` es la configuración predeterminada.

1. Haga clic en el botón **Cargar columnas de origen** para importar los encabezados de columna que se encuentran en el archivo de datos de origen. La tabla se rellenará con los nombres de los encabezados de las columnas de origen del archivo de origen de datos.

1. Elija el **Nombre de la columna de la tabla de destino**, el **Tipo de atributo de Timestream** y el **Tipo de datos** para cada columna de origen.

   Para obtener más información sobre estas columnas y sus posibles valores, consulte [Asignación de campos](#batch-load-using-visual-builder-mapping-fields).

1. Utilice la drag-to-fill función para establecer el valor de varias columnas a la vez.

### Agregue columnas de origen manualmente
<a name="batch-load-using-visual-builder-manually-add"></a>

Si usa un bucket o un prefijo CSV y no un solo CSV, puede añadir y eliminar mapeos de columnas desde el creador visual con los botones **Añadir mapeo de columnas** y **Eliminar mapeo de columnas**. También hay un botón para restablecer los mapeos.

### Asignación de campos
<a name="batch-load-using-visual-builder-mapping-fields"></a>
+ **Nombre de la columna de origen**: el nombre de una columna del archivo de origen que representa una medida que se va a importar. Timestream for LiveAnalytics puede rellenar este valor automáticamente al utilizar las columnas de origen de **importación**.
+ **Nombre de la columna de la tabla de destino**: entrada opcional que indica el nombre de la columna de la medida en la tabla de destino.
+ **Tipo de atributo de Timestream**: el tipo de atributo de los datos de la columna de origen especificada, por ejemplo, `DIMENSION`.
  + **TIMESTAMP**: especifica cuándo se recopiló una medida.
  + **MULTI**: se representan varias medidas.
  + **DIMENSION**: metadatos de serie temporal.
  + **MEASURE\$1NAME**: para los registros de medida única, este es el nombre de la medida.
+ **Tipo de datos**: el tipo de columna de Timestream, por ejemplo, `BOOLEAN`.
  + **BIGINT**: entero de 64 bits.
  + **BOOLEAN**: los dos valores de verdad de la lógica: verdadero y falso.
  + **DOUBLE**: número de precisión variable de 64 bits.
  + **TIMESTAMP**: instancia temporal que usa el tiempo de precisión de nanosegundos en UTC y registra el tiempo transcurrido desde la época de Unix.

# Uso de la carga por lotes con AWS CLI
<a name="batch-load-using-cli"></a>

**Configuración**

Para empezar a usar la carga por lotes, realice los siguientes pasos:

1. Instálelo AWS CLI siguiendo las instrucciones que aparecen en[Acceso a Amazon Timestream LiveAnalytics para usar el AWS CLI](Tools.CLI.md).

1. Ejecute el siguiente comando para verificar que se hayan actualizado los comandos de la CLI de Timestream. Compruebe que create-batch-load-task está en la lista.

   `aws timestream-write help`

1. Prepare un origen de datos según las instrucciones en [Preparación de un archivo de datos de carga por lotes](batch-load-preparing-data-file.md).

1. Cree una base de datos y una tabla según las instrucciones de [Acceso a Amazon Timestream LiveAnalytics para usar el AWS CLI](Tools.CLI.md).

1. Cree un bucket de S3 para la salida de informes. El bucket debe estar en la misma región. Para obtener más información sobre buckets, consulte [Creación, configuración y uso de buckets de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html).

1. Cree una tarea de carga de lotes. Para ver los pasos, consulte [Creación de una tarea de carga de lotes](#batch-load-using-cli-create-task).

1. Confirme el estado de la tarea. Para ver los pasos, consulte [Descripción de la tarea de carga por lotes](#batch-load-using-cli-describe-task).

## Creación de una tarea de carga de lotes
<a name="batch-load-using-cli-create-task"></a>

Puede crear una tarea de carga por lotes con el comando `create-batch-load-task`. Al crear una tarea de carga por lotes mediante la CLI, puede usar un parámetro JSON, `cli-input-json`, que le permite agregar los parámetros en un único fragmento de JSON. También puede separar esos detalles mediante otros varios parámetros, como `data-model-configuration`, `data-source-configuration`, `report-configuration`, `target-database-name` y `target-table-name`.

Para ver un ejemplo, consulte [Ejemplo de creación de una tarea de carga por lotes](#batch-load-using-cli-example).

## Descripción de la tarea de carga por lotes
<a name="batch-load-using-cli-describe-task"></a>

Puede recuperar la descripción de una tarea de carga por lotes de la siguiente manera.

```
aws timestream-write describe-batch-load-task --task-id <value>
```

A continuación, se muestra un ejemplo de respuesta.

```
{
    "BatchLoadTaskDescription": {
        "TaskId": "<TaskId>",
        "DataSourceConfiguration": {
            "DataSourceS3Configuration": {
                "BucketName": "test-batch-load-west-2",
                "ObjectKeyPrefix": "sample.csv"
            },
            "CsvConfiguration": {},
            "DataFormat": "CSV"
        },
        "ProgressReport": {
            "RecordsProcessed": 2,
            "RecordsIngested": 0,
            "FileParseFailures": 0,
            "RecordIngestionFailures": 2,
            "FileFailures": 0,
            "BytesIngested": 119
        },
        "ReportConfiguration": {
            "ReportS3Configuration": {
                "BucketName": "test-batch-load-west-2",
                "ObjectKeyPrefix": "<ObjectKeyPrefix>",
                "EncryptionOption": "SSE_S3"
            }
        },
        "DataModelConfiguration": {
            "DataModel": {
                "TimeColumn": "timestamp",
                "TimeUnit": "SECONDS",
                "DimensionMappings": [
                    {
                        "SourceColumn": "vehicle",
                        "DestinationColumn": "vehicle"
                    },
                    {
                        "SourceColumn": "registration",
                        "DestinationColumn": "license"
                    }
                ],
                "MultiMeasureMappings": {
                    "TargetMultiMeasureName": "test",
                    "MultiMeasureAttributeMappings": [
                        {
                            "SourceColumn": "wgt",
                            "TargetMultiMeasureAttributeName": "weight",
                            "MeasureValueType": "DOUBLE"
                        },
                        {
                            "SourceColumn": "spd",
                            "TargetMultiMeasureAttributeName": "speed",
                            "MeasureValueType": "DOUBLE"
                        },
                        {
                            "SourceColumn": "fuel",
                            "TargetMultiMeasureAttributeName": "fuel",
                            "MeasureValueType": "DOUBLE"
                        },
                        {
                            "SourceColumn": "miles",
                            "TargetMultiMeasureAttributeName": "miles",
                            "MeasureValueType": "DOUBLE"
                        }
                    ]
                }
            }
        },
        "TargetDatabaseName": "BatchLoadExampleDatabase",
        "TargetTableName": "BatchLoadExampleTable",
        "TaskStatus": "FAILED",
        "RecordVersion": 1,
        "CreationTime": 1677167593.266,
        "LastUpdatedTime": 1677167602.38
    }
}
```

## Enumeración de tareas de carga por lotes
<a name="batch-load-using-cli-list-tasks"></a>

Puede enumerar las tareas de carga por lotes de la siguiente manera.

```
aws timestream-write list-batch-load-tasks
```

Aparece una salida como se muestra a continuación.

```
{
    "BatchLoadTasks": [
        {
            "TaskId": "<TaskId>",
            "TaskStatus": "FAILED",
            "DatabaseName": "BatchLoadExampleDatabase",
            "TableName": "BatchLoadExampleTable",
            "CreationTime": 1677167593.266,
            "LastUpdatedTime": 1677167602.38
        }
    ]
}
```

## Reanudación de la tarea de carga por lotes
<a name="batch-load-using-cli-resume-task"></a>

Puede reanudar una tarea de carga por lotes de la siguiente manera.

```
aws timestream-write resume-batch-load-task --task-id <value>
```

Una respuesta puede indicar que se ha realizado correctamente o contener información sobre un error.

## Ejemplo de creación de una tarea de carga por lotes
<a name="batch-load-using-cli-example"></a>

**Example**  

1. Cree un flujo temporal para la LiveAnalytics base de datos denominada `BatchLoad` y una tabla denominada. `BatchLoadTest` Compruebe y, si es necesario, ajuste los valores de `MemoryStoreRetentionPeriodInHours` y `MagneticStoreRetentionPeriodInDays`.

   ```
   aws timestream-write create-database --database-name BatchLoad \
   
   aws timestream-write create-table --database-name BatchLoad \
   --table-name BatchLoadTest \
   --retention-properties "{\"MemoryStoreRetentionPeriodInHours\": 12, \"MagneticStoreRetentionPeriodInDays\": 100}"
   ```

1. Con la consola, cree un bucket de S3 y copie el archivo `sample.csv` en esa ubicación. Puede descargar un archivo CSV de muestra en [CSV de muestra](samples/batch-load-sample-file.csv.zip).

1. Con la consola, cree un depósito de S3 para que Timestream escriba un informe si la tarea de carga por lotes finaliza con errores. LiveAnalytics 

1. Cree una tarea de carga de lotes. Asegúrese de reemplazar *\$1INPUT\$1BUCKET* y por *\$1REPORT\$1BUCKET* los depósitos que creó en los pasos anteriores.

   ```
   aws timestream-write create-batch-load-task \
   --data-model-configuration "{\
               \"DataModel\": {\
                 \"TimeColumn\": \"timestamp\",\
                 \"TimeUnit\": \"SECONDS\",\
                 \"DimensionMappings\": [\
                   {\
                     \"SourceColumn\": \"vehicle\"\
                   },\
                   {\
                     \"SourceColumn\": \"registration\",\
                     \"DestinationColumn\": \"license\"\
                   }\
                 ],
                 \"MultiMeasureMappings\": {\
                   \"TargetMultiMeasureName\": \"mva_measure_name\",\
                   \"MultiMeasureAttributeMappings\": [\
                     {\
                       \"SourceColumn\": \"wgt\",\
                       \"TargetMultiMeasureAttributeName\": \"weight\",\
                       \"MeasureValueType\": \"DOUBLE\"\
                     },\
                     {\
                       \"SourceColumn\": \"spd\",\
                       \"TargetMultiMeasureAttributeName\": \"speed\",\
                       \"MeasureValueType\": \"DOUBLE\"\
                     },\
                     {\
                       \"SourceColumn\": \"fuel_consumption\",\
                       \"TargetMultiMeasureAttributeName\": \"fuel\",\
                       \"MeasureValueType\": \"DOUBLE\"\
                     },\
                     {\
                       \"SourceColumn\": \"miles\",\
                       \"MeasureValueType\": \"BIGINT\"\
                     }\
                   ]\
                 }\
               }\
             }" \
   --data-source-configuration "{
               \"DataSourceS3Configuration\": {\
                 \"BucketName\": \"$INPUT_BUCKET\",\
                 \"ObjectKeyPrefix\": \"$INPUT_OBJECT_KEY_PREFIX\"
               },\
               \"DataFormat\": \"CSV\"\
             }" \
   --report-configuration "{\
               \"ReportS3Configuration\": {\
                 \"BucketName\": \"$REPORT_BUCKET\",\
                 \"EncryptionOption\": \"SSE_S3\"\
               }\
             }" \
   --target-database-name BatchLoad \
   --target-table-name BatchLoadTest
   ```

   El comando anterior devuelve la siguiente salida:

   ```
   {
       "TaskId": "TaskId "
   }
   ```

1. Compruebe el progreso de la tarea. Asegúrese de sustituirlo por *\$1TASK\$1ID* el identificador de tarea que se devolvió en el paso anterior.

   ```
   aws timestream-write describe-batch-load-task --task-id $TASK_ID 
   ```
**Ejemplo de resultado de**  

```
{
    "BatchLoadTaskDescription": {
        "ProgressReport": {
            "BytesIngested": 1024,
            "RecordsIngested": 2,
            "FileFailures": 0,
            "RecordIngestionFailures": 0,
            "RecordsProcessed": 2,
            "FileParseFailures": 0
        },
        "DataModelConfiguration": {
            "DataModel": {
                "DimensionMappings": [
                    {
                        "SourceColumn": "vehicle",
                        "DestinationColumn": "vehicle"
                    },
                    {
                        "SourceColumn": "registration",
                        "DestinationColumn": "license"
                    }
                ],
                "TimeUnit": "SECONDS",
                "TimeColumn": "timestamp",
                "MultiMeasureMappings": {
                    "MultiMeasureAttributeMappings": [
                        {
                            "TargetMultiMeasureAttributeName": "weight",
                            "SourceColumn": "wgt",
                            "MeasureValueType": "DOUBLE"
                        },
                        {
                            "TargetMultiMeasureAttributeName": "speed",
                            "SourceColumn": "spd",
                            "MeasureValueType": "DOUBLE"
                        },
                        {
                            "TargetMultiMeasureAttributeName": "fuel",
                            "SourceColumn": "fuel_consumption",
                            "MeasureValueType": "DOUBLE"
                        },
                        {
                            "TargetMultiMeasureAttributeName": "miles",
                            "SourceColumn": "miles",
                            "MeasureValueType": "DOUBLE"
                        }
                    ],
                    "TargetMultiMeasureName": "mva_measure_name"
                }
            }
        },
        "TargetDatabaseName": "BatchLoad",
        "CreationTime": 1672960381.735,
        "TaskStatus": "SUCCEEDED",
        "RecordVersion": 1,
        "TaskId": "TaskId ",
        "TargetTableName": "BatchLoadTest",
        "ReportConfiguration": {
            "ReportS3Configuration": {
                "EncryptionOption": "SSE_S3",
                "ObjectKeyPrefix": "ObjectKeyPrefix ",
                "BucketName": "amzn-s3-demo-bucket"
            }
        },
        "DataSourceConfiguration": {
            "DataSourceS3Configuration": {
                "ObjectKeyPrefix": "sample.csv",
                "BucketName": "amzn-s3-demo-source-bucket"
            },
            "DataFormat": "CSV",
            "CsvConfiguration": {}
        },
        "LastUpdatedTime": 1672960387.334
    }
}
```

# Uso de la carga por lotes con el AWS SDKs
<a name="batch-load-using-sdk"></a>

Para ver ejemplos de cómo crear, describir y enumerar las tareas de carga por lotes con las AWS SDKs[Crear una tarea de carga por lotes](code-samples.create-batch-load.md), consulte[Describir una tarea de carga por lotes](code-samples.describe-batch-load.md),[Enumerar las tareas de carga por lotes](code-samples.list-batch-load-tasks.md), y[Reanudación de la tarea de carga por lotes](code-samples.resume-batch-load-task.md).

# Uso de informes de errores de carga por lotes
<a name="batch-load-using-error-reports"></a>

Las tareas de carga por lotes tienen uno de los siguientes valores de estado:
+ `CREATED`(**Creada**): se crea la tarea.
+ `IN_PROGRESS`(**En curso**): la tarea está en curso.
+ `FAILED`(**Fallo**): la tarea se completó. Sin embargo, se detectaron uno o más errores.
+ `SUCCEEDED`(**Completada**): la tarea se completó sin errores.
+ `PROGRESS_STOPPED`(**Progreso detenido**): la tarea se detuvo, pero no se completó. Puede intentar reanudar la tarea.
+ `PENDING_RESUME`(**Reanudación pendiente**): la tarea está pendiente de reanudarse.

Cuando hay errores, se crea un informe de registro de errores en el bucket de S3 definido para ello. Los errores se clasifican como TaskErrors o FileErrors en matrices independientes. A continuación, se muestra un ejemplo de registro de errores.

```
{
    "taskId": "9367BE28418C5EF902676482220B631C",
    "taskErrors": [],
    "fileErrors": [
        {
            "fileName": "example.csv",
            "errors": [
                {
                    "reason": "The record timestamp is outside the time range of the data ingestion window.",
                    "lineRanges": [
                        [
                            2,
                            3
                        ]
                    ]
                }
            ]
        }
    ]
}
```