

Pour des fonctionnalités similaires à celles d'Amazon Timestream pour, pensez à Amazon Timestream LiveAnalytics pour InfluxDB. Il permet une ingestion simplifiée des données et des temps de réponse aux requêtes à un chiffre en millisecondes pour des analyses en temps réel. Pour en savoir plus, [cliquez ici](https://docs.aws.amazon.com//timestream/latest/developerguide/timestream-for-influxdb.html).

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Prise en charge de SQL
<a name="supported-sql-constructs"></a>

Timestream for LiveAnalytics prend en charge certaines constructions SQL courantes. Vous pouvez en lire plus ci-dessous.

**Topics**
+ [SELECT](supported-sql-constructs.SELECT.md)
+ [Support des sous-requêtes](supported-sql-constructs.subquery-support.md)
+ [AFFICHER les déclarations](supported-sql-constructs.SHOW.md)
+ [DÉCRIVEZ les déclarations](supported-sql-constructs.DESCRIBE.md)
+ [UNLOAD](supported-sql-constructs.UNLOAD.md)

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

Les instructions **SELECT** peuvent être utilisées pour récupérer les données d'une ou de plusieurs tables. Le langage de requête de Timestream prend en charge la syntaxe suivante pour les instructions **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 ] ]
```

où 
+ `function (expression)`est l'une des [fonctions de fenêtre](window-functions.md) prises en charge.
+ `partition_expr_list`c'est :

  ```
  expression | column_name [, expr_list ]
  ```
+ `order_list`c'est :

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

  ```
  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`est l'un des suivants :

  ```
  table_name [ [ AS ] alias [ ( column_alias [, ...] ) ] ]
  from_item join_type from_item [ ON join_condition | USING ( join_column [, ...] ) ]
  ```
+ `join_type`est l'un des suivants :

  ```
  [ INNER ] JOIN
  LEFT [ OUTER ] JOIN
  RIGHT [ OUTER ] JOIN
  FULL [ OUTER ] JOIN
  ```
+ `grouping_element`est l'un des suivants :

  ```
  ()
  expression
  ```

# Support des sous-requêtes
<a name="supported-sql-constructs.subquery-support"></a>

 Timestream prend en charge les sous-requêtes et les prédicats. `EXISTS` `IN` Le `EXISTS` prédicat détermine si une sous-requête renvoie des lignes. Le `IN` prédicat détermine si les valeurs produites par la sous-requête correspondent aux valeurs ou à l'expression de la clause IN. Le langage de requête Timestream prend en charge les sous-requêtes corrélées et autres. 

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

# AFFICHER les déclarations
<a name="supported-sql-constructs.SHOW"></a>

Vous pouvez consulter toutes les bases de données d'un compte à l'aide du `SHOW DATABASES` relevé. La syntaxe est la suivante :

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

où la `LIKE` clause peut être utilisée pour filtrer les noms de base de données.

Vous pouvez consulter tous les tableaux d'un compte à l'aide du `SHOW TABLES` relevé. La syntaxe est la suivante :

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

où la `FROM` clause peut être utilisée pour filtrer les noms de base de données et la `LIKE` clause pour filtrer les noms de tables.

Vous pouvez afficher toutes les mesures d'un tableau à l'aide de l'`SHOW MEASURES`instruction. La syntaxe est la suivante :

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

où la `FROM` clause sera utilisée pour spécifier le nom de la base de données et de la table et où la `LIKE` clause peut être utilisée pour filtrer les noms des mesures.

# DÉCRIVEZ les déclarations
<a name="supported-sql-constructs.DESCRIBE"></a>

Vous pouvez afficher les métadonnées d'une table à l'aide de l'`DESCRIBE`instruction. La syntaxe est la suivante :

```
DESCRIBE database.table
```

où `table` contient le nom de la table. L'instruction describe renvoie les noms des colonnes et les types de données de la table.

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

Timestream for LiveAnalytics prend en charge une `UNLOAD` commande en tant qu'extension de son support SQL. Les types de données pris en charge par `UNLOAD` sont décrits dans[Types de données pris en charge](supported-data-types.md). Les `unknown` types `time` et ne s'appliquent pas à`UNLOAD`.

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

où se trouve l'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>'
}
```

Déclaration SELECT  
L'instruction de requête utilisée pour sélectionner et récupérer les données d'un ou de plusieurs Timestream pour les LiveAnalytics tables.   

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

Clause TO  

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

```
TO 's3://access-point-alias/folder'
```
La `TO` clause contenue dans l'`UNLOAD`instruction indique la destination de sortie des résultats de la requête. Vous devez fournir le chemin complet, y compris soit le nom du compartiment Amazon S3, soit Amazon S3 access-point-alias avec l'emplacement du dossier sur Amazon S3 où Timestream for LiveAnalytics écrit les objets du fichier de sortie. Le compartiment S3 doit appartenir au même compte et se trouver dans la même région. Outre le jeu de résultats de la requête, Timestream for LiveAnalytics écrit le manifeste et les fichiers de métadonnées dans le dossier de destination spécifié. 

Clause PARTITIONED\$1BY  

```
partitioned_by = ARRAY [col_name[,…] , (default: none)
```
La `partitioned_by` clause est utilisée dans les requêtes pour regrouper et analyser les données à un niveau granulaire. Lorsque vous exportez les résultats de votre requête vers le compartiment S3, vous pouvez choisir de partitionner les données en fonction d'une ou de plusieurs colonnes de la requête de sélection. Lors du partitionnement des données, les données exportées sont divisées en sous-ensembles en fonction de la colonne de partition et chaque sous-ensemble est stocké dans un dossier distinct. Dans le dossier de résultats qui contient vos données exportées, un sous-dossier `folder/results/partition column = partition value/` est automatiquement créé. Notez toutefois que les colonnes partitionnées ne sont pas incluses dans le fichier de sortie.   
`partitioned_by`n'est pas une clause obligatoire dans la syntaxe. Si vous choisissez d'exporter les données sans partitionnement, vous pouvez exclure la clause dans la syntaxe.   

**Example**  
En supposant que vous surveillez les données du flux de clics de votre site Web et que vous disposiez de 5 canaux de trafic `direct``Social Media`, à savoir`Organic Search`,`Other`, et`Referral`. Lorsque vous exportez les données, vous pouvez choisir de les partitionner à l'aide de la colonne`Channel`. Dans votre dossier de données`s3://bucketname/results`, vous aurez cinq dossiers portant chacun leur nom de chaîne respectif. Par exemple, `s3://bucketname/results/channel=Social Media/.` dans ce dossier, vous trouverez les données de tous les clients qui ont accédé à votre site Web via le `Social Media` canal. De même, vous aurez d'autres dossiers pour les chaînes restantes.
Données exportées partitionnées par colonne de canal  

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


FORMAT  

```
format = [ '{ CSV | PARQUET }' , default: CSV
```
Les mots clés permettant de spécifier le format des résultats de requête écrits dans votre compartiment S3. Vous pouvez exporter les données soit sous forme de valeur séparée par des virgules (CSV) en utilisant une virgule (,) comme séparateur par défaut, soit au format Apache Parquet, un format de stockage en colonnes ouvert efficace pour les analyses. 

COMPRESSION  

```
compression = [ '{ GZIP | NONE }' ], default: GZIP
```
Vous pouvez compresser les données exportées à l'aide de l'algorithme de compression GZIP ou les décompresser en spécifiant l'`NONE`option.

CHIFFREMENT  

```
encryption = [ '{ SSE_KMS | SSE_S3 }' ], default: SSE_S3
```
Les fichiers de sortie sur Amazon S3 sont chiffrés à l'aide de l'option de chiffrement que vous avez sélectionnée. Outre vos données, le manifeste et les fichiers de métadonnées sont également chiffrés en fonction de l'option de chiffrement que vous avez sélectionnée. Nous prenons actuellement en charge le chiffrement SSE\$1S3 et SSE\$1KMS. SSE\$1S3 est un chiffrement côté serveur, Amazon S3 chiffrant les données à l'aide d'un chiffrement AES (Advanced Encryption Standard) 256 bits. SSE\$1KMS est un chiffrement côté serveur qui permet de chiffrer les données à l'aide de clés gérées par le client.

KMS\$1KEY  

```
kms_key = '<string>'
```
La clé KMS est une clé définie par le client pour chiffrer les résultats de requête exportés. La clé KMS est gérée de manière sécurisée par le service de gestion des AWS clés (AWS KMS) et utilisée pour chiffrer les fichiers de données sur Amazon S3.

DÉLIMITEUR DE CHAMP  

```
field_delimiter ='<character>' , default: (,)
```
Lors de l'exportation des données au format CSV, ce champ spécifie un seul caractère ASCII utilisé pour séparer les champs du fichier de sortie, tel qu'un tube (\$1), une virgule (,) ou un onglet (/t). Le délimiteur par défaut pour les fichiers CSV est un caractère de virgule. Si une valeur de vos données contient le délimiteur choisi, celui-ci sera mis entre guillemets. Par exemple, si la valeur de vos données contient`Time,stream`, elle sera indiquée entre guillemets comme `"Time,stream"` dans les données exportées. Les guillemets utilisés par Timestream LiveAnalytics sont des guillemets doubles («).  
Évitez de spécifier le caractère de renvoi (ASCII 13, hexadécimal`0D`, texte « \$1 r ») ou le caractère de saut de ligne (ASCII 10, hexadécimal 0A, texte «\$1n») `FIELD_DELIMITER` si vous souhaitez inclure des en-têtes dans le CSV, car cela empêcherait de nombreux analyseurs de les analyser correctement dans la sortie CSV résultante.

ÉVADÉ PAR  

```
escaped_by = '<character>', default: (\)
```
Lors de l'exportation des données au format CSV, ce champ indique le caractère qui doit être traité comme un caractère d'échappement dans le fichier de données écrit dans le compartiment S3. L'évasion se produit dans les scénarios suivants :  

1. Si la valeur elle-même contient le caractère guillemet («), elle sera échappée à l'aide d'un caractère d'échappement. Par exemple, si la valeur est`Time"stream`, où (\$1) est le caractère d'échappement configuré, il sera échappé en tant que`Time\"stream`. 

1. Si la valeur contient le caractère d'échappement configuré, il sera échappé. Par exemple, si la valeur est`Time\stream`, elle sera ignorée en tant que`Time\\stream`. 
Si la sortie exportée contient des types de données complexes tels que des tableaux, des lignes ou des séries temporelles, elle sera sérialisée sous forme de chaîne JSON. Voici un exemple.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/timestream/latest/developerguide/supported-sql-constructs.UNLOAD.html)

INCLUDE\$1EN-TÊTE  

```
include_header = 'true' , default: 'false'
```
Lorsque vous exportez les données au format CSV, ce champ vous permet d'inclure les noms de colonnes dans la première ligne des fichiers de données CSV exportés.  
Les valeurs acceptées sont « vrai » et « faux » et la valeur par défaut est « faux ». Les options de transformation de texte telles que `escaped_by` et `field_delimiter` s'appliquent également aux en-têtes.  
Lorsque vous incluez des en-têtes, il est important de ne pas sélectionner un caractère de renvoi (ASCII 13, hexadécimal 0D, texte « \$1 r ») ou un caractère de saut de ligne (ASCII 10, hexadécimal 0A, texte «\$1n»)`FIELD_DELIMITER`, car cela empêcherait de nombreux analyseurs d'analyser correctement les en-têtes dans la sortie CSV résultante.

TAILLE MAXIMALE DU FICHIER  

```
max_file_size = 'X[MB|GB]' , default: '78GB'
```
Ce champ indique la taille maximale des fichiers créés par l'`UNLOAD`instruction dans Amazon S3. L'`UNLOAD`instruction peut créer plusieurs fichiers, mais la taille maximale de chaque fichier écrit sur Amazon S3 sera approximativement celle spécifiée dans ce champ.  
La valeur du champ doit être comprise entre 16 Mo et 78 Go inclus. Vous pouvez le spécifier en nombre entier tel que`12GB`, ou en décimaux tels que `0.5GB` ou. `24.7MB` La valeur par défaut est de 78 Go.  
La taille réelle du fichier est approximative au moment de l'écriture du fichier, de sorte que la taille maximale réelle peut ne pas être exactement égale au nombre que vous spécifiez.