本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
資料交付概念
使用此主題來檢閱 Amazon Kinesis Data Streams 中串流資料表和 Amazon S3 交付的重要概念。 Amazon Kinesis
資料新鮮度
資料新鮮度會定義 Kinesis Data Streams 在將傳入記錄交付至目的地之前,緩衝傳入記錄的時間上限 (以秒為單位)。您可以設定 300 到 900 秒之間的資料新鮮度 (5 到 15 分鐘)。預設值為 300 秒。
-
較低的值 – 以較小的批次大小更快地交付到目的地。
-
較高的值 – 更有效率的批次處理,可在目的地產生較少、較大的檔案。
串流資料表的輸入格式
在 Apache Iceberg 上交付至串流資料表時,資料交付支援下列輸入記錄格式。這兩種格式都需要 AWS Glue 結構描述登錄檔。
-
JSON – 純 JSON 記錄。您必須提供參考 AWS Glue 在結構描述登錄檔中註冊之結構描述的
GSRSchemaARN( AWS Glue 結構描述登錄檔結構描述的 )。 -
GSR_JSON (AWS Glue 結構描述登錄檔 JSON) – 內嵌在每個記錄中結構描述 ID 的 JSON 記錄。結構描述會從 AWS Glue 結構描述登錄檔自動解析。
一般用途 Amazon S3 儲存貯體的輸入格式
交付至一般用途 Amazon S3 儲存貯體時,資料交付支援下列輸入記錄格式。不需要結構描述登錄檔。
-
JSON – 純 JSON 記錄。
-
STRING – UTF-8 字串記錄。
-
BYTE_ARRAY – 原始二進位記錄。
注意
一般用途 Amazon S3 儲存貯體不支援 GSR_JSON 格式。它僅適用於交付至 Apache Iceberg 上的串流資料表。
結構描述強制執行
對於 Apache Iceberg 上的串流資料表,每個記錄都會根據結構描述登錄檔中註冊的 AWS Glue 結構描述進行驗證。不符合結構描述的記錄不會交付到您的串流資料表。失敗中繼資料會寫入無效字母佇列以進行疑難排解。資料交付不支援結構描述演變。這包括新增欄位、移除現有欄位、重新命名欄位或變更欄位資料類型。
無回填
您的目的地只會接收您建立串流資料表或設定 S3 交付之後產生的記錄。串流中的現有記錄不會回填。
每個交付的新資料表
每個串流資料表交付都會在目的地建立自己的 Iceberg 資料表。不支援交付至現有資料表。您可以在呼叫 時指定資料表儲存貯體 ARN、命名空間和資料表名稱CreateChannel。
無效字母佇列
無效字母佇列會擷取無法成功交付之記錄的相關資訊。
-
Apache Iceberg 上的串流資料表 – 需要無效字母佇列。您必須為失敗的記錄指定 S3 儲存貯體和字首。
-
一般用途 Amazon S3 儲存貯體 – 無效字母佇列是選用的。如果未指定,它會預設為具有錯誤字首的相同目的地儲存貯體。
無效字母佇列包含記錄識別符和錯誤內容,而不是完整的記錄承載。
內嵌壓縮
資料交付透過將碎片之間的記錄彙總為大小最佳的檔案來執行內嵌壓縮。這可減少目的地的小型檔案數量,並改善查詢效能。
交付狀態
交付會在其生命週期內轉換下列狀態:
-
建立 – 正在佈建交付。
-
ACTIVE – 交付正在交付記錄。
-
更新中 – 正在進行組態變更。
-
刪除 – 正在移除交付。
-
失敗 – 交付遇到無法復原的錯誤。
僅附加交付
交付是附加的。不支援更新和 upsert。來自串流的每個記錄都會在目的地寫入為新資料列。