

# Amazon Data Firehose 例
<a name="partition-projection-kinesis-firehose-example"></a>

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` の値を計算し、ストレージロケーションテンプレートを使用して、パーティションの場所のリストを生成します。

**Topics**
+ [`date` タイプの使用方法](partition-projection-kinesis-firehose-example-using-the-date-type.md)
+ [パーティションキーの選択方法](partition-projection-kinesis-firehose-example-choosing-partition-keys.md)
+ [カスタムプレフィックスと動的パーティショニングの使用方法](partition-projection-kinesis-firehose-example-using-custom-prefixes-and-dynamic-partitioning.md)