AWS DMS - 如何将 RDS 表数据写入单个 S3 目标文件?
Posted
技术标签:
【中文标题】AWS DMS - 如何将 RDS 表数据写入单个 S3 目标文件?【英文标题】:AWS DMS - How to write to RDS table data to a single S3 target file? 【发布时间】:2021-08-30 03:05:11 【问题描述】:我已成功设置 DMS 以 csv 格式(完全加载)将数据从 RDS(SQL Server)复制到 S3。但是,在运行任务时,DMS 会复制源表并在 S3 中为单个表创建多个 csv 文件。有什么办法可以确保对于 1 个表,DMS 只在 S3 中创建一个目标 csv 文件?
【问题讨论】:
【参考方案1】:第一次完全加载操作会将所有数据加载到一个文件中。 对于正在进行的复制数据,迁移的数据具有不同的格式,它包含如下附加字符:
I:插入记录 U:换一个 D:删除一个因此,它们不能合并到一个文件中。 您可以使用 Lambda 来做到这一点,但这不是一个好方法:
每当对上述 S3 存储桶(包含 csv 文件)进行任何数据更改时,将触发器添加到 S3 存储桶上的 Lambda 函数 在 Lambda 函数中:处理上述每种情况下的文件并自行合并。我建议使用其他数据库目标,如 mysql、Postgres 等。因为它们都支持它们。
【讨论】:
感谢您的回复。对于小表来说确实如此,但我注意到对于大表(> 1GB),DMS 在 S3 中创建了多个 CSV 文件。有没有办法解决这个问题并让 DMS 只创建 1 个大 CSV 文件?如果没有,将这些文件合并为一个的最佳方法是什么?以上是关于AWS DMS - 如何将 RDS 表数据写入单个 S3 目标文件?的主要内容,如果未能解决你的问题,请参考以下文章
AWS DMS 不支持 RDS SQL Server 的 CDC/更改跟踪。
数据迁移服务 (DMS):出现错误后如何继续(无法执行删除语句)?