

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 UNLOAD para exportar los resultados de las consultas a S3 desde Timestream para LiveAnalytics
<a name="export-unload"></a>

 LiveAnalytics Por ahora, Amazon Timestream le permite exportar los resultados de sus consultas a Amazon S3 de forma rentable y segura utilizando la declaración. `UNLOAD` Gracias a la instrucción `UNLOAD`, ahora puede exportar datos de serie temporal a determinados segmentos de S3 en formato Apache Parquet o en formato CSV (valores separados por comas), lo que proporciona flexibilidad para almacenar, combinar y analizar los datos de serie temporal con otros servicios. La instrucción `UNLOAD` le permite exportar los datos de forma comprimida, lo que reduce la transferencia de datos y el espacio de almacenamiento necesario. `UNLOAD` también admite la partición en función de los atributos seleccionados al exportar los datos, lo que mejora el rendimiento y reduce el tiempo de procesamiento de los servicios intermedios que acceden a los datos. Además, puede usar las claves administradas de Amazon S3 (SSE-S3) o AWS las claves administradas del Servicio de administración de claves (AWS KMS) (SSE-KMS) para cifrar los datos exportados.

## Ventajas de UNLOAD de Timestream para LiveAnalytics
<a name="export-unload-benefits"></a>

Los beneficios clave de usar la instrucción `UNLOAD` son los siguientes:
+ **Facilidad operativa**: con la instrucción `UNLOAD`, puede exportar gigabytes de datos en una sola solicitud de consulta en formato Apache Parquet o CSV, lo que proporciona flexibilidad para seleccionar el formato que mejor se adapte a sus necesidades de procesamiento posterior y facilita la creación de lagos de datos.
+ **Seguro y rentable**: la instrucción `UNLOAD` ofrece la capacidad de exportar sus datos a un bucket de S3 de forma comprimida y de cifrar (SSE-KMS o SSE\$1S3) sus datos mediante claves administradas por el cliente, lo que reduce los costos de almacenamiento de datos y protege contra el acceso no autorizado.
+ **Rendimiento**: con la instrucción `UNLOAD`, puede particionar los datos al exportarlos a un bucket de S3. La partición de los datos permite a los servicios posteriores procesar los datos en paralelo, lo que reduce su tiempo de procesamiento. Además, los servicios intermedios pueden procesar solo los datos que necesitan, lo que reduce los recursos de procesamiento necesarios y, por lo tanto, los costos asociados.

## Casos de uso de UNLOAD from Timestream para LiveAnalytics
<a name="export-unload-use-cases"></a>

Puede utilizar la instrucción `UNLOAD` para escribir datos en su bucket de S3 de la siguiente manera.
+ **Cree un almacén de datos**: puede exportar gigabytes de resultados de consultas a un bucket de S3 y añadir más fácilmente datos de serie temporal a su lago de datos. Puede utilizar servicios como Amazon Athena y Amazon Redshift para combinar sus datos de serie temporal con otros datos relevantes para obtener información empresarial compleja. 
+ **Cree canalizaciones de datos de IA y** aprendizaje automático: la `UNLOAD` declaración le permite crear fácilmente canalizaciones de datos para sus modelos de aprendizaje automático que acceden a datos de series temporales, lo que facilita el uso de datos de series temporales con servicios como Amazon y SageMaker Amazon EMR.
+ **Simplifique el procesamiento de ETL**: la exportación de datos a depósitos de S3 puede simplificar el proceso de realizar operaciones de extracción, transformación y carga (ETL) en los datos, lo que le permite utilizar herramientas o AWS servicios de terceros, como AWS Glue, para procesar y transformar los datos sin problemas.

# Conceptos de UNLOAD
<a name="export-unload-concepts"></a>

## Sintaxis
<a name="export-unload-concepts-syntax"></a>

```
UNLOAD (SELECT statement)
 TO 's3://bucket-name/folder'
 WITH ( option = expression [, ...] )
```

dónde se encuentra `option`

```
{ partitioned_by = ARRAY[ col_name[,…] ] 
 | format = [ '{ CSV | PARQUET }' ] 
 | compression = [ '{ GZIP | NONE }' ]
 | encryption = [ '{ SSE_KMS | SSE_S3 }' ]
 | kms_key = '<string>'
 | field_delimiter ='<character>'
 | escaped_by = '<character>'
 | include_header = ['{true, false}']
 | max_file_size = '<value>'
 | }
```

## Parameters
<a name="export-unload-concepts-parameters"></a>

Instrucción de selección  
La sentencia de consulta utilizada para seleccionar y recuperar datos de uno o más Timestream para tablas. LiveAnalytics   

```
(SELECT column 1, column 2, column 3 from database.table
      where measure_name = "ABC" and timestamp between ago (1d) and now() )
```

