由于项目需求,需要对一些“危险”语句进行过滤(即:不进行同步)。所以想在EventProcessor中,通过EventData.getSql()方法获取同步的SQL语句,但实际情况是无法获取insert、update、delete场景下的SQL语句。但是,我在看EventData类中的sql字段描述时,上面的描述是可以获取动态的SQL。是否有大神可以指点下。谢谢。
tkqqtvp11#
补充下:1、我的mysql是>=5.6,并且在@agapple 大神的指导下,开启了binlog_rows_query_log_events
2、通过canal 1.1.1版本,可以通过com.alibaba.otter.canal.protocol.CanalEntry.RowChange中有一个getSql()方法,来获取到SQL语句
但是,在otter的TestEventProcessor实现类中,无法通过EventData.getSql()获取到SQL语句。
wydwbb8l2#
这个sql字段只针对DDL语句, 其他的DML语句无法获取
2条答案
按热度按时间tkqqtvp11#
补充下:
1、我的mysql是>=5.6,并且在@agapple 大神的指导下,开启了binlog_rows_query_log_events
2、通过canal 1.1.1版本,可以通过com.alibaba.otter.canal.protocol.CanalEntry.RowChange中有一个getSql()方法,来获取到SQL语句
但是,在otter的TestEventProcessor实现类中,无法通过EventData.getSql()获取到SQL语句。
wydwbb8l2#
这个sql字段只针对DDL语句, 其他的DML语句无法获取