本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
資料交付的最佳實務
下列最佳實務可協助您充分利用 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),以監控輸送量並識別資料磁碟區中的意外下降。