问题描述
我已成功设置 DMS 以 csv 格式(全负载)将数据从 RDS(sql Server)复制到 S3。但是,在运行任务时,DMS 会复制源表并在 S3 中为单个表创建多个 csv 文件。有什么办法可以确保对于 1 个表,DMS 只在 S3 中创建一个目标 csv 文件?
解决方法
第一次完全加载操作会将所有数据加载到一个文件中。 对于正在进行的复制数据,迁移数据具有不同格式,它包含如下附加字符:
- I:用于插入的记录
- U:换一个
- D:用于删除的
因此,它们不能合并为一个文件。 您可以使用 Lambda 来做到这一点,但这不是一个好方法:
- 每当在 S3 存储桶(其中包含 csv 文件)上进行任何数据更改时,向 S3 存储桶上的 Lambda 函数添加触发器
- 在 Lambda 函数中:处理上述每种情况下的文件并自行合并。
我建议使用其他数据库目标,如 MySQL、Postgres 等。因为它们都支持它们。