Cláusula TO  

```
TO 's3://bucket-name/folder'
```
o  

```
TO 's3://access-point-alias/folder'
```
La cláusula `TO` en la instrucción `UNLOAD` especifica el destino de la salida de los resultados de la consulta. Debe proporcionar la ruta completa, incluido el nombre del bucket de Amazon S3 o Amazon S3 access-point-alias con la ubicación de la carpeta en Amazon S3 donde Timestream for LiveAnalytics escribe los objetos del archivo de salida. El bucket de S3 debe pertenecer a la misma cuenta y estar en la misma región. Además del conjunto de resultados de la consulta, Timestream for LiveAnalytics escribe los archivos de manifiesto y metadatos en la carpeta de destino especificada. 

Cláusula PARTITIONED\$1BY  

```
partitioned_by = ARRAY [col_name[,…] , (default: none)
```
La cláusula `partitioned_by` se usa en las consultas para agrupar y analizar los datos a un nivel granular. Al exportar los resultados de la consulta al bucket de S3, puede elegir dividir los datos en función de una o más columnas de la consulta seleccionada. Al particionar los datos, los datos exportados se dividen en subconjuntos según la columna de partición y cada subconjunto se almacena en una carpeta independiente. Dentro de la carpeta de resultados que contiene los datos exportados, se crea automáticamente una subcarpeta `folder/results/partition column = partition value/`. Sin embargo, tenga en cuenta que las columnas particionadas no se incluyen en el archivo de salida.   
`partitioned_by` no es una cláusula obligatoria en la sintaxis. Si opta por exportar los datos sin ninguna partición, puede excluir la cláusula de la sintaxis.   

**Example**  
Supongamos que está supervisando los datos del flujo de clics de su sitio web y tiene 5 canales de tráfico, a saber, `direct`, `Social Media`, `Organic Search`, `Other` y `Referral`. Al exportar los datos, puede optar por particionarlos mediante la columna `Channel`. Dentro de la carpeta de datos, `s3://bucketname/results`, tendrá cinco carpetas, cada una con su nombre de canal respectivo. Por ejemplo, `s3://bucketname/results/channel=Social Media/.`. Dentro de esta carpeta, encontrará los datos de todos los clientes que llegaron a tu sitio web a través del canal `Social Media`. Del mismo modo, dispondrá de otras carpetas para el resto de los canales.
Datos exportados particionados por columna de canales  

