選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

支援的分割區投影類型

焦點模式
支援的分割區投影類型 - Amazon Athena

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

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

資料表可以具有 enumintegerdate,injected 分割區資料欄類型的任意組合。

列舉類型

enum類型用於值為列舉集成員的分割區資料欄 (例如,機場代碼 或 AWS 區域)。

在資料表中定義分割區屬性,如下所示:

屬性名稱 範例值 描述
projection.columnName.type

enum

必要。用於資料欄 columnName 的投影類型。該值必須是 enum (不區分大小寫) 以表示使用列舉類型。允許開頭和結尾空格。
projection.columnName.values

A,B,C,D,E,F,G,Unknown

必要。用於資料欄 columnName 之以逗號分隔的列舉分割區值清單。任何空格都會被視為列舉值的一部分。
注意

建議的最佳實務是將 enum 型分割區投影的使用限制成幾十個或以下。雖然enum投影沒有特定限制,但 gzip 壓縮時,資料表中繼資料的總大小不得超過約 1 MB AWS Glue 的限制。請注意,您資料表的主要部分會共用此限制,例如資料欄名稱、位置、儲存格式等。如果您發現自己在 enum 投影中使用幾十個以上的唯一 ID,請考慮使用替代方法,例如歸納為代理欄位中較少數的唯一數值。您可以透過取捨基數的方式,控制 enum 欄位中唯一數值的數量。

整數類型

對於其可能值會被解譯為定義範圍內整數的分割區資料欄,請使用整數類型。投影整數資料欄目前限制為帶正負號的 Java 長整數範圍 (-263 至 263-1,含)。

屬性名稱 範例值 描述
projection.columnName.type

integer

必要。用於資料欄 columnName 的投影類型。該值必須是 integer (不區分大小寫) 以表示使用整數類型。允許開頭和結尾空格。
projection.columnName.range

0,10

-1,8675309

0001,9999

必要。以逗號分隔的雙元素清單,提供資料欄 columnName 上的查詢要傳回的最小和最大範圍值。請注意,值必須以逗號分隔,而非連字號。這些值包含在內,可以是負的,也可以以零開頭。允許開頭和結尾空格。
projection.columnName.interval

1

5

選用。正整數,指定用於資料欄 columnName 之連續分割區值之間的間隔。例如,range 值 "1,3" 具有 "1" 的 interval 值,會產生 1、2 和 3 的值。range 值相同但 interval 值為 "2" 會產生 1 和 3 的值,略過 2。允許開頭和結尾空格。預設為 1。
projection.columnName.digits

1

5

選用。正整數,指定用於資料欄 columnName 之分割區值最終表示法中要包含的位數。例如,range 值 "1,3" 具有 "1" 的 digits 值,會產生 1、2 和 3 的值。range 值相同但 digits 值為 "2" 會產生 01、02 和 03 的值。允許開頭和結尾空格。預設值是非靜態位數,且不以零開頭。

日期類型

對於其值會被解譯為定義範圍內之日期 (以及選用的時間) 的分割區資料欄,請使用整數類型。

重要

投影的日期資料欄會在查詢執行期以國際標準時間 (UTC) 產生。

屬性名稱 範例值 描述
projection.columnName.type

date

必要。用於資料欄 columnName 的投影類型。該值必須是 date (不區分大小寫) 以表示使用日期類型。允許開頭和結尾空格。
projection.columnName.range

201701,201812

01-01-2010,12-31-2018

NOW-3YEARS,NOW

201801,NOW+1MONTH

必要。以逗號分隔的雙元素清單,提供資料欄 columnName 的最小和最大 range 值。這些數值包含在內,可以使用與 Java java.time.* 日期類型相容的任何格式。最小值和最大值都必須使用相同的格式。.format 屬性中指定的格式必須是用於這些值的格式。

此資料欄也可以包含相對日期字串,格式化為此規則運算式模式:

\s*NOW\s*(([\+\-])\s*([0-9]+)\s*(YEARS?|MONTHS?|WEEKS?|DAYS?|HOURS?|MINUTES?|SECONDS?)\s*)?

允許使用空格,但在日期常值中會被視為日期字串本身的一部分。

projection.columnName.format

yyyyMM

dd-MM-yyyy

dd-MM-yyyy-HH-mm-ss

必要。根據 Java 日期格式 DateTimeFormatter 的日期格式字串。可以是任何支援的 Java.time.* 類型。
projection.columnName.interval

1

5

正整數,指定用於資料欄 columnName 之連續分割區值之間的間隔。例如,range 值為 2017-01,2018-12 搭配 interval 值為 1 以及 interval.unit 值為 MONTHS,會產生值 2017-01、2017-02、2017-03 等。相同的 range 值搭配 interval 值為 2interval.unit 值為 MONTHS,會產生值 2017-01、2017-03、2017-05 等。允許開頭和結尾空格。

如果提供的日期採用單日或單月精確度,則 interval 是選用的,並且分別預設為 1 天或 1 個月。否則,interval 是必要的。

projection.columnName.interval.unit

YEARS

MONTHS

WEEKS

DAYS

HOURS

MINUTES

SECONDS

MILLIS

時間單位,代表 ChronoUnit 的序列化格式。可能值為 YEARSMONTHSWEEKSDAYSHOURSMINUTESSECONDSMILLIS。這些值不區分大小寫。

如果提供的日期採用單日或單月精確度,則 interval.unit 是選用的,並且分別預設為 1 天或 1 個月。否則,interval.unit 是必要的。

範例 – 按月分割

下列範例資料表組態會依月份分割 2015 年至今的資料。

'projection.month.type'='date', 'projection.month.format'='yyyy-MM', 'projection.month.interval'='1', 'projection.month.interval.unit'='MONTHS', 'projection.month.range'='2015-01,NOW', ...

注入類型

注入類型適用於其可能值不能在某個邏輯範圍內依程序產生,但可在查詢的 WHERE 子句中作為單一值提供的分割區資料欄。

請務必牢記以下幾點:

  • 如果未為每個注入的資料欄提供篩選條件表達式,則注入資料欄上的查詢會失敗。

  • 只有當值為分離值時,才能成功在注入資料欄上針對篩選條件表達式查詢多個值。

  • 僅支援 string 類型的資料欄。

  • 當您將 WHERE IN子句與注入的分割區資料欄搭配使用時,您可以在IN清單中指定 1,000 個值。若要為注入的資料欄查詢具有超過 1,000 個分割區的資料集,請將查詢分割為多個較小的查詢,每個查詢在WHERE IN子句中最多有 1,000 個值,然後彙總結果。

屬性名稱 Value 描述
projection.columnName.type

injected

必要。用於資料欄 columnName 的投影類型。僅支援 string 類型。指定的值必須是 injected (不區分大小寫)。允許開頭和結尾空格。

如需詳細資訊,請參閱何時使用injected投影類型

在本頁面

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。