View a markdown version of this page

串流資料表的 Iceberg 行為 - Amazon Kinesis Data Streams

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

串流資料表的 Iceberg 行為

使用此主題來了解串流資料表如何將資料從 AWS Glue 結構描述登錄結構描述映射到 Apache Iceberg 資料表,包括類型映射、欄位處理、資料表維護和格式規格。

AWS Glue Iceberg 類型映射的結構描述登錄檔

串流資料表會將 JSON 結構描述類型從 AWS Glue 結構描述登錄檔映射至 Apache Iceberg 類型,如下所示:

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