![\[Folder structure showing channels: Direct, Organic search, Other, Referral, and Social media.\]](http://docs.aws.amazon.com/es_es/timestream/latest/developerguide/images/unload-results.png)


FORMAT  

```
format = [ '{ CSV | PARQUET }' , default: CSV
```
Las palabras clave para especificar el formato de los resultados de la consulta que se escriben en su bucket de S3. Puede exportar los datos como valores separados por comas (CSV) que usan coma (,) como delimitador predeterminado o en el formato Apache Parquet, un eficaz formato de almacenamiento en columnas abiertas para el análisis. 

COMPRESSION  

```
compression = [ '{ GZIP | NONE }' ], default: GZIP
```
Puede comprimir los datos exportados mediante el algoritmo de compresión GZIP o descomprimirlos si especifica la opción `NONE`.

ENCRYPTION  

```
encryption = [ '{ SSE_KMS | SSE_S3 }' ], default: SSE_S3
```
Los archivos de salida en Amazon S3 se cifran mediante la opción de cifrado que haya seleccionado. Además de sus datos, los archivos de manifiesto y metadatos también se cifran en función de la opción de cifrado que haya seleccionado. Actualmente, admitimos el cifrado SSE\$1S3 y SSE\$1KMS. SSE\$1S3 es un cifrado del lado del servidor en el que Amazon S3 cifra los datos mediante el cifrado estándar de cifrado avanzado (AES) de 256 bits. El SSE\$1KMS es un cifrado del lado del servidor para cifrar los datos mediante claves administradas por el cliente.

KMS\$1KEY  

```
kms_key = '<string>'
```
La clave KMS es una clave definida por el cliente para cifrar los resultados de las consultas exportadas. Key Management Service (KMS) gestiona de forma segura la AWS clave AWS KMS y se utiliza para cifrar archivos de datos en Amazon S3.

FIELD\$1DELIMITER  

```
field_delimiter ='<character>' , default: (,)
```
Al exportar los datos en formato CSV, este campo especifica un carácter ASCII único que se utiliza para separar campos en el archivo de salida, como un carácter de barra vertical (\$1), una coma (,) o una tabulación (\$1t). El delimitador predeterminado para los archivos CSV es un carácter de coma. Si un valor de los datos contiene el delimitador elegido, el delimitador aparecerá entre comillas. Por ejemplo, si el valor de sus datos contiene `Time,stream`, este valor se indicará como `"Time,stream"` en los datos exportados. El carácter de comilla utilizado por Timestream LiveAnalytics son comillas dobles («).  
Evite especificar el carácter de retorno (ASCII 13, hexadecimal `0D`, texto “\$1r”) o el carácter de salto de línea (ASCII 10, hexadecimal 0A, texto “\$1n”) como `FIELD_DELIMITER` si desea incluir encabezados en el CSV, ya que esto impedirá que muchos analizadores puedan analizar los encabezados correctamente en la salida CSV resultante.

ESCAPED\$1BY  

```
escaped_by = '<character>', default: (\)
```
Al exportar los datos en formato CSV, este campo especifica el carácter que debe tratarse como un carácter de escape en el archivo de datos escrito en el bucket de S3. Esto ocurre en las siguientes situaciones:  

1. Si el valor en sí contiene el carácter entre comillas ("), se escapará mediante un carácter de escape. Por ejemplo, si el valor es `Time"stream`, donde (\$1) es el carácter de escape configurado, se escapa como `Time\"stream`. 

1. Si el valor contiene el carácter de escape configurado, se escapará. Por ejemplo, si el valor es `Time\stream`, se escapará como `Time\\stream`. 
Si la salida exportada contiene tipos de datos complejos, como matrices, filas o series temporales, se serializará como una cadena JSON. A continuación se muestra un ejemplo.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/timestream/latest/developerguide/export-unload-concepts.html)

INCLUDE\$1HEADER  

```
include_header = 'true' , default: 'false'
```
Al exportar los datos en formato CSV, este campo le permite incluir los nombres de las columnas como la primera fila de los archivos de datos CSV exportados.  
Los valores aceptados son “verdadero” y “falso” y el valor predeterminado es “falso”. Las opciones de transformación de texto, como `escaped_by` y `field_delimiter`, se aplican también a los encabezados.  
Al incluir encabezados, es importante no seleccionar un carácter de retorno (ASCII 13, hexadecimal 0D, texto “\$1r”) o un carácter de salto de línea (ASCII 10, hexadecimal 0A, texto “\$1n”) como `FIELD_DELIMITER`, ya que esto impedirá que muchos analizadores puedan analizar correctamente los encabezados en la salida CSV resultante.

MAX\$1FILE\$1SIZE  

```
max_file_size = 'X[MB|GB]' , default: '78GB'
```
Este campo especifica el tamaño máximo de los archivos que la instrucción `UNLOAD` crea en Amazon S3. La instrucción `UNLOAD` puede crear varios archivos, pero el tamaño máximo de cada archivo escrito en Amazon S3 será aproximadamente el que se especifique en este campo.  
El valor debe estar comprendido entre 16 MB y 78 GB, ambos incluidos. Puede especificarlo en números enteros, como `12GB`, o en decimales, como `0.5GB` o `24.7MB`. El valor predeterminado es 78 GB.  
El tamaño real del archivo es aproximado cuando se está escribiendo el archivo, por lo que es posible que el tamaño real máximo no sea exactamente igual al número que especifique.

## ¿Qué está escrito en mi bucket de S3?
<a name="export-unload-common-questions-what-is-written"></a>

Por cada consulta UNLOAD que se ejecute correctamente, Timestream for LiveAnalytics escribe los resultados de la consulta, el archivo de metadatos y el archivo de manifiesto en el depósito de S3. Si ha particionado los datos, tiene todas las carpetas de particiones en la carpeta de resultados. El archivo de manifiesto contiene una lista de los archivos que se escribieron con el comando UNLOAD. El archivo de metadatos contiene información que describe las características, las propiedades y los atributos de los datos escritos. 

## ¿Cuál es el nombre del archivo exportado?
<a name="export-unload-common-questions-what-is-filename"></a>

El nombre del archivo exportado contiene dos componentes, el primer componente es el queryID y el segundo es un identificador único.

Archivos CSV

```
S3://bucket_name/results/<queryid>_<UUID>.csv
S3://bucket_name/results/<partitioncolumn>=<partitionvalue>/<queryid>_<UUID>.csv
```

Archivo CSV sin comprimir

```
S3://bucket_name/results/<partitioncolumn>=<partitionvalue>/<queryid>_<UUID>.gz 
```

Archivo Parquet

```
S3://bucket_name/results/<partitioncolumn>=<partitionvalue>/<queryid>_<UUID>.parquet
```

Metadatos y archivos de manifiesto

```
S3://bucket_name/<queryid>_<UUID>_manifest.json 
S3://bucket_name/<queryid>_<UUID>_metadata.json
```

Como los datos en formato CSV se almacenan a nivel de archivo, al comprimir los datos al exportarlos a S3, el archivo tendrá la extensión “.gz”. Sin embargo, los datos de Parquet se comprimen a nivel de columna, por lo que incluso si comprime los datos durante la exportación, el archivo seguirá teniendo la extensión .parquet.

## ¿Qué información tiene cada archivo?
<a name="export-unload-common-questions-what-information"></a>

### Archivo de manifiesto
<a name="export-unload-common-questions-what-information-manifest"></a>

El archivo de manifiesto proporciona información sobre la lista de archivos que se exportan con la ejecución de UNLOAD. El archivo de manifiesto está disponible en el bucket de S3 proporcionado con un nombre de archivo: `s3://<bucket_name>/<queryid>_<UUID>_manifest.json`. El archivo de manifiesto contendrá la URL de los archivos de la carpeta de resultados, el número de registros y el tamaño de los archivos respectivos, y los metadatos de la consulta (que son el total de bytes y filas exportados a S3 para la consulta). 

```
{
  "result_files": [
    {
        "url":"s3://my_timestream_unloads/ec2_metrics/AEDAGANLHLBH4OLISD3CVOZZRWPX5GV2XCXRBKCVD554N6GWPWWXBP7LSG74V2Q_1448466917_szCL4YgVYzGXj2lS.gz", 
        "file_metadata": 
            { 
                "content_length_in_bytes": 32295, 
                "row_count": 10 
            }
    },
    {
        "url":"s3://my_timestream_unloads/ec2_metrics/AEDAGANLHLBH4OLISD3CVOZZRWPX5GV2XCXRBKCVD554N6GWPWWXBP7LSG74V2Q_1448466917_szCL4YgVYzGXj2lS.gz", 
        "file_metadata": 
            { 
                "content_length_in_bytes": 62295, 
                "row_count": 20 
            }
    },
  ],
  "query_metadata": 
    {
      "content_length_in_bytes": 94590, 
      "total_row_count": 30,
      "result_format": "CSV",
      "result_version": "Amazon Timestream version 1.0.0"  
    },
  "author": {
        "name": "Amazon Timestream", 
        "manifest_file_version": "1.0" 
  }
}
```

### Metadatos
<a name="export-unload-common-questions-what-information-metadata"></a>

El archivo de metadatos proporciona información adicional sobre el conjunto de datos, como el nombre de la columna, el tipo de columna y el esquema. El archivo de metadatos está disponible en el bucket de S3 proporcionado con un nombre de archivo: S3://bucket\$1name/<queryid>\$1<UUID>\$1metadata.json 

A continuación, se muestra un ejemplo de un archivo de metadatos.

```
{
    "ColumnInfo": [
        {
            "Name": "hostname",
            "Type": {
                "ScalarType": "VARCHAR"
            }
        },
        {
            "Name": "region",
            "Type": {
                "ScalarType": "VARCHAR"
            }
        },
        {
            "Name": "measure_name",
            "Type": {
                "ScalarType": "VARCHAR"
            }
        },
        {
            "Name": "cpu_utilization",
            "Type": {
                "TimeSeriesMeasureValueColumnInfo": {
                    "Type": {
                        "ScalarType": "DOUBLE"
                    }
                }
            }
        }
  ],
  "Author": {
        "Name": "Amazon Timestream", 
        "MetadataFileVersion": "1.0" 
  }
}
```

La información de las columnas que se comparte en el archivo de metadatos tiene la misma estructura que `ColumnInfo` la que se envía en la respuesta de la API de consultas a las consultas `SELECT`. 

### Resultados
<a name="export-unload-common-questions-what-information-results"></a>

La carpeta de resultados contiene los datos exportados en formato Apache Parquet o CSV. 

## Ejemplo
<a name="export-unload-example-short"></a>

Al enviar una consulta `UNLOAD` como la que se muestra a continuación a través de la API de consultas,

```
UNLOAD(SELECT user_id, ip_address, event, session_id, measure_name, time, query, quantity, product_id, channel 
                    FROM sample_clickstream.sample_shopping WHERE time BETWEEN ago(2d) AND now()) 
                TO 's3://my_timestream_unloads/withoutpartition/' WITH ( format='CSV', compression='GZIP')
```

la respuesta a la consulta `UNLOAD` tendrá 1 fila x 3 columnas. Esas 3 columnas son de la siguiente manera:
+ filas de tipo BIGINT, que indican el número de filas que se exportaron
+ metadataFile de tipo VARCHAR, que es el URI S3 del archivo de metadatos exportado
+ manifestFile de tipo VARCHAR, que es el URI de S3 del archivo de manifiesto exportado

Obtendrá la siguiente respuesta de la API de consultas:

```
{
    "Rows": [
        {
            "Data": [
                {
                    "ScalarValue": "20" # No of rows in output across all files
                },
                {
                    "ScalarValue": "s3://my_timestream_unloads/withoutpartition/AEDAAANGH3D7FYHOBQGQQMEAISCJ45B42OWWJMOT4N6RRJICZUA7R25VYVOHJIY_<UUID>_metadata.json" #Metadata file
                },
                {
                    "ScalarValue": "s3://my_timestream_unloads/withoutpartition/AEDAAANGH3D7FYHOBQGQQMEAISCJ45B42OWWJMOT4N6RRJICZUA7R25VYVOHJIY_<UUID>_manifest.json" #Manifest file
                }
            ]
        }
    ],
    "ColumnInfo": [
        {
            "Name": "rows",
            "Type": {
                "ScalarType": "BIGINT"
            }
        },
        {
            "Name": "metadataFile",
            "Type": {
                "ScalarType": "VARCHAR"
            }
        },
        {
            "Name": "manifestFile",
            "Type": {
                "ScalarType": "VARCHAR"
            }
        }
    ],
    "QueryId": "AEDAAANGH3D7FYHOBQGQQMEAISCJ45B42OWWJMOT4N6RRJICZUA7R25VYVOHJIY",
    "QueryStatus": {
        "ProgressPercentage": 100.0,
        "CumulativeBytesScanned": 1000,
        "CumulativeBytesMetered": 10000000
    }
}
```

## Tipos de datos
<a name="export-unload-data-types-explanation"></a>

La `UNLOAD` declaración admite todos los tipos de datos del lenguaje de consulta de Timestream para LiveAnalytics el que se describe en, excepto y. [Tipos de datos compatibles](supported-data-types.md) `time` `unknown`

# Requisitos previos para UNLOAD from Timestream para LiveAnalytics
<a name="export-unload-prerequisites"></a>

Los siguientes son los requisitos previos para escribir datos en S3 utilizando From Timestream for. `UNLOAD` LiveAnalytics
+ Debe tener permiso para leer los datos del Timestream para poder LiveAnalytics utilizarlos en un comando. `UNLOAD`
+ Debe tener un bucket de Amazon S3 en la misma AWS región que su Timestream para obtener LiveAnalytics recursos.
+ Para el bucket de S3 seleccionado, asegúrese de que la [política de bucket de S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html) también tenga permisos que permitan a Timestream exportar los datos LiveAnalytics .
+ Las credenciales utilizadas para ejecutar la `UNLOAD` consulta deben tener los permisos de AWS Identity and Access Management (IAM) necesarios para LiveAnalytics que Timestream pueda escribir los datos en S3. Un ejemplo de política sería el siguiente:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Effect": "Allow",
            "Action": [
                "timestream:Select",
                "timestream:ListMeasures",
                "timestream:WriteRecords",
                "timestream:Unload"
            ],
            "Resource": "arn:aws:timestream:us-east-2:111122223333:database/database_name/table/table_name"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketAcl",
                "s3:PutObject",
                "s3:GetObject",
                "s3:AbortMultipartUpload"
            ],
            "Resource": [
                "arn:aws:s3:::S3_Bucket_Created",
                "arn:aws:s3:::S3_Bucket_Created/*"
            ]
        }
    ]
}
```

------

Para obtener más información sobre estos permisos de escritura de S3, consulte la [guía de Amazon Simple Storage Service](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions). Si utiliza una clave KMS para cifrar los datos exportados, consulte lo siguiente para conocer las políticas de IAM adicionales requeridas.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
            "kms:DescribeKey",
            "kms:Decrypt",
            "kms:GenerateDataKey*"
        ],
        "Resource": "arn:aws:kms:us-east-2:111122223333:key/*",
        "Condition": {
            "ForAnyValue:StringLike": {
                "kms:ResourceAliases": "alias/Alias_For_Generated_Key"
            }
        }
    }, {
        "Effect": "Allow",
        "Action": [
            "kms:CreateGrant"
        ],
        "Resource": "arn:aws:kms:us-east-2:111122223333:key/*",
        "Condition": {
            "ForAnyValue:StringEquals": {
                "kms:EncryptionContextKeys": "aws:timestream:database_name"
            },
            "Bool": {
                "kms:GrantIsForAWSResource": true
            },
            "StringLike": {
                "kms:ViaService": "timestream.us-east-2.amazonaws.com"
            },
            "ForAnyValue:StringLike": {
                "kms:ResourceAliases": "alias/Alias_For_Generated_Key"
            }
        }
    }
]
}
```

