本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
串流資料表交付的運作方式
使用此主題來了解串流資料表交付如何從您的 Amazon Kinesis Data Streams 串流傳送記錄到 S3 資料表儲存貯體支援的 Apache Iceberg 上的串流資料表,包括記錄轉換、目的地資料表建立、分割、資料新鮮度、無效字母佇列和加密。
交付的運作方式
在下列步驟中,串流資料表交付會將記錄傳送至 Apache Iceberg 上的串流資料表:
-
讀取 – 交付會從 Kinesis Data Streams 串流中的所有碎片讀取記錄。
-
緩衝區 – 交付會緩衝記錄,直到達到資料更新間隔為止。
-
驗證和轉換 – 交付會根據 AWS Glue 結構描述登錄檔中的結構描述驗證每個記錄,並將其轉換為 Apache Iceberg 資料表結構描述。驗證失敗的記錄會移至無效字母佇列。
-
精簡和寫入 – 交付會將記錄轉換為內嵌壓縮的最佳化 Apache Parquet 檔案,並將其寫入目的地 Iceberg 資料表。
-
遞交 – 交付會將新檔案遞交至 Iceberg 資料表,以便可查詢資料。
記錄對話
串流資料表交付需要在結構描述登錄檔中註冊的 AWS Glue 結構描述。交付使用結構描述將傳入記錄轉換為 Apache Iceberg 資料表結構描述。它支援下列輸入記錄格式:
-
JSON – 純 JSON 記錄。您提供的
GSRSchemaARN參考在結構描述登錄檔中註冊的 AWS Glue 結構描述。 -
GSR_JSON – JSON 記錄,其結構描述 ID 由 AWS Glue 結構描述登錄檔序列化程式內嵌在每個記錄中。結構描述會從 AWS Glue 結構描述登錄檔自動解析。
如需 Iceberg 類型映射和欄位處理規則的完整 AWS Glue 結構描述登錄檔,請參閱 串流資料表的 Iceberg 行為。
目的地資料表
當您建立串流資料表交付時,Amazon Kinesis Data Streams 會在您指定的 S3 資料表儲存貯體中建立目的地 Iceberg 資料表。請提供下列資訊:
-
資料表儲存貯體 ARN – 建立資料表之 S3 資料表儲存貯體的 ARN。
-
命名空間 – 資料表的命名空間。
-
資料表名稱 – 要建立的資料表名稱。每個交付都會建立自己的資料表。您無法交付至現有的資料表。
-
分割區資料欄 – 用於按小時分割資料表的資料
timestamptz欄。如需分割需求,請參閱 串流資料表的 Iceberg 行為。
資料新鮮度
資料新鮮度會定義傳送記錄之前的最大緩衝時間。您可以在 300 到 900 秒 (5 到 15 分鐘) 之間設定此值。預設為 300 秒。較低的值提供更快的交付,而較高的值會在目的地產生較少、較大的檔案。
無效字母佇列
串流資料表交付需要無效字母佇列。您可以指定 Amazon S3 儲存貯體,該儲存貯體會收到驗證失敗之記錄的相關資訊。您提供儲存貯體 ARN、預期的儲存貯體擁有者,以及選用的錯誤輸出字首。無效字母佇列包含記錄識別符和錯誤內容,而不是完整的記錄承載。
加密
串流資料表交付會加密 Amazon S3 中的靜態交付資料。根據預設,資料會使用 Amazon S3 受管金鑰 (SSE-S3) 加密。您可以改為使用客戶受 AWS KMS 管金鑰 (SSE-KMS)。
重要
您無法使用 AWS 受管金鑰 (別名) aws/kinesis 進行目的地加密。您必須使用客戶受管 AWS KMS 金鑰。此外,如果您的來源 Kinesis 資料串流使用 加密 AWS 受管金鑰,則無法建立交付。如需來源串流加密需求,請參閱 來源串流加密。如需 AWS KMS 服務執行角色所需的許可,請參閱 資料交付的 IAM 許可。
跨帳戶和跨區域交付
串流資料表交付不支援跨帳戶或跨區域交付。來源串流、目的地 S3 資料表儲存貯體和 AWS Glue 結構描述登錄檔都必須位於相同 AWS 帳戶 和相同的區域。