Postgresql中的增量CDC,用于行的子集

pcww981p  于 4个月前  发布在  PostgreSQL
关注(0)|答案(1)|浏览(47)

我有一个postgresql数据库,其中包含包含多租户数据的表。

表客户

| CustId|客户名称|
| --|--|
| 第一|客户A|
| 二|客户B|

客户购物详细信息表

| 项目名称|客户ID。|购买日期|
| --|--|--|
| 第一|客户A|二〇二三年十二月十三日|
| 二|客户A| 2023年3月14日|
| 先|客户B| 2023年4月14日|
这些都是分布在不同地区的AWS RDS。假设CustA可能只存在于美国东部地区。现在我有一个使用案例,需要将CustA从美国东部(即源)移动到欧盟中部地区RDS(即目标)。因此,我需要迁移所有CustA相关数据。
每个客户得数据非常大,并且跨越多个表(每个客户约18 GB).我们正在考虑在第一阶段复制快照,并使用CDC I将所有增量更新从源同步到目的,直到D日从源切换到目的.我们将在源上短暂禁用CustA,然后在目的上启用它.
这主要有两个原因:

  • 最大限度地减少在多个块和阶段中为CustA导出数据的开销。并非所有表都有modified_date
  • 最大限度地缩短从源到目标的总体switch时间

任何关于合适的CDC复制机制的建议,我可以在这里使用。我已经通过了Debezium和AWS DMS产品,但我不完全确定他们是否只允许对CustA记录进行过滤。
我甚至可以构建我自己的导出、转换和加载管道,如果这样可以为我提供更大的灵活性的话。

dy2hfwbg

dy2hfwbg1#

您可以在PostgreSQL v15或更高版本中使用逻辑解码,其中CREATE PUBLICATION支持WHERE条件。您需要为每个租户定义发布。然后订阅者将仅接收该租户的更改。

相关问题