

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 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
```

若要建立 Athena 資料表，在查詢時間自動尋找分割區，而不必在新資料送達 AWS Glue Data Catalog 時將其新增至 ，您可以使用分割區投影。

下列 `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)