【发布时间】:2022-11-25 16:54:22
【问题描述】:
我正在通过 DMS AWS 服务将数据从 RDS Postgres DB 迁移到 s3。
DMS任务的类型是满载和CDC。 假设现在我在名为 employee 的 postgres 表中有一些数据。 例如:
| emp_id | emp_name |
|---|---|
| 1 | John |
| 2 | Angel |
最初创建任务时,将完成完整加载,并在 s3 目标位置创建 LOAD00000 ___.parquet 文件。 现在我要在表中插入另一行。
| emp_id | emp_name |
|---|---|
| 3 | Ram |
现在发生 CDC 操作,并创建了一个带有 parquet 文件 init 的日期文件夹 (20220101/)。
尽管在表重新加载发生后在 postgres 中发生了截断/删除操作,但我实际上试图将表保留在目标中。
"ChangeProcessingDdlHandlingPolicy": {
"HandleSourceTableDropped": false,
"HandleSourceTableTruncated": false,
"HandleSourceTableAltered": false
}
我的任务设置中有这些配置。
期望当我在 postgres 中截断/删除表然后重新加载时,目标数据不应分别被截断/删除。但是,无论我在HandleSourceTableDropped 和HandleSourceTableTruncated 的配置键中给出的值如何。目标文件夹被删除。
我的 task_setting.json 文件还有:
"TargetTablePrepMode": "TRUNCATE_BEFORE_LOAD",
问题:
- 为什么 s3 文件夹在重新加载时被删除?无论我为
ChangeProcessingDdlHandlingPolicy中的键提供的值(真/假)如何。 -
ChangeProcessingDdlHandlingPolicy这个配置对象是什么意思?
【问题讨论】:
标签: postgresql amazon-s3 data-migration aws-dms change-data-capture