使用Debezium连接器为含特殊字符的SQL Server表创建Kafka Topic失败求助
解决Debezium连接SQL Server含特殊字符表的Topic生成问题
针对你遇到的带$符号的SQL Server表无法生成Kafka Topic的问题,试试下面这些解决办法:
转义正则特殊字符:Debezium的
table.include.list参数默认按正则表达式解析,而$在正则里是表示字符串结尾的特殊字符,必须转义。配置要写成:"table.include.list": "dbo.all_bus\\$"注意这里用双反斜杠
\\,因为JSON字符串里需要额外转义一次反斜杠。明确正则匹配规则:如果单转义
$还是不行,把表名里的点.也转义(.在正则里匹配任意字符),配置改成:"table.include.list": "dbo\\.all_bus\\$"检查表的CDC状态:确认
all_bus$表已经开启了变更数据捕获(CDC),Debezium依赖SQL Server的CDC功能才能捕获表的变化并生成Topic。如果没开CDC,先执行SQL开启:ALTER TABLE dbo.all_bus$ ENABLE CHANGE_TRACKING WITH (TRACK_COLUMNS_UPDATED = ON);查看连接器日志排查:去Confluent的连接器运行日志里找报错信息,比如有没有“表不存在”的提示,能直接定位是配置问题还是表的识别问题。
用表的object_id匹配:如果名称匹配始终有问题,查一下
all_bus$表的object_id(执行SELECT object_id FROM sys.tables WHERE name = 'all_bus$'获取),然后用ID配置:"table.include.list": "123456"替换成实际查到的object_id,这种方式跳过表名的特殊字符问题,直接匹配表的系统ID。
内容的提问来源于stack exchange,提问作者sangita
相关产品推荐
相关产品推荐