------

# Prácticas recomendadas para UNLOAD from Timestream para LiveAnalytics
<a name="export-unload-best-practices"></a>

A continuación, se muestran las prácticas recomendadas relacionadas con la instrucción UNLOAD.
+ La cantidad de datos que se pueden exportar al bucket de S3 mediante el comando `UNLOAD` no está limitada. Sin embargo, la consulta agota el tiempo de espera en 60 minutos y recomendamos no exportar más de 60 GB de datos en una sola consulta. Si necesita exportar más de 60 GB de datos, divida el trabajo en varias consultas.
+ Si bien puede enviar miles de solicitudes a S3 para cargar los datos, se recomienda paralelizar las operaciones de escritura con varios prefijos de S3. Consulte la documentación [aquí](https://docs.aws.amazon.com/AmazonS3/latest/userguide/optimizing-performance.html). La frecuencia de llamadas a la API de S3 podría reducirse cuando se accede a la misma carpeta de forma múltiple readers/writers . 
+ Dado el límite de longitud de las claves de S3 para definir un prefijo, recomendamos que los nombres del bucket y de las carpetas tengan entre 10 y 15 caracteres, especialmente cuando se utilice una cláusula `partitioned_by`. 
+ Si recibe un 4XX o 5XX para las consultas que contienen la instrucción `UNLOAD`, es posible que los resultados parciales se escriban en el bucket de S3. Timestream for LiveAnalytics no elimina ningún dato de tu bucket. Antes de ejecutar otra consulta `UNLOAD` con el mismo destino de S3, se recomienda eliminar manualmente los archivos creados por la consulta fallida. Puede identificar los archivos escritos por una consulta fallida con la información correspondiente `QueryExecutionId`. En el caso de las consultas fallidas, Timestream for LiveAnalytics no exporta un archivo de manifiesto al bucket de S3. 
+ Timestream for LiveAnalytics utiliza la carga en varias partes para exportar los resultados de las consultas a S3. Cuando recibes un 4XX o 5XX de Timestream para consultas que contienen una sentencia UNLOAD, Timestream LiveAnalytics for LiveAnalytics hace todo lo posible por evitar la carga de varias partes, pero es posible que queden algunas partes incompletas. Por lo tanto, le recomendamos configurar una limpieza automática de las cargas incompletas de varias partes en su bucket de S3 siguiendo las instrucciones que se indican [aquí](https://aws.amazon.com/blogs/aws-cloud-financial-management/discovering-and-deleting-incomplete-multipart-uploads-to-lower-amazon-s3-costs/).

## Recomendaciones para acceder a los datos en formato CSV mediante el analizador CSV
<a name="export-unload-common-questions-what-information-recommendations-csv"></a>
+ Los analizadores de CSV no permiten utilizar el mismo carácter de delimitador, escape y cita.
+ Algunos analizadores de CSV no pueden interpretar tipos de datos complejos, como las matrices, por lo que recomendamos interpretarlos mediante el deserializador JSON. 

## Recomendaciones para acceder a los datos en formato Parquet
<a name="export-unload-common-questions-what-information-recommendations-parquet"></a>

1. Si su caso de uso requiere el soporte de caracteres UTF-8 en el esquema, también conocido como nombre de columna, le recomendamos que utilice la [biblioteca Parquet-mr](https://github.com/apache/parquet-mr).

1. La marca de tiempo de los resultados se representa como un entero de 12 bytes () INT96

1. Las series temporales se representarán como `array<row<time, value>>`, otras estructuras anidadas utilizarán los tipos de datos correspondientes compatibles con el formato Parquet

## Uso de la cláusula partition\$1by
<a name="export-unload-best-practices-partition-by"></a>
+ La columna utilizada en el campo `partitioned_by` debe ser la última columna en la consulta de selección. Si se usa más de una columna en el campo `partitioned_by`, las columnas deben ser las últimas columnas de la consulta de selección y estar en el mismo orden en que se usaron en el campo `partition_by`.
+ Los valores de las columnas utilizados para dividir los datos (campo `partitioned_by`) solo pueden contener caracteres ASCII. Mientras que Timestream for LiveAnalytics permite caracteres UTF-8 en los valores, S3 solo admite caracteres ASCII como claves de objeto.

# Ejemplo de caso de uso de UNLOAD from Timestream para LiveAnalytics
<a name="export-unload-example-use-case"></a>

Suponga que está supervisando las métricas de las sesiones de los usuarios, las fuentes de tráfico y las compras de los productos de su sitio web de comercio electrónico. Estás utilizando Timestream LiveAnalytics para obtener información en tiempo real sobre el comportamiento de los usuarios y las ventas de productos y realizar análisis de marketing sobre los canales de tráfico (búsquedas orgánicas, redes sociales, tráfico directo, campañas de pago, etc.) que llevan a los clientes al sitio web. 

**Topics**
+ [Exportación de los datos sin particiones](#export-unload-example-sample-1)
+ [Particiones de datos por canal](#export-unload-example-sample-2)
+ [Particiones de datos por evento](#export-unload-example-sample-3)
+ [Dividir los datos por canal y evento](#export-unload-example-sample-4)
+ [Archivos de manifiestos y metadatos](#export-unload-example-manifest-metadata)
+ [Uso de rastreadores de Glue para crear el catálogo de datos de Glue](#export-unload-example-using-glue-crawlers)

## Exportación de los datos sin particiones
<a name="export-unload-example-sample-1"></a>

Desea exportar los dos últimos días de sus datos en formato CSV.

```
UNLOAD(SELECT user_id, ip_address, event, session_id, measure_name, time, 
query, quantity, product_id, channel 
FROM sample_clickstream.sample_shopping 
WHERE time BETWEEN ago(2d) AND now())  
TO 's3://<bucket_name>/withoutpartition' 
WITH (  format='CSV',   
compression='GZIP')
```

## Particiones de datos por canal
<a name="export-unload-example-sample-2"></a>

Desea exportar los datos de los dos últimos días en formato CSV, pero le gustaría tener los datos de cada canal de tráfico en una carpeta independiente. Para ello, debe dividir los datos mediante la columna `channel` que se muestra a continuación.

```
UNLOAD(SELECT user_id, ip_address, event, session_id, measure_name, time, 
query, quantity, product_id, channel 
FROM sample_clickstream.sample_shopping 
WHERE time BETWEEN ago(2d) AND now())  
TO 's3://<bucket_name>/partitionbychannel/' 
WITH (  
partitioned_by = ARRAY ['channel'], 
format='CSV',   
compression='GZIP')
```

## Particiones de datos por evento
<a name="export-unload-example-sample-3"></a>

Desea exportar los datos de los dos últimos días en formato CSV, pero le gustaría tener los datos para cada evento de tráfico en una carpeta independiente. Para ello, debe dividir los datos mediante la columna `event` que se muestra a continuación.

```
UNLOAD(SELECT user_id, ip_address, channel, session_id, measure_name, time, 
query, quantity, product_id, event 
FROM sample_clickstream.sample_shopping 
WHERE time BETWEEN ago(2d) AND now())  
TO 's3://<bucket_name>/partitionbyevent/' 
WITH (  
partitioned_by = ARRAY ['event'], 
format='CSV',   
compression='GZIP')
```

## Dividir los datos por canal y evento
<a name="export-unload-example-sample-4"></a>

Desea exportar los datos de los dos últimos días en formato CSV, pero le gustaría tener los datos para cada canal y dentro de cada evento del almacén del canal en una carpeta independiente. Para ello, debe dividir los datos mediante la columna `channel` y `event` que se muestra a continuación.

```
UNLOAD(SELECT user_id, ip_address, session_id, measure_name, time, 
query, quantity, product_id, channel,event 
FROM sample_clickstream.sample_shopping 
WHERE time BETWEEN ago(2d) AND now())  
TO 's3://<bucket_name>/partitionbychannelevent/' 
WITH (  
partitioned_by = ARRAY ['channel','event'], 
format='CSV',   
compression='GZIP')
```

## Archivos de manifiestos y metadatos
<a name="export-unload-example-manifest-metadata"></a>

### Archivo de manifiesto
<a name="export-unload-common-questions-what-information-manifest"></a>

El archivo de manifiesto proporciona información sobre la lista de archivos que se exportan con la ejecución de UNLOAD. El archivo de manifiesto está disponible en el bucket de S3 proporcionado con un nombre de archivo: `S3://bucket_name/<queryid>_<UUID>_manifest.json`. El archivo de manifiesto contendrá la URL de los archivos de la carpeta de resultados, el número de registros y el tamaño de los archivos respectivos, y los metadatos de la consulta (que son el total de bytes y filas exportados a S3 para la consulta). 

```
{
  "result_files": [
    {
        "url":"s3://my_timestream_unloads/ec2_metrics/AEDAGANLHLBH4OLISD3CVOZZRWPX5GV2XCXRBKCVD554N6GWPWWXBP7LSG74V2Q_1448466917_szCL4YgVYzGXj2lS.gz", 
        "file_metadata": 
            { 
                "content_length_in_bytes": 32295, 
                "row_count": 10 
            }
    },
    {
        "url":"s3://my_timestream_unloads/ec2_metrics/AEDAGANLHLBH4OLISD3CVOZZRWPX5GV2XCXRBKCVD554N6GWPWWXBP7LSG74V2Q_1448466917_szCL4YgVYzGXj2lS.gz", 
        "file_metadata": 
            { 
                "content_length_in_bytes": 62295, 
                "row_count": 20 
            }
    },
  ],
  "query_metadata": 
    {
      "content_length_in_bytes": 94590, 
      "total_row_count": 30,
      "result_format": "CSV",
      "result_version": "Amazon Timestream version 1.0.0"  
    },
  "author": {
        "name": "Amazon Timestream", 
        "manifest_file_version": "1.0" 
  }
}
```

### Metadatos
<a name="export-unload-common-questions-what-information-metadata"></a>

El archivo de metadatos proporciona información adicional sobre el conjunto de datos, como el nombre de la columna, el tipo de columna y el esquema. El archivo de metadatos está disponible en el bucket de S3 proporcionado con un nombre de archivo: S3://bucket\$1name/<queryid>\$1<UUID>\$1metadata.json 

A continuación, se muestra un ejemplo de un archivo de metadatos.

```
{
    "ColumnInfo": [
        {
            "Name": "hostname",
            "Type": {
                "ScalarType": "VARCHAR"
            }
        },
        {
            "Name": "region",
            "Type": {
                "ScalarType": "VARCHAR"
            }
        },
        {
            "Name": "measure_name",
            "Type": {
                "ScalarType": "VARCHAR"
            }
        },
        {
            "Name": "cpu_utilization",
            "Type": {
                "TimeSeriesMeasureValueColumnInfo": {
                    "Type": {
                        "ScalarType": "DOUBLE"
                    }
                }
            }
        }
  ],
  "Author": {
        "Name": "Amazon Timestream", 
        "MetadataFileVersion": "1.0" 
  }
}
```

La información de las columnas que se comparte en el archivo de metadatos tiene la misma estructura que `ColumnInfo` la que se envía en la respuesta de la API de consultas a las consultas `SELECT`. 

## Uso de rastreadores de Glue para crear el catálogo de datos de Glue
<a name="export-unload-example-using-glue-crawlers"></a>

1. Inicie sesión en su cuenta con las credenciales de administrador para la siguiente validación.

1. Cree un rastreador para la base de datos de Glue siguiendo las pautas que se proporcionan [aquí](https://docs.aws.amazon.com/glue/latest/ug/tutorial-add-crawler.html). Tenga en cuenta que la carpeta S3 que se debe proporcionar en el origen de datos debe ser la carpeta de resultados de `UNLOAD`, por ejemplo `s3://my_timestream_unloads/results`.

1. Ejecute el rastreador siguiendo las pautas que se indican [aquí](https://docs.aws.amazon.com/glue/latest/ug/tutorial-add-crawler.html#tutorial-add-crawler-step2).

1. Vea la tabla de Glue.
   + Diríjase a **AWS Glue** → **Tablas**.
   + Verá una nueva tabla creada con el prefijo de tabla proporcionado al momento de crear el rastreador.
   + Puede ver la información del esquema y la división haciendo clic en la vista de detalles de la tabla.

Los siguientes son otros AWS servicios y proyectos de código abierto que utilizan el catálogo de datos de AWS Glue.
+ **Amazon Athena**: para obtener más información, consulte [Descripción de las tablas, bases de datos y el catálogo de datos](https://docs.aws.amazon.com/athena/latest/ug/understanding-tables-databases-and-the-data-catalog.html) en la Guía del usuario de Amazon Athena.
+ **Amazon Redshift Spectrum**: para obtener más información, consulte [Uso de Amazon Redshift Spectrum para consultar datos externos](https://docs.aws.amazon.com/redshift/latest/dg/c-using-spectrum.html) en la Guía para desarrolladores de bases de datos Amazon Redshift.
+ **Amazon EMR**: para obtener más información, consulte [Uso de políticas basadas en recursos para el acceso de Amazon EMR al catálogo de AWS datos de Glue en la](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-roles-glue.html) Guía de administración de Amazon EMR.
+ **AWS Cliente de Glue Data Catalog para Apache Hive Metastore**: para obtener más información sobre este GitHub proyecto, consulte [Cliente de AWS Glue Data Catalog para Apache Hive](https://github.com/awslabs/aws-glue-data-catalog-client-for-apache-hive-metastore) Metastore.

# Límites de descarga desde Timestream para LiveAnalytics
<a name="export-unload-limits"></a>

Los siguientes son los límites relacionados con el comando `UNLOAD`.
+ La simultaneidad de las consultas que utilizan la instrucción `UNLOAD` es de 1 consulta por segundo (QPS). Superar la tasa de consultas puede dar como resultado las limitaciones.
+ Las consultas que contienen la instrucción `UNLOAD` pueden exportar como máximo 100 divisiones por consulta. Se recomienda verificar el recuento específico de la columna seleccionada antes de utilizarla para particionar los datos exportados.
+ Las consultas que contienen el tiempo de espera de la instrucción `UNLOAD` después de 60 minutos.
+ El tamaño máximo de los archivos que la instrucción `UNLOAD` crea en Amazon S3 es 78 GB.

Para conocer otros límites de Timestream for, consulte LiveAnalytics [CuotasCuotas predeterminadas](ts-limits.md)