AWS DMS - 如何将 RDS 表数据写入单个 S3 目标文件?

问题描述

我已成功设置 DMS 以 csv 格式(全负载)将数据从 RDS(sql Server)复制到 S3。但是,在运行任务时,DMS 会复制源表并在 S3 中为单个表创建多个 csv 文件。有什么办法可以确保对于 1 个表,DMS 只在 S3 中创建一个目标 csv 文件

解决方法

第一次完全加载操作会将所有数据加载到一个文件中。 对于正在进行的复制数据,迁移数据具有不同格式,它包含如下附加字符:

  • I:用于插入的记录
  • U:换一个
  • D:用于删除的

因此,它们不能合并为一个文件。 您可以使用 Lambda 来做到这一点,但这不是一个好方法:

  • 每当在 S3 存储桶(其中包含 csv 文件)上进行任何数据更改时,向 S3 存储桶上的 Lambda 函数添​​加触发器
  • 在 Lambda 函数中:处理上述每种情况下的文件并自行合并。

我建议使用其他数据库目标,如 MySQL、Postgres 等。因为它们都支持它们。