View a markdown version of this page

Amazon S3 交付的運作方式 - Amazon Kinesis Data Streams

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

Amazon S3 交付的運作方式

使用此主題來了解 Amazon S3 交付如何將記錄從 Amazon Kinesis Data Streams 串流傳送至一般用途的 Amazon Simple Storage Service 儲存貯體,包括儲存組態、壓縮、儲存類別、記錄格式和加密。

交付的運作方式

Amazon S3 交付會在下列步驟中將記錄傳送至一般用途的 Amazon S3 儲存貯體:

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

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

  3. 驗證 – 當記錄格式為 時STRING,每個記錄都會驗證為有效的 UTF-8 字串;當記錄格式為 時JSON,每個記錄都會驗證為有效的 JSON 承載。未通過驗證的記錄會傳送至無效字母佇列。

  4. 壓縮和格式 – 根據設定的輸出格式格式化記錄,並使用指定的壓縮演算法進行壓縮。

  5. 傳遞 – 產生的物件會使用設定的金鑰範本寫入目的地 Amazon S3 儲存貯體。

  6. 無效字母佇列 – 失敗驗證的記錄會寫入具有錯誤內容的無效字母佇列。

儲存組態

當您建立 Amazon S3 交付時,您可以指定下列儲存組態:

  • BucketARN – 目的地 Amazon S3 儲存貯體的 ARN。

  • ExpectedBucketOwner – 目的地儲存貯體預期擁有者的 12 位數 AWS 帳戶 ID。此值為必要值,有助於防止在擁有權變更時交付到非預期的儲存貯體。

  • CompressionType – 套用至已交付物件的壓縮類型。此值為必要值;請指定 NONE 在沒有壓縮的情況下交付物件。請參閱 壓縮選項。

  • StorageClass – 交付物件的 Amazon S3 儲存類別 (選用)。請參閱 儲存類別。

  • OutputKeyTemplate – 用來建構 Amazon S3 物件金鑰的範本 (選用)。請參閱 Amazon S3 交付的 S3 輸出金鑰範本。

壓縮選項

您必須指定壓縮類型,才能交付至一般用途的 Amazon S3 儲存貯體。若要在不壓縮的情況下交付物件,請選擇 NONE。選擇下列其中一個壓縮類型:

  • GZIP – 標準 gzip 壓縮。壓縮比率和速度的良好平衡。

  • ZSTD – Zstandard 壓縮。壓縮率越高,解壓縮速度越快。

  • NONE – 未套用壓縮。記錄會以未壓縮的方式交付。

儲存類別

您可以選擇性地指定已交付物件的 Amazon S3 儲存類別。如果未指定,預設儲存類別為 STANDARD。支援的儲存類別:

  • STANDARD – 常用資料的一般用途儲存體。

  • INTELLIGENT_TIERING – 根據用量模式,在存取層之間自動移動資料。

  • GLACIER_IR – 資料需要立即擷取的低成本儲存。

如需 Amazon S3 儲存類別的詳細資訊,請參閱《Amazon S3 使用者指南》中的了解和管理儲存類別。

輸出金鑰範本

您可以設定輸出金鑰範本,以控制交付檔案的 Amazon S3 物件金鑰結構。範本支援日期、時間和交付中繼資料的動態預留位置,以整理目的地儲存貯體中的資料。如需預設範本、支援的變數和範例,請參閱 Amazon S3 交付的 S3 輸出金鑰範本。

資料新鮮度

資料新鮮度會定義傳送記錄之前的最大緩衝時間。您可以在 300 到 900 秒 (5 到 15 分鐘) 之間設定此值。預設為 300 秒。較低的值提供更快的交付,而較高的值會產生較少、較大的物件。

無效字母佇列

無效字母佇列可選擇性交付至一般用途的 Amazon S3 儲存貯體。如果您未指定無效字母佇列組態,則交付預設為將錯誤資訊寫入具有錯誤字首的相同目的地儲存貯體。

如果您指定無效字母佇列,請提供下列項目:

  • BucketARN – Amazon S3 儲存貯體的 ARN,接收無法交付之記錄的相關資訊。

  • ExpectedBucketOwner – 無效字母佇列儲存貯體預期擁有者的 12 位數 AWS 帳戶 ID (指定無效字母佇列時需要)。

  • ErrorOutputPrefix – 用於組織儲存貯體中失敗中繼資料物件的選用字首。

記錄格式

Amazon S3 交付支援下列記錄格式,以便交付至一般用途的 Amazon S3 儲存貯體:

  • JSON – 純 JSON 記錄。

  • STRING – UTF-8 字串記錄。

  • BYTE_ARRAY – 原始二進位記錄。

注意

不支援將GSR_JSON記錄格式交付至一般用途的 Amazon S3 儲存貯體。它僅支援交付到 Apache Iceberg 上的串流資料表,這需要 AWS Glue 結構描述登錄檔。

跨帳戶交付

Amazon S3 交付支援跨帳戶交付到一般用途的 Amazon S3 儲存貯體。來源串流和目的地儲存貯體必須位於相同的 中 AWS 區域。設定目的地儲存貯體政策,授予交付 IAM 角色寫入物件的許可。

加密

對於交付到一般用途 Amazon S3 儲存貯體的物件,Amazon S3 交付支援使用客戶受 AWS KMS 管金鑰的伺服器端加密。您可以指定客戶受管 AWS KMS 金鑰來加密交付的物件。

重要

您無法使用aws/kinesis AWS KMS 別名進行目的地加密。您必須使用客戶受管 AWS KMS 金鑰。

如果您的來源 Kinesis 資料串流已加密,則適用其他考量。不支援使用 AWS 受管金鑰 (別名) aws/kinesis 加密的串流,且服務執行角色需要解密來源記錄的 AWS KMS 許可。如需來源串流加密需求,請參閱 來源串流加密。如需 AWS KMS 服務執行角色所需的許可,請參閱 資料交付的 IAM 許可。