

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

# 資料交付的最佳實務
<a name="data-delivery-best-practices"></a>

 下列最佳實務可協助您充分利用 Amazon Kinesis Data Streams 中的資料交付。如需這些建議中參考的交付指標完整清單，請參閱 [監控資料交付](data-delivery-monitoring.md)。

## 輸送量和資料新鮮度
<a name="best-practices-throughput"></a>
+  根據您的串流輸送量設定 `DataFreshnessInSeconds` 參數。較低的值會增加交付頻率，但可能會導致較小的輸出檔案。較高的值可讓每個交付週期累積更多資料。
+  在`DataFreshness`指標上建立 Amazon CloudWatch 警示，以偵測交付延遲何時超過您可接受的閾值。
+  您可以從相同的 Kinesis Data Streams 串流建立多個交付。每個交付都會獨立運作，讓您同時將資料交付至多個目的地。

## 結構描述管理 （在 Apache Iceberg 上串流資料表）
<a name="best-practices-schema"></a>
+  在建立交付之前，在 AWS Glue 結構描述登錄檔中註冊您的結構描述。交付會使用已註冊的結構描述來定義目的地資料表結構。
+  交付不支援結構描述演變。如果您的結構描述變更，您必須刪除並使用更新的結構描述重新建立交付。
+  使用生產者端結構描述驗證，確保所有記錄在寫入串流之前都符合已註冊的結構描述。這可將失敗的記錄交付降至最低。

## S3 物件配置 （一般用途 Amazon S3 儲存貯體）
<a name="best-practices-s3-layout"></a>
+  選擇符合您下游消費者查詢模式的輸出金鑰範本。例如，如果您的查詢經常依時間範圍篩選，請使用日期型字首。
+  啟用 GZIP 或 ZSTD 壓縮以降低儲存成本，並改善下游分析工作負載的讀取效能。
+  根據您的資料存取模式選擇適當的 Amazon S3 儲存類別。針對經常存取的資料使用 STANDARD，INTELLIGENT\_TIERING 可讓 Amazon S3 在存取層之間自動移動物件，或針對很少存取且仍需要毫秒擷取的資料使用 GLACIER\_IR。

## 安全
<a name="best-practices-security"></a>
+  將您的 IAM 政策範圍限定為交付寫入的特定儲存貯體或資料表。避免使用萬用字元資源 ARNs。
+  在交付所用 IAM 角色的信任政策中包含 `aws:SourceArn`和 `aws:SourceAccount`條件金鑰。這可確保只有特定交付可以擔任該角色，從而防止混淆代理人問題。
+  啟用 AWS CloudTrail 記錄以稽核所有交付 API 呼叫和組態變更。
+  針對敏感資料使用客戶受管 AWS KMS 金鑰。這可讓您完全控制金鑰輪換、存取政策和稽核線索。

## 無效字母佇列
<a name="best-practices-dlq"></a>
+  一律為您的交付設定無效字母佇列。無法傳送至目的地的記錄會傳送至無效字母佇列以供日後檢查。
+  在 CloudWatch 中監控指標 `DLQDeliverySuccess` (`DeliveryToS3.DLQDeliverySuccess` 或 `DeliveryToIceberg.DLQDeliverySuccess`)，以偵測記錄何時路由到無效字母佇列。
+  定期檢查無效字母佇列項目，以識別交付失敗中的模式，並在生產者或交付組態層級採取修正動作。

## 監控
<a name="best-practices-monitoring"></a>
+  在交付`DataFreshness`和失敗記錄指標 (`DeliveryToS3.FailedRecordCount` 或 `DeliveryToIceberg.FailedRowCount`) 上建立 CloudWatch 警示，以主動偵測交付問題。
+  為您的交付啟用 CloudWatch Logs，以擷取詳細的交付診斷和錯誤訊息。
+  追蹤交付位元組指標 (`DeliveryToS3.BytesOut` 或 `DeliveryToIceberg.BytesOut`)，以監控輸送量並識別資料磁碟區中的意外下降。