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 に次のように指定します。
-
テーブルのクエリ時にパーティション射影を使用する
-
パーティションキー
datehour
はdate
型である (オプションで時刻を含む) -
日付の書式設定方法
-
日付時刻の範囲。値はハイフンではなくカンマで区切る必要があることに注意してください。
-
Amazon S3 でのデータの検索先。
テーブルをクエリすると、Athena は datehour
の値を計算し、ストレージロケーションテンプレートを使用して、パーティションの場所のリストを生成します。