开发者社区> 问答> 正文

请问在 flink sql 中建立的多张表应当怎样分辨接收 kafka 传来的 canal-json

这是我在 flink sql 中建立的两张表: create table base ( id int, location varchar(20) )WITH ( 'connector' = 'kafka', 'topic' = 'example', 'properties.group.id' = 'testGroup', 'scan.startup.mode' = 'latest-offset', 'properties.bootstrap.servers' = 'localhost:9092', 'format' = 'canal-json', 'canal-json.ignore-parse-errors'='true' );

create table twocol ( a int, b varchar(20) ) -- WITH 部分和上面一样

此时我在 mysql 执行了以下插入: insert into base values (1, 'beijing');

canal 通过 kafka 将日志传给了 flink,于是 flink 的 base 表里多了一条记录 (1, 'beijing'),然而 twocol 表里也多了一条 (null, null).

请问大家,有什么方法可以指定哪张表接收对应的 catalog 吗?如果不能的话,大家是怎样解决这样的问题的,谢谢!

*来自志愿者整理的flink邮件归档

展开
收起
游客sadna6pkvqnz6 2021-12-07 17:38:53 1248 0
1 条回答
写回答
取消 提交回答
  • 现在只支持一个topic里包含单张表的changelog, 你这个case相当于用了一个topic里包含多张表的changelog,只是twocol在解析binlog时 a,b 字段找不到,你配置ignore-parse-errors就会返回(null,null) 建议每张chagnelog表和一个topic对应就可以了*来自志愿者整理的flink

    2021-12-07 21:40:23
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载