本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon 數據 Firehose 示例
當您使用 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
的值,並使用儲存位置範本來產生分割區位置的清單。