如何仅提取 AWS RDS(Postgres 数据库)中的更改数据(CDC)并将更改数据转储到另一个 RDS postgres 实例?
Posted
技术标签:
【中文标题】如何仅提取 AWS RDS(Postgres 数据库)中的更改数据(CDC)并将更改数据转储到另一个 RDS postgres 实例?【英文标题】:How to extract only change data (CDC) in AWS RDS (Postgres database) and dump change data to another RDS postgres instance? 【发布时间】:2020-07-27 17:06:03 【问题描述】:有没有办法只捕获 RDS Postgres 实例中的更改数据并将这些更改记录写入另一个 RDS Postgres 数据库实例以供以后使用?
我看过几个选项,比如使用 Debezium,但它似乎没有帮助,因为我不必实际写入流。
我的要求是: 1)一次将所有现有数据加载到另一个数据库 2)捕获变更数据(delta)并存储在数据库中(具有相同的副本)并处理变更数据。
【问题讨论】:
AWS 数据库迁移服务能如你所愿吗? @jordanm DMS 不符合我们的确切要求。所以我们决定继续使用只读副本。有没有一种方法可以捕获和公开 postgres 的 RDS 只读副本中的插入/更新/删除活动? 您可以使用代理系统自动将写入请求重定向到主服务器。这似乎是一个现代版本:github.com/CrunchyData/crunchy-proxy 【参考方案1】:我已按照以下步骤实现上述场景:
1) 编写了一个 Spring 批处理作业,它连接到 RDS 并执行一次完整加载。 2) 完全加载完成后,我们添加逻辑以导出 CDC 数据的 WAL 日志,然后将数据放入流中以进一步处理。
不是最好的解决方案,但该解决方案适用于上述情况。
【讨论】:
您是否碰巧在任何地方公开发布了您的代码?我很好奇如何创建逻辑来导出 WAL 日志等。以上是关于如何仅提取 AWS RDS(Postgres 数据库)中的更改数据(CDC)并将更改数据转储到另一个 RDS postgres 实例?的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 eb cli (django postgres) 迁移 AWS RDS 数据库?
AWS postgres RDS 读取复制如何处理架构切换?
AWS Lambda NodeJS 连接到 RDS Postgres 数据库