带有连接 table.include.list 的 Debezium docker 不起作用

Posted

技术标签:

【中文标题】带有连接 table.include.list 的 Debezium docker 不起作用【英文标题】:Debezium docker with connect table.include.list not working 【发布时间】:2021-09-03 23:17:14 【问题描述】:

我正在使用此示例将 elasticsearch 与 mssql https://github.com/debezium/debezium-examples/tree/master/unwrap-smt#elasticsearch-sink 同步

我正在使用这个 mssql 连接设置运行 debezium 1.5:


    "name": "Test-connector", 
    "config": 
        "connector.class": "io.debezium.connector.sqlserver.SqlServerConnector", 
        "database.hostname": "192.168.1.234", 
        "database.port": "1433", 
        "database.user": "user", 
        "database.password": "pass", 
        "database.dbname": "Test", 
        "database.server.name": "MyServer",
        "table.include.list": "dbo.TEST_A",
        "database.history.kafka.bootstrap.servers": "kafka:9092", 
        "database.history.kafka.topic": "dbhistory.testA"
    

根据 debezium https://debezium.io/documentation/reference/connectors/sqlserver.html table.include.list

一个可选的以逗号分隔的正则表达式列表,匹配您希望 Debezium 捕获的表的完全限定表标识符;未包含在 table.include.list 中的任何表都将从捕获中排除。每个标识符的格式为 schemaName.tableName。默认情况下,连接器会捕获指定模式的所有非系统表。不得与 table.exclude.list 一起使用。

当我运行这个连接器时,kafka 不尊重 table.exclude.list。列出主题显示所有表已被捕获。 TEST_A 主题也在那里。我也试过 "snapshot.include.collection.list": "Test.dbo.TEST_A" 没有结果。我错过了什么?

【问题讨论】:

dbo.TEST_A 中的 dbo 是什么?您已指定 "database.dbname": "Test"。所以,“table.include.list”应该是“Test.TEST_A”。 【参考方案1】:

我发现它应该是 table.whitelist 而不是 table.include.list。不知道为什么。

【讨论】:

以上是关于带有连接 table.include.list 的 Debezium docker 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Kafka 连接(Debezium mysql 连接器)只监听 table.include.list 中的特定表

table.include.list 配置参数在 Debezium Postgres 连接器中不起作用

删除“table.include.list”不会强制 Debezium 为数据库中的其余表创建主题

如何将带有内连接语句的 Sql 查询转换为带有 Where 语句的 sql 查询(语句中没有内连接)

带有选项的光滑左/右/外连接

在 Oracle 中,这是带有过滤器的交叉连接还是内部连接?