Beispiel für Amazon Data Firehose - Amazon Athena

Beispiel für Amazon Data Firehose

Wenn Sie Firehose verwenden, um Daten an Amazon S3 zu liefern, schreibt die Standardkonfiguration Objekte mit Schlüsseln, die wie im folgenden Beispiel aussehen:

s3://amzn-s3-demo-bucket/prefix/yyyy/MM/dd/HH/file.extension

Um eine Athena-Tabelle zu erstellen, die die Partitionen zur Abfragezeit automatisch findet, anstatt sie beim Eintreffen neuer Daten zum AWS Glue Data Catalog hinzufügen zu müssen, können Sie die Partitionsprojektion verwenden.

Im folgenden CREATE TABLE-Beispiel wird die Standardkonfiguration von Firehose verwendet.

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}/" )

Die TBLPROPERTIES-Klausel in der CREATE TABLE-Anweisung sagt Athena Folgendes:

  • Verwenden Sie Partitionsprojektion beim Abfragen der Tabelle

  • Der Partitionsschlüssel datehour ist vom Typ date (welcher eine optionale Zeit beinhaltet)

  • Wie die Daten formatiert werden

  • Der Bereich der Datumszeiten. Beachten Sie, dass die Werte durch Kommata voneinander getrennt werden müssen, nicht durch einen Bindestrich.

  • Wo Sie die Daten auf Amazon S3 finden.

Wenn Sie die Tabelle abfragen, berechnet Athena die Werte für datehour und erstellt mithilfe der Speicherortsvorlage eine Liste von Partitionsspeicherorten.