View a markdown version of this page

串流資料表交付的運作方式 - Amazon Kinesis Data Streams

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

串流資料表交付的運作方式

使用此主題來了解串流資料表交付如何從您的 Amazon Kinesis Data Streams 串流傳送記錄到 S3 資料表儲存貯體支援的 Apache Iceberg 上的串流資料表,包括記錄轉換、目的地資料表建立、分割、資料新鮮度、無效字母佇列和加密。

交付的運作方式

在下列步驟中,串流資料表交付會將記錄傳送至 Apache Iceberg 上的串流資料表:

  1. 讀取 – 交付會從 Kinesis Data Streams 串流中的所有碎片讀取記錄。

  2. 緩衝區 – 交付會緩衝記錄,直到達到資料更新間隔為止。

  3. 驗證和轉換 – 交付會根據 AWS Glue 結構描述登錄檔中的結構描述驗證每個記錄,並將其轉換為 Apache Iceberg 資料表結構描述。驗證失敗的記錄會移至無效字母佇列。

  4. 精簡和寫入 – 交付會將記錄轉換為內嵌壓縮的最佳化 Apache Parquet 檔案,並將其寫入目的地 Iceberg 資料表。

  5. 遞交 – 交付會將新檔案遞交至 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 帳戶 和相同的區域。