Exemple d'Amazon Data Firehose - Amazon Athena

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 TABLEexemple 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 type date (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.