

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.

# Compatibilidad con SQL
<a name="supported-sql-constructs"></a>

Timestream for LiveAnalytics es compatible con algunas construcciones SQL comunes. Puede obtener más información a continuación.

**Topics**
+ [

# SELECT
](supported-sql-constructs.SELECT.md)
+ [

# Soporte de subconsultas
](supported-sql-constructs.subquery-support.md)
+ [

# Instrucciones SHOW
](supported-sql-constructs.SHOW.md)
+ [

# Instrucciones DESCRIBE
](supported-sql-constructs.DESCRIBE.md)
+ [

# UNLOAD
](supported-sql-constructs.UNLOAD.md)

# SELECT
<a name="supported-sql-constructs.SELECT"></a>

Las instrucciones **SELECT** se pueden usar para recuperar datos de una o más tablas. El lenguaje de consulta de Timestream también admite la siguiente sintaxis para las instrucciones **SELECT**:

```
[ WITH with_query [, ...] ]
            SELECT [ ALL | DISTINCT ] select_expr [, ...]
            [ function (expression) OVER (
            [ PARTITION BY partition_expr_list ]
            [ ORDER BY order_list ]
            [ frame_clause ] )
            [ FROM from_item [, ...] ]
            [ WHERE condition ]
            [ GROUP BY [ ALL | DISTINCT ] grouping_element [, ...] ]
            [ HAVING condition]
            [ { UNION | INTERSECT | EXCEPT } [ ALL | DISTINCT ] select ]
            [ ORDER BY order_list ]
            [ LIMIT [ count | ALL ] ]
```

donde 
+ `function (expression)` es una de las [funciones de ventana](window-functions.md) compatibles.
+ `partition_expr_list` es:

  ```
  expression | column_name [, expr_list ]
  ```
+ `order_list` es:

  ```
  expression | column_name [ ASC | DESC ] 
  [ NULLS FIRST | NULLS LAST ]
  [, order_list ]
  ```
+ `frame_clause` es:

  ```
  ROWS | RANGE
  { UNBOUNDED PRECEDING | expression PRECEDING | CURRENT ROW } |
  {BETWEEN
  { UNBOUNDED PRECEDING | expression { PRECEDING | FOLLOWING } |
  CURRENT ROW}
  AND
  { UNBOUNDED FOLLOWING | expression { PRECEDING | FOLLOWING } |
  CURRENT ROW }}
  ```
+ `from_item` es uno de los siguientes:

  ```
  table_name [ [ AS ] alias [ ( column_alias [, ...] ) ] ]
  from_item join_type from_item [ ON join_condition | USING ( join_column [, ...] ) ]
  ```
+ `join_type` es uno de los siguientes:

  ```
  [ INNER ] JOIN
  LEFT [ OUTER ] JOIN
  RIGHT [ OUTER ] JOIN
  FULL [ OUTER ] JOIN
  ```
+ `grouping_element` es uno de los siguientes:

  ```
  ()
  expression
  ```

# Soporte de subconsultas
<a name="supported-sql-constructs.subquery-support"></a>

 Timestream admite subconsultas en predicados `EXISTS` y `IN`. El predicado `EXISTS` determina si una subconsulta devuelve alguna fila. El predicado `IN` determina si los valores que produce la subconsulta coinciden con los valores o la expresión de la cláusula IN. El lenguaje de consultas Timestream admite subconsultas correlacionadas y de otro tipo. 

```
SELECT t.c1
FROM (VALUES 1, 2, 3, 4, 5) AS t(c1)
WHERE EXISTS
(SELECT t.c2
 FROM (VALUES 1, 2, 3) AS t(c2)
 WHERE t.c1= t.c2
)
ORDER BY t.c1
```


| c1 | 
| --- | 
|  1  | 
|  2  | 
|  3  | 

```
SELECT t.c1
FROM (VALUES 1, 2, 3, 4, 5) AS t(c1)
WHERE t.c1 IN
(SELECT t.c2
 FROM (VALUES 2, 3, 4) AS t(c2)
)
ORDER BY t.c1
```


| c1 | 
| --- | 
|  2  | 
|  3  | 
|  4  | 

# Instrucciones SHOW
<a name="supported-sql-constructs.SHOW"></a>

Puede ver todas las bases de datos de una cuenta mediante la instrucción `SHOW DATABASES`. La sintaxis es la siguiente:

```
SHOW DATABASES [LIKE pattern]
```

donde la cláusula `LIKE` se puede usar para filtrar los nombres de las bases de datos.

Puede ver todas las tablas de una cuenta mediante la instrucción `SHOW TABLES`. La sintaxis es la siguiente:

```
SHOW TABLES [FROM database] [LIKE pattern]
```

donde la cláusula `FROM` se puede usar para filtrar los nombres de las bases de datos, y la cláusula `LIKE` se puede usar para filtrar los nombres de las tablas.

Puede ver todas las medidas de una tabla mediante la instrucción `SHOW MEASURES`. La sintaxis es la siguiente:

```
SHOW MEASURES FROM database.table [LIKE pattern]
```

donde la cláusula `FROM` se usará para especificar el nombre de la base de datos y la tabla, y la cláusula `LIKE` se puede usar para filtrar los nombres de las medidas.

# Instrucciones DESCRIBE
<a name="supported-sql-constructs.DESCRIBE"></a>

Puede ver los metadatos de una tabla mediante la instrucción `DESCRIBE`. La sintaxis es la siguiente:

```
DESCRIBE database.table
```

donde `table` contiene el nombre de la tabla. La instrucción describir devuelve los nombres de las columnas y los tipos de datos de la tabla.

# UNLOAD
<a name="supported-sql-constructs.UNLOAD"></a>

Timestream for LiveAnalytics admite un `UNLOAD` comando como extensión de su compatibilidad con SQL. Los tipos de datos compatibles con `UNLOAD` se describen en [Tipos de datos compatibles](supported-data-types.md). Los tipos `time` y `unknown` no se aplican a `UNLOAD`.

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

donde la opción es

```
{ 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>'
}
```

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/supported-sql-constructs.UNLOAD.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.