【发布时间】:2021-03-14 13:06:33
【问题描述】:
我需要将旧版 SQL Server 数据库(源)中的多个表中的数据同步到 Postgres 数据库(目标)中的单个表。源数据库的架构是荒谬的,因此选择数据的查询需要很长时间才能运行。我打算在源数据库中创建一个索引视图,然后以某种方式将该索引视图同步到 Postgres 表。
现在,我只是有一个计划任务,它删除 Postgres 表(目标),然后通过在源数据库中运行复杂查询从头开始重新创建它。这设置起来很快,并且它确保源数据库中的更改始终最终到达目标数据库,但是每隔几个小时重新创建表(可以理解)非常缓慢且昂贵。我需要一种将正在进行的更改(仅新的/更新的数据)从源视图复制到目标表的方法。有没有(相对)简单的方法来做到这一点?
我对 CDC 有点熟悉,但我知道 CDC 不能用于视图,所以我不认为这是一个选项。向源表添加“更新于”时间戳不是一种选择,所以我不能使用这种方法。我可以在源表中添加一个哈希列,或者在视图中添加一个哈希列,如果可以的话,这是一个选项。是否有现有的工具/服务可以满足我的需求?
【问题讨论】:
标签: sql-server postgresql synchronization etl database-migration