Amazon Data Firehose 例 - Amazon Athena

Amazon Data Firehose 例

Firehose を使用して Amazon S3 にデータを配信する場合、デフォルト設定は、次の例にあるようなキーを持つオブジェクトを書き込みます。

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

新しいデータが到着したときにパーティションを AWS Glue Data Catalog に追加する必要なく、クエリ時にパーティションを自動的に検索する Athena テーブルを作成するには、パーティション射影を使用できます。

以下の CREATE TABLE 例は、デフォルトの Firehose 設定を使用しています。

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

CREATE TABLE ステートメントの TBLPROPERTIES 句は、Athena に次のように指定します。

  • テーブルのクエリ時にパーティション射影を使用する

  • パーティションキー datehourdate 型である (オプションで時刻を含む)

  • 日付の書式設定方法

  • 日付時刻の範囲。値はハイフンではなくカンマで区切る必要があることに注意してください。

  • Amazon S3 でのデータの検索先。

テーブルをクエリすると、Athena は datehour の値を計算し、ストレージロケーションテンプレートを使用して、パーティションの場所のリストを生成します。