如何使用date類型 - Amazon Athena

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

如何使用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'