本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
串流資料表的 Iceberg 行為
使用此主題來了解串流資料表如何將資料從 AWS Glue 結構描述登錄結構描述映射到 Apache Iceberg 資料表,包括類型映射、欄位處理、資料表維護和格式規格。
AWS Glue Iceberg 類型映射的結構描述登錄檔
串流資料表會將 JSON 結構描述類型從 AWS Glue 結構描述登錄檔映射至 Apache Iceberg 類型,如下所示:
| JSON 結構描述類型 | Iceberg 類型 | 備註 |
|---|---|---|
string (純) |
string |
預設字串映射。 |
string 使用 格式 date-time |
timestamptz |
含時區的時間戳記。 |
string 使用 格式 date |
date |
行事曆日期。 |
string 使用 格式 time |
time |
一天當中的時間。 |
string 使用 格式 uuid |
uuid |
全域唯一識別符。 |
string 使用編碼byte或 base64 |
binary |
編碼為 base64 的二進位資料。 |
integer (32 位元或更少) |
int |
最大值或 exclusiveMaximum <= 2^31 的值。 |
integer (大於 32 位元) |
long |
超過 32 位元範圍的值。 |
number 取代為 multipleOf |
decimal |
固定點小數,精確度衍生自 multipleOf。 |
number (純) |
double |
IEEE 754 雙精度浮點。 |
boolean |
boolean |
是或否。 |
object 使用具名屬性 |
struct |
具名欄位對應至結構欄位。 |
object 取代為 additionalProperties |
map |
具有字串索引鍵的索引鍵值映射。 |
array |
list |
排序的元素集合。 |
enum |
string |
儲存為字串的列舉值。 |
必要資料欄
JSON 結構描述required陣列中列出的欄位在 Iceberg 資料表中成為必要 (不可為空) 欄。如果記錄中缺少必要欄位,則記錄會傳送至無效字母佇列。
分割區索引鍵欄
您的資料表必須包含一個資料timestamptz欄,可用於以時間為基礎的按小時分割 (TIME_HOUR轉換)。在 AWS Glue 結構描述登錄檔結構描述中,這是date-time格式為 string的欄位,對應至 Iceberg timestamptz類型。
分割區參考的來源資料欄會自動標記為必要,無論它是否出現在結構描述的required陣列中。缺少分割區索引鍵值的記錄會傳送至無效字母佇列。
您可以根據資料表的分割區資料欄啟用 Amazon S3 Tables 記錄過期任務。如需詳細資訊,請參閱記錄過期。
欄位處理
串流資料表處理傳入記錄與 Iceberg 資料表結構描述之間的不相符,如下所示:
-
額外欄位 – 存在於記錄中但未定義於結構描述中的欄位會捨棄,不會寫入 Iceberg 資料表。
-
缺少選用欄位 – 記錄中不存在的選用欄位會寫入 Iceberg 資料表
null中。 -
缺少必要欄位 – 如果記錄中缺少必要欄位,則整個記錄會傳送至無效字母佇列。
巢狀限制
串流資料表支援複雜類型 (結構、地圖和清單) 16 個層級的最大巢狀深度。超過 16 個巢狀層級的結構描述會在交付建立時遭到拒絕。
受管資料表屬性
串流資料表會自動管理 Iceberg 資料表屬性。這些屬性會在建立資料表時設定,不應在外部修改。串流資料表使用這些屬性來控制寫入行為、壓縮和中繼資料管理。
由於資料表是由 Amazon Kinesis Data Streams 管理,因此您不應更新其結構描述、修改其資料表屬性,或直接寫入或刪除其資料。您可以使用 AWS 分析服務和任何相容的 Apache Iceberg 查詢引擎來查詢資料表。如需受管資料表儲存貯體的詳細資訊,請參閱《Amazon S3 使用者指南》中的使用 AWS 受管資料表儲存貯體。
S3 Tables 維護
在 S3 Tables 支援的 Apache Iceberg 上交付串流資料表時,會自動處理下列維護操作:
-
壓縮 – 小型資料檔案會定期壓縮為較大的檔案,以改善查詢效能並減少中繼資料額外負荷。
-
快照過期 – 清除過期的快照,以回收中繼資料儲存並減少資料表中繼資料大小。
-
未參考的檔案清除 – 移除任何快照不再參考的孤立資料檔案,以回收儲存。
記錄過期
您可以設定 Iceberg 資料表的記錄過期期間。啟用時,Amazon S3 Tables 會根據資料表的timestamptz分割區資料欄,在維護操作期間自動移除早於指定保留期間的記錄。如需詳細資訊,請參閱《Amazon S3 使用者指南》中的管理 Amazon S3 Tables 記錄過期。 Amazon S3
格式規格
串流資料表使用 Iceberg 資料表的下列格式規格:
-
Iceberg 格式版本 – v2
-
Iceberg 規格版本 – 1.9.0
-
檔案格式 – Apache Parquet