我正在使用Debezium Postgres连接器来捕获postgres表中的更改。
此连接器https://debezium.io/documentation/reference/connectors/postgresql.html的文档
提到一个配置参数
table.include.list
但是,当我将此参数的值设置为'config.abc'时。即使在这之后,配置模式中的两个表(即abc和def)的更改也会被流式传输。
我这样做的原因是,我想为两个表中的每个表创建两个单独的连接器,以分割负载并更快地更改数据流。
这是已知问题吗?无论如何要克服这?
2条答案
按热度按时间tkqqtvp11#
同样的问题在这里(Debezium版本:1.1.0.Final和postgresql:11.13.0)。下面是我的配置:
另一个表partsmaster.basic中的更改导致此连接器失败,因为属性planning_id在表partsmaster. basic中不可用。
我需要为每个表单独的连接器。table.include.list不起作用。table. exclusion.list都没有。
我最后的办法是为每个连接器使用单独的Postgres Publication。但我仍然希望我能在这里找到一个立即的配置解决方案,或者被指出我错过了什么。在以前的版本中,我使用table.whitelist没有问题。
解决方案:
1.为每个表创建单独的发布:
CREATE PUBLICATION dbz_planning FOR TABLE partsmaster.planning;
1.删除上一个复制插槽:
选择pg_drop_replication_slot('debezium_planning');
1.更改连接器配置:
{“slot.name“:“dbz_planning”,“publication.name“:“planning_publication”}
瞧!
lb3vh1jj2#
Debezium文档显示
因此,除非连接器在同一组表上工作,否则每个连接器都需要唯一的发布