本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
資料表可以具有 enum
、integer
、date,
或 injected
分割區資料欄類型的任意組合。
列舉類型
將 enum
類型用於值為列舉集的成員的分割區資料欄 (例如,機場代碼或 AWS 區域)。
在資料表中定義分割區屬性,如下所示:
屬性名稱 | 範例值 | 描述 |
---|---|---|
projection. |
|
必要。用於資料欄的投影類型 columnName 。 值必須是 enum (不區分大小寫),以表示使用列舉類型。允許開頭和結尾空格。 |
projection. |
|
必要。以逗號分隔的資料欄的列舉分割區值清單 columnName 。 任何空格都會被視為列舉值的一部分。 |
注意
建議的最佳實務是將 enum
型分割區投影的使用限制成幾十個或以下。雖然enum
投影沒有特定限制,但 gzip 壓縮時,資料表中繼資料的總大小不得超過約 1 MB AWS Glue 的限制。請注意,您資料表的主要部分會共用此限制,例如資料欄名稱、位置、儲存格式等。如果您發現自己在enum
投影IDs中使用超過幾十種唯一方法,請考慮替代方法,例如在替代欄位中儲存較少數量的唯一值。您可以透過取捨基數的方式,控制 enum
欄位中唯一數值的數量。
整數類型
對於其可能值會被解譯為定義範圍內整數的分割區資料欄,請使用整數類型。投影整數資料欄目前限制為帶正負號的 Java 長整數範圍 (-263 至 263-1,含)。
屬性名稱 | 範例值 | 描述 |
---|---|---|
projection. |
|
必要。用於資料欄的投影類型 columnName 。 值必須是 integer (不區分大小寫),以表示使用整數類型。允許開頭和結尾空格。 |
projection. |
|
必要。雙元素逗號分隔清單,提供資料欄查詢要傳回的最小和最大範圍值 columnName 。 請注意,值必須以逗號分隔,而非連字號。這些值包含在內,可以是負的,也可以以零開頭。允許開頭和結尾空格。 |
projection. |
|
選用。正整數,指定資料欄的連續分割區值之間的間隔 columnName 。 例如,range 值為 "1,3" 且interval 值為 "1" 會產生值 1、2 和 3。range 值相同但 interval 值為 "2" 會產生 1 和 3 的值,略過 2。允許開頭和結尾空格。預設為 1。 |
projection. |
|
選用。正整數,指定要包含在分割區值資料欄最終表示中的位數 columnName 。 例如,range 值為 "1,3" 且digits 值為 "1" 會產生值 1、2 和 3。range 值相同但 digits 值為 "2" 會產生 01、02 和 03 的值。允許開頭和結尾空格。預設值是非靜態位數,且不以零開頭。 |
日期類型
對於其值會被解譯為定義範圍內之日期 (以及選用的時間) 的分割區資料欄,請使用整數類型。
重要
預計日期資料欄會在查詢執行時間於國際標準時間 (UTC) 中產生。
屬性名稱 | 範例值 | 描述 |
---|---|---|
projection. |
|
必要。用於資料欄的投影類型 columnName 。 值必須是 date (不區分大小寫),以表示使用日期類型。允許開頭和結尾空格。 |
projection. |
|
必要。以逗號分隔的雙元素清單,提供資料欄 此資料欄也可以包含相對日期字串,格式化為此規則運算式模式:
允許使用空格,但在日期常值中會被視為日期字串本身的一部分。 |
projection. |
|
必要。以 Java 日期格式 為基礎的日期格式字串DateTimeFormatterJava.time.* 類型。 |
projection. |
|
正整數,指定資料欄的連續分割區值之間的間隔 如果提供的日期採用單日或單月精確度,則 |
projection. |
|
代表 序列化形式的時間單位字ChronoUnit 如果提供的日期採用單日或單月精確度,則 |
範例 – 按月分割
下列範例資料表組態會按月分割 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
類型的資料欄。
屬性名稱 | Value | 描述 |
---|---|---|
projection. |
|
必要。用於資料欄的投影類型 columnName 。 僅支援 string 類型。指定的值必須是 injected (不區分大小寫)。允許開頭和結尾空格。 |
如需詳細資訊,請參閱何時使用injected投影類型。