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.
UNLOADConcepts
Syntaxe
UNLOAD (SELECT statement) TO 's3://bucket-name/folder' WITH ( option = expression [, ...] )
où se option
trouve
{ 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>' | }
Paramètres
- SELECTdéclaration
-
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 le nom du compartiment Amazon S3 ou 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é. - PARTITIONEDClause _BY
-
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-dossierfolder/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.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
, à savoirOrganic Search
,Other
, etReferral
. Lorsque vous exportez les données, vous pouvez choisir de les partitionner à l'aide de la colonneChannel
. Dans votre dossier de donnéess3://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 leSocial 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
- 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 d'un algorithme de compression GZIP ou les décompresser en spécifiant l'
NONE
option. - ENCRYPTION
-
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 KMS chiffrement SSE _S3 et SSE _. SSE_S3 est un chiffrement côté serveur, Amazon S3 chiffrant les données à l'aide d'un cryptage standard de chiffrement avancé () 256 bits. AES SSE_ KMS 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_KEY
-
kms_key = '<string>'
KMSLa clé est une clé définie par le client pour chiffrer les résultats de requête exportés. KMSLa clé 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.
- FIELD_DELIMITER
-
field_delimiter ='<character>' , default: (,)
Lors de l'exportation des données au CSV format, ce champ spécifie un seul ASCII caractère utilisé pour séparer les champs du fichier de sortie, tel qu'un tube (|), une virgule (,) ou un onglet (/t). Le séparateur par défaut pour les CSV fichiers est une 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 (ASCII13, hexadécimal
0D
, texte « \ r ») ou le caractère de saut de ligne (ASCII10, hexadécimal 0A, texte «\n») comme telFIELD_DELIMITER
si vous souhaitez inclure des en-têtes dans leCSV, car cela empêcherait de nombreux analyseurs de pouvoir analyser correctement les en-têtes dans la sortie résultante. CSV - ESCAPED_PAR
-
escaped_by = '<character>', default: (\)
Lors de l'exportation des données au CSV format, 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 :
-
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ù (\) est le caractère d'échappement configuré, il sera échappé en tant queTime\"stream
. -
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 queTime\\stream
.
Note
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.
Type de données Valeur réelle Comment la valeur est échappée au CSV format [JSONchaîne sérialisée] Tableau
[ 23,24,25 ]
"[23,24,25]"
Rangée
( x=23.0, y=hello )
"{\"x\":23.0,\"y\":\"hello\"}"
Chronologique
[ ( time=1970-01-01 00:00:00.000000010, value=100.0 ),( time=1970-01-01 00:00:00.000000012, value=120.0 ) ]
"[{\"time\":\"1970-01-01 00:00:00.000000010Z\",\"value\":100.0},{\"time\":\"1970-01-01 00:00:00.000000012Z\",\"value\":120.0}]"
-
- INCLUDE_HEADER
-
include_header = 'true' , default: 'false'
Lorsque vous exportez les données au CSV format, ce champ vous permet d'inclure les noms de colonnes dans la première ligne des fichiers de CSV données 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
etfield_delimiter
s'appliquent également aux en-têtes.Note
Lorsque vous incluez des en-têtes, il est important de ne pas sélectionner un caractère de renvoi (ASCII13, hexadécimal 0D, texte « \ r ») ou un caractère de saut de ligne (ASCII10, hexadécimal 0A, texte «\n») comme caractère
FIELD_DELIMITER
, car cela empêcherait de nombreux analyseurs de pouvoir analyser correctement les en-têtes dans le résultat obtenu. CSV - MAX_FILE_SIZE
-
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 que0.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.
Qu'est-ce qui est écrit dans mon compartiment S3 ?
Pour chaque UNLOAD requête exécutée avec succès, Timestream for LiveAnalytics écrit les résultats de la requête, le fichier de métadonnées et le fichier manifeste dans le compartiment S3. Si vous avez partitionné les données, tous les dossiers de partition se trouvent dans le dossier des résultats. Le fichier manifeste contient la liste des fichiers écrits par la UNLOAD commande. Le fichier de métadonnées contient des informations qui décrivent les caractéristiques, les propriétés et les attributs des données écrites.
Quel est le nom du fichier exporté ?
Le nom du fichier exporté contient deux composants, le premier est le QueryID et le second est un identifiant unique.
CSVfichiers
S3://bucket_name/results/<queryid>_<UUID>.csv S3://bucket_name/results/<partitioncolumn>=<partitionvalue>/<queryid>_<UUID>.csv
CSVFichier compressé
S3://bucket_name/results/<partitioncolumn>=<partitionvalue>/<queryid>_<UUID>.gz
Lime à parquet
S3://bucket_name/results/<partitioncolumn>=<partitionvalue>/<queryid>_<UUID>.parquet
Fichiers de métadonnées et de manifeste
S3://bucket_name/<queryid>_<UUID>_manifest.json S3://bucket_name/<queryid>_<UUID>_metadata.json
Comme les données au CSV format sont stockées au niveau du fichier, lorsque vous compressez les données lors de l'exportation vers S3, le fichier porte l'extension « .gz ». Cependant, les données de Parquet sont compressées au niveau des colonnes. Ainsi, même lorsque vous compressez les données lors de l'exportation, le fichier portera toujours l'extension .parquet.
Quelles sont les informations contenues dans chaque fichier ?
Fichier manifeste
Le fichier manifeste fournit des informations sur la liste des fichiers exportés lors de l'UNLOADexécution. Le fichier manifeste est disponible dans le compartiment S3 fourni sous le nom de fichier :s3://<bucket_name>/<queryid>_<UUID>_manifest.json
. Le fichier manifeste contiendra l'URL des fichiers du dossier de résultats, le nombre d'enregistrements et la taille des fichiers respectifs, ainsi que les métadonnées de la requête (c'est-à-dire le nombre total d'octets et le nombre total de lignes exportés vers S3 pour la requête).
{ "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" } }
Metadonnées
Le fichier de métadonnées fournit des informations supplémentaires sur l'ensemble de données, telles que le nom de colonne, le type de colonne et le schéma. <queryid>Le fichier de métadonnées est disponible dans le compartiment S3 fourni sous le nom de fichier : S3 : //bucket_name/ _< >_metadata.json UUID
Voici un exemple de fichier de métadonnées.
{ "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" } }
Les informations de colonne partagées dans le fichier de métadonnées ont la même structure que celle ColumnInfo
envoyée dans API la réponse aux SELECT
requêtes.
Résultats
Le dossier des résultats contient vos données exportées au format Apache Parquet ou CSV au format Apache.
Exemple
Lorsque vous soumettez une UNLOAD
requête comme ci-dessous via QueryAPI,
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')
UNLOAD
la réponse à la requête comportera 1 ligne* 3 colonnes. Ces 3 colonnes sont les suivantes :
-
lignes de type BIGINT : indique le nombre de lignes exportées
-
metadataFile de type VARCHAR - qui est le S3 URI du fichier de métadonnées exporté
-
manifestFile de type VARCHAR - qui est le S3 URI du fichier manifeste exporté
Vous obtiendrez la réponse suivante de Query API :
{ "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 } }
Types de données
La UNLOAD
déclaration prend en charge tous les types de données du langage de requête LiveAnalytics de Timestream for décrit dans Types de données pris en charge sauf time
et. unknown