簡體   English   中英

通過 DMS AWS 服務將數據從 RDS Postgres DB 遷移到 s3

[英]Migrating data from RDS Postgres DB to s3 via the DMS AWS service

我正在通過 DMS AWS 服務將數據從 RDS Postgres DB 遷移到 s3。

DMS任務的類型是滿載和CDC。 假設現在我在名為 employee 的 postgres 表中有一些數據。 例如:

emp_id 雇員名稱
1個 約翰
2個 天使

初始創建任務時,將完成完整加載,並在 s3 目標位置創建 LOAD00000____.parquet 文件。 現在我要在表中插入另一行。

emp_id 雇員名稱
3個 內存

現在發生 CDC 操作,並創建了一個帶有 parquet 文件 init 的日期文件夾 (20220101/)。

盡管在表重新加載發生后在 postgres 中發生了截斷/刪除操作,但我實際上試圖將表保留在目標中。

"ChangeProcessingDdlHandlingPolicy": {
  "HandleSourceTableDropped": false,
  "HandleSourceTableTruncated": false,
  "HandleSourceTableAltered": false
}

我的任務設置中有這些配置。 期望當我在 postgres 中截斷/刪除表然后重新加載時,目標數據不應分別被截斷/刪除。 但是,無論我在HandleSourceTableDroppedHandleSourceTableTruncated的配置鍵中給出的值如何。 目標文件夾被刪除。

我的 task_setting.json 文件也有:

"TargetTablePrepMode": "TRUNCATE_BEFORE_LOAD",

問題:

  1. 為什么 s3 文件夾在重新加載時被刪除? 無論我為ChangeProcessingDdlHandlingPolicy中的鍵提供的值(真/假)如何。
  2. ChangeProcessingDdlHandlingPolicy這個配置object是什么意思?

根據我對此的最佳理解首先回答您的問題-

因此設置ChangeProcessingDdlHandlingPolicy與 DDL 相關,這主要是在您的目標是數據庫實例的情況下。 更多關於這里

由於在您的情況下目標是s3 ,因此這些設置是什么和被忽略並不重要。

現在,如果您希望在重新加載時目標文件夾不受影響,您可能想嘗試使用"TargetTablePrepMode": "Do Nothing" (使用正確的語法,如果不是)

然而,盡管如此,當您重新加載即重新啟動任務時,目標處的數據將被覆蓋。 雖然如果你想保留,你可以恢復任務,遷移將從最后停止的點開始。 在此處輸入圖像描述

更多關於這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM