来自 Postgresql 的行子集的增量 CDC

问题描述 投票:0回答:1

我有一个 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 一段时间,然后在目标上启用它。

这主要有两个原因:

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

有关我可以在此处使用的合适 CDC 复制机制的任何建议。我已经浏览过 Debezium 和 AWS DMS 产品,但我不完全确定它们是否允许仅过滤

CustA
记录。

如果可以为我提供更大的灵活性,我什至可以构建自己的导出、转换和加载管道。

postgresql multi-tenant debezium cdc aws-dms
1个回答
0
投票

您可以在 PostgreSQL v15 或更高版本中使用逻辑解码,其中

CREATE PUBLICATION
支持
WHERE
条件。您需要为每个租户定义一个发布。然后订阅者将仅收到该租户的更改。

© www.soinside.com 2019 - 2024. All rights reserved.