我有一个 postgresql 数据库,其中包含包含多租户数据的表。示例:
餐桌顾客
客户ID | 客户名称 |
---|---|
第一 | 客户A |
第二个 | 客户B |
表 CustomerShoppingDet
商品名称 | 客户 ID。 | 购买日期 |
---|---|---|
第一 | 客户A | 2023年2月13日 |
第二个 | 客户A | 2023年3月14日 |
首先。 | 客户B | 2023年4月14日 |
这些都位于分散在各个区域的 AWS RDS 上。让我们假设,
CustA
可能只存在于美国东部地区。现在我有一个用例,其中我需要将 CustA
从美国东部(例如源)移动到欧盟中部地区 RDS(例如目的地)。所以,我需要迁移所有CustA
相关数据。
每个客户的数据相当大,跨越多个表(每个客户约 18GB)。我们正在考虑将快照复制为第一阶段,并使用 CDC,我将同步从源到目标的所有增量更新,直到从源切换到目标的 D-Day。我们将在源上禁用 CustA 一段时间,然后在目标上启用它。
这主要有两个原因:
modified_date
列switch
时间有关我可以在此处使用的合适 CDC 复制机制的任何建议。我已经浏览过 Debezium 和 AWS DMS 产品,但我不完全确定它们是否允许仅过滤
CustA
记录。
如果可以为我提供更大的灵活性,我什至可以构建自己的导出、转换和加载管道。
您可以在 PostgreSQL v15 或更高版本中使用逻辑解码,其中
CREATE PUBLICATION
支持 WHERE
条件。您需要为每个租户定义一个发布。然后订阅者将仅收到该租户的更改。