我有一个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
记录进行过滤。
我甚至可以构建我自己的导出、转换和加载管道,如果这样可以为我提供更大的灵活性的话。
1条答案
按热度按时间dy2hfwbg1#
您可以在PostgreSQL v15或更高版本中使用逻辑解码,其中
CREATE PUBLICATION
支持WHERE
条件。您需要为每个租户定义发布。然后订阅者将仅接收该租户的更改。