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.
Exemple d'Amazon Data Firehose
Lorsque vous utilisez Firehose pour transmettre des données à Amazon S3, la configuration par défaut écrit des objets avec des clés qui ressemblent à l'exemple suivant :
s3://amzn-s3-demo-bucket/prefix/yyyy/MM/dd/HH/file.extension
Pour créer une table Athena qui trouve les partitions automatiquement au moment de la requête, au lieu de devoir les ajouter à AWS Glue Data Catalog mesure que de nouvelles données arrivent, vous pouvez utiliser la projection de partitions.
L'CREATE TABLE
exemple suivant utilise la configuration Firehose par défaut.
CREATE EXTERNAL TABLE my_ingested_data ( ... ) ... PARTITIONED BY ( datehour STRING ) LOCATION "s3://amzn-s3-demo-bucket/
prefix
/" TBLPROPERTIES ( "projection.enabled" = "true", "projection.datehour.type" = "date", "projection.datehour.format" = "yyyy/MM/dd/HH", "projection.datehour.range" = "2021/01/01/00,NOW", "projection.datehour.interval" = "1", "projection.datehour.interval.unit" = "HOURS", "storage.location.template" = "s3://amzn-s3-demo-bucket/prefix
/${datehour}/" )
La clause TBLPROPERTIES
dans l'instruction CREATE TABLE
indique à Athena ce qui suit :
-
Utiliser la projection de partition lors de l'interrogation de la table
-
La clé de partition
datehour
est de typedate
(qui inclut une heure facultative) -
Comment les dates sont formatées
-
La plage de dates et heures. Notez que les valeurs doivent être séparées par une virgule, et non par un tiret.
-
Où trouver les données sur Amazon S3.
Lorsque vous interrogez la table, Athena calcule les valeurs pour datehour
et utilise le modèle d'emplacement de stockage pour générer une liste d'emplacements de partition.