Amazon 數據 Firehose 示例 - Amazon Athena

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

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 的值,並使用儲存位置範本來產生分割區位置的清單。