View a markdown version of this page

資料交付的最佳實務 - Amazon Kinesis Data Streams

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

資料交付的最佳實務

下列最佳實務可協助您充分利用 Amazon Kinesis Data Streams 中的資料交付。如需這些建議中參考的交付指標完整清單,請參閱 監控資料交付。

輸送量和資料新鮮度

  • 根據您的串流輸送量設定 DataFreshnessInSeconds 參數。較低的值會增加交付頻率,但可能會導致較小的輸出檔案。較高的值可讓每個交付週期累積更多資料。

  • 在DataFreshness指標上建立 Amazon CloudWatch 警示,以偵測交付延遲何時超過您可接受的閾值。

  • 您可以從相同的 Kinesis Data Streams 串流建立多個交付。每個交付都會獨立運作,讓您同時將資料交付至多個目的地。

結構描述管理 (在 Apache Iceberg 上串流資料表)

  • 在建立交付之前,在 AWS Glue 結構描述登錄檔中註冊您的結構描述。交付會使用已註冊的結構描述來定義目的地資料表結構。

  • 交付不支援結構描述演變。如果您的結構描述變更,您必須刪除並使用更新的結構描述重新建立交付。

  • 使用生產者端結構描述驗證,確保所有記錄在寫入串流之前都符合已註冊的結構描述。這可將失敗的記錄交付降至最低。

S3 物件配置 (一般用途 Amazon S3 儲存貯體)

  • 選擇符合您下游消費者查詢模式的輸出金鑰範本。例如,如果您的查詢經常依時間範圍篩選,請使用日期型字首。

  • 啟用 GZIP 或 ZSTD 壓縮以降低儲存成本,並改善下游分析工作負載的讀取效能。

  • 根據您的資料存取模式選擇適當的 Amazon S3 儲存類別。針對經常存取的資料使用 STANDARD,INTELLIGENT_TIERING 可讓 Amazon S3 在存取層之間自動移動物件,或針對很少存取且仍需要毫秒擷取的資料使用 GLACIER_IR。

安全

  • 將您的 IAM 政策範圍限定為交付寫入的特定儲存貯體或資料表。避免使用萬用字元資源 ARNs。

  • 在交付所用 IAM 角色的信任政策中包含 aws:SourceArn和 aws:SourceAccount條件金鑰。這可確保只有特定交付可以擔任該角色,從而防止混淆代理人問題。

  • 啟用 AWS CloudTrail 記錄以稽核所有交付 API 呼叫和組態變更。

  • 針對敏感資料使用客戶受管 AWS KMS 金鑰。這可讓您完全控制金鑰輪換、存取政策和稽核線索。

無效字母佇列

  • 一律為您的交付設定無效字母佇列。無法傳送至目的地的記錄會傳送至無效字母佇列以供日後檢查。

  • 在 CloudWatch 中監控指標 DLQDeliverySuccess (DeliveryToS3.DLQDeliverySuccess 或 DeliveryToIceberg.DLQDeliverySuccess),以偵測記錄何時路由到無效字母佇列。

  • 定期檢查無效字母佇列項目,以識別交付失敗中的模式,並在生產者或交付組態層級採取修正動作。

監控

  • 在交付DataFreshness和失敗記錄指標 (DeliveryToS3.FailedRecordCount 或 DeliveryToIceberg.FailedRowCount) 上建立 CloudWatch 警示,以主動偵測交付問題。

  • 為您的交付啟用 CloudWatch Logs,以擷取詳細的交付診斷和錯誤訊息。

  • 追蹤交付位元組指標 (DeliveryToS3.BytesOut 或 DeliveryToIceberg.BytesOut),以監控輸送量並識別資料磁碟區中的意外下降。