本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
如何使用date
類型
當您將 date
類型用於投影分割區索引鍵時,您必須指定範圍。由於您沒有建立 Firehose 傳送串流之前的日期資料,因此您可以使用建立日期做為開始日期。並且因為您沒有未來日期的資料,您可以使用特殊字符 NOW
作為結束。
在此CREATE TABLE
範例中,開始日期指定為 2021 年 1 月 1 日午夜UTC。
注意
設定與您的資料盡可能相符的範圍,以便 Athena 僅查詢現有分割區。
在範例資料表上執行查詢時,Athena 將 datehour
分割區索引鍵上的條件與範圍結合使用來產生值。請考處下列查詢:
SELECT * FROM my_ingested_data WHERE datehour >= '2020/12/15/00' AND datehour < '2021/02/03/15'
SELECT
查詢中的第一個條件會使用日期,該日期會在 CREATE TABLE
陳述句指定的日期範圍開始之前。由於分割區投影組態沒有為 2021 年 1 月 1 日之前的日期指定分割區,因此 Athena 僅在以下位置查詢資料,並忽略查詢中較早的日期。
s3://amzn-s3-demo-bucket/prefix/2021/01/01/00/ s3://amzn-s3-demo-bucket/prefix/2021/01/01/01/ s3://amzn-s3-demo-bucket/prefix/2021/01/01/02/ ... s3://amzn-s3-demo-bucket/prefix/2021/02/03/12/ s3://amzn-s3-demo-bucket/prefix/2021/02/03/13/ s3://amzn-s3-demo-bucket/prefix/2021/02/03/14/
同樣地,如果在 2021 年 2 月 3 日 15:00 之前的日期和時間執行查詢,則最後一個分割區會反映目前的日期和時間,而不是在查詢條件中的日期和時間。
如果要查詢最新資料,您可以利用 Athena 不產生未來日期並僅指定開頭 datehour
的事實,如下列範例所示。
SELECT * FROM my_ingested_data WHERE datehour >= '2021/11/09/00'