使用 AWS DMS 將 RDBMS 資料庫遷移至 Amazon Redshift 的最佳實務是什麼?

上次更新日期:2022 年 8 月 18 日

我有一個關聯式資料庫管理系統 (RDBMS) 資料庫,我想使用 AWS Database Migration Service (AWS DMS) 遷移至 Amazon Redshift。將 RDBMS 資料庫遷移至 Amazon Redshift 時,我可以遵循哪些最佳實務?

解析度

請使用本文中的最佳實務,協助您使用 AWS DMS 將 RDBMS 資料庫遷移至 Amazon Redshift。

  • 將資料遷移至 Amazon Redshift 端點時,請將平行載入與資料表設定規則搭配使用。如需使用平行載入以及如何使用平行載入來加速遷移的詳細資訊,請參閱針對選取的資料表、檢視和集合使用平行載入
  • AWS DMS 3.4.5 版及更新版本支援在完整載入至 Amazon Redshift 目標端點期間使用 ParallelLoad 任務設定。如需詳細資訊,請參閱 Amazon Redshift 的多執行緒完整載入任務設定
  • 如果您要將大量資料遷移至 Amazon Redshift,請增加 maxFileSize 和 fileTransferUploadStreams 的端點屬性值。這樣做有助於提高完整載入效能。然後,增加 CommitRate 值以提高效能。
  • 因為當您使用 Amazon Redshift 做為資料庫的目標時,AWS DMS 不支援完整 LOB 模式,因此請務必將 LobMaxSize 設定為適當的值。
  • 請確保您的 Amazon Redshift 資料表具有主索引鍵。如果您的目標資料表沒有主索引鍵,則以 BatchApply 模式進行插入。但是因為更新和刪除隨後會逐個套用,因此會影響效能。因此,請確定 AWS DMS 會將 CDC 資料批次遷移至 Amazon Redshift 目標,以避免任何效能問題。
  • 根據工作負載調整批次套用設定,以減少目標上的認可數量。批次套用設定包括 BatchApplyTimeoutMin、BatchApplyTimeoutMax 和 BatchApplyMemoryLimit。
  • 使用 BatchSplitSize 來設定單一批次中套用的變更數量上限。預設值為 0,表示沒有套用限制。
  • 使用適當的分佈和排序索引鍵建立目標 Amazon Redshift 資料表。當 AWS DMS 為 Amazon Redshift 目標建立資料表時,會建立含有預設分佈索引鍵且無排序索引鍵的資料表。Amazon Redshift 會根據排序索引鍵,以排序順序將資料存放在磁碟上。Amazon Redshift 查詢最佳化工具會在決定最佳查詢計劃時使用排序順序。因此,當您執行查詢時,查詢最佳化工具會視需要將資料列重新散佈至運算節點,以執行任何聯結和彙總。如需詳細資訊,請參閱選擇最佳排序索引鍵使用資料分佈樣式執行
  • 如果您的交易工作負載繁重,請使用類似上述設定。這些範例設定表示,使用 32 個平行執行緒,且檔案大小上限為 250-MB,在 1800 秒內填入 8000-MB 的批次緩衝區。

    Amazon Redshift 端點設定:

MaxFileSize=250000;

任務設定:

BatchApplyEnabled=true;
BatchSplitSize =8000;
BatchApplyTimeoutMax =1800;
BatchApplyTimeoutMin =1800;
ParallelApplyThreads=32;
ParallelApplyBufferSize=100;
  • 請確保在 Amazon Redshift 中不存在鎖定或封鎖工作階段。如需詳細資訊,請參閱如何偵測和釋放 Amazon Redshift 中的鎖定?
  • 使用 Amazon Redshift 工作負載管理 (WLM) 工具來管理您的工作負載。Amazon Redshift WLM 可用來定義多個查詢佇列,以及在執行時間將查詢發送至適當的佇列。如需詳細資訊,請參閱工作負載管理