如何使用 AWS DMS 控制為目標 S3 端點產生的 CDC 檔案數量?

上次更新日期:2022 年 12 月 1 日

我想要控制在使用 Amazon Simple Storage Service (Amazon S3) 做為目標端點時所產生變更資料擷取 (CDC) 檔案的數量。如何使用 AWS Database Migration Service (AWS DMS) 來執行此作業?

簡短說明

當您使用 Amazon S3 做為目標端點時,您可使用多個參數來控制目標端點中的關聯檔案大小。這包括使用 Amazon S3 做為完整負載和 CDC 的目標端點,或僅使用 CDC 的 AWS DMS 任務。

本文討論下列額外的連線屬性 (ECA)。此外,此還涵蓋了如何使用其來控制 Amazon S3 端點上產生的 CDC 檔案數量:

  • cdcMaxBatchInterval - 將檔案輸出至 Amazon S3 的最大間隔時長條件 (以秒為單位)。預設值為 60 秒。
  • cdcMinFileSize - 用來將檔案輸出至 Amazon S3 的最小檔案大小條件 (以 KB 為單位)。預設值為 32000 KB。
  • maxFileSize - 在完全負載期間移轉至 S3 目標時要建立的任何 .csv 檔案的大小上限 (以 KB 為單位)。預設值為 1 GB。
  • WriteBufferSize - 在 AWS DMS 複寫執行個體的本機磁碟上產生 .csv 檔案時,所使用的記憶體內檔案寫入緩衝區大小 (KB)。預設值為 1000 KB。

解決方案

cdcMaxBatchInterval 參數可控制將檔案寫入 Amazon S3 的時間間隔。使用預設值 60 秒時,AWS DMS 會每分鐘將檔案寫入 Amazon S3。另一個重要的參數是 cdcMinFileSize 參數,它決定 CDC 檔案的大小上限。使用預設值 32000 KB 時,AWS DMS 會在每次擁有 32000 KB 的變更資料時寫入 Amazon S3。

cdcMaxBatchInterval 和 cdcMinFileSize 參數共同發揮作用。AWS DMS 會使用最先符合的參數值。使用預設設定時,若檔案有一分鐘的待處理變更或 32000 KB 的資料,則 AWS DMS 會將檔案寫入 Amazon S3。根據最先發生的狀況,將會完成其中一個動作。
注意:AWS DMS 會將交易維護在相同檔案中,因此若交易很大,則檔案大小會超過 cdcMinFileSize 和 cdcMaxBatchInterval。

maxFileSize 決定 CSV 和 Parquet 格式之 S3 目標輸出檔案的最大檔案大小。但是,在寫入 .parquet 檔案時,AWS DMS 會以批次方式寫入資料:

1.    AWS DMS 會配置 1024 KB 的記憶體區段,這是寫入緩衝區大小的預設大小。

2.    無論 maxFileSize 的值為何,AWS DMS 都會配置至少一個預設大小為 1 MB 的寫入緩衝區。

3.    完成寫入第一批資料時,AWS DMS 會將目前的資料大小與 maxFileSize 進行比較。如果目前的大小大於或等於 maxFileSize,則資料會寫入目標 S3 儲存貯體中的 .parquet 檔案。

4.    如果您將 maxFileSize 設定為 1 MB,則寫入緩衝區大小 (預設值為 1 MB) 符合 maxFileSize 的值。這是因為在配置一個寫入緩衝區之後,條件已滿足。若您想要減少所產生 .parquet 檔案的整體大小,您可減少 writeBufferSize 的值。透過將其設定為小於 1 MB,則當要寫入的資料小於 1 MB 時,會發生條件檢查。

注意 :WriteBufferSize 參數設定僅適用於 .parquet 檔案,而不適用於 .csv 檔案。


此文章是否有幫助?


您是否需要帳單或技術支援?