java - Debezium не может анализировать операторы DDL (create proc) соединитель mysql

Я интегрировал соединитель debezium в Kafka connect для потоковой передачи моих изменений mysql db. Для некоторых процедур не удается прочитать файлы двоичного журнала. Есть предложения или обходные пути? Застрял с этой проблемой. Могу ли я указать в mysql, чтобы журналы ddl не помещались в файлы binlog?

2017-10-10 15:20:22,314 ERROR  MySQL|dbStreamer|binlog  Failed due to error: Error processing binlog event            [io.debezium.connector.mysql.BinlogReader]
org.apache.kafka.connect.errors.ConnectException: Unexpected exception (One or more errors trying to parse statement at line 1, column 8) parsing at line 1, column 8
at io.debezium.connector.mysql.AbstractReader.wrap(AbstractReader.java:164)
at io.debezium.connector.mysql.AbstractReader.failed(AbstractReader.java:142)
at io.debezium.connector.mysql.BinlogReader.handleEvent(BinlogReader.java:332)
at com.github.shyiko.mysql.binlog.BinaryLogClient.notifyEventListeners(BinaryLogClient.java:902)
at com.github.shyiko.mysql.binlog.BinaryLogClient.listenForEventPackets(BinaryLogClient.java:760)
at com.github.shyiko.mysql.binlog.BinaryLogClient.connect(BinaryLogClient.java:472)
at com.github.shyiko.mysql.binlog.BinaryLogClient$5.run(BinaryLogClient.java:657)
at java.lang.Thread.run(Thread.java:748)
Caused by: io.debezium.text.ParsingException: Unexpected exception (One or more errors trying to parse statement at line 1, column 8) parsing at line 1, column 8
at io.debezium.relational.ddl.DdlParser.parsingFailed(DdlParser.java:660)
at io.debezium.relational.ddl.DdlParser.parse(DdlParser.java:294)
at io.debezium.relational.ddl.DdlParser.parse(DdlParser.java:267)
at io.debezium.connector.mysql.MySqlSchema.applyDdl(MySqlSchema.java:354)
at io.debezium.connector.mysql.BinlogReader.handleQueryEvent(BinlogReader.java:461)
at io.debezium.connector.mysql.BinlogReader.handleEvent(BinlogReader.java:319)
... 5 more
Caused by: One or more errors trying to parse statement at line 1, column 8
io.debezium.text.ParsingException: Expecting VIEW at line 1, column 35 but found 'PROCEDURE': =`root`@`localhost`  ===>> PROCEDURE `azuga`.`c
io.debezium.text.ParsingException: No more content

person Sabyasachi    schedule 10.10.2017    source источник
comment
В строке 1, столбец 35 указано Ожидание просмотра, но найдено "ПРОЦЕДУРА".   -  person Sabyasachi    schedule 10.10.2017


Ответы (1)


вам необходимо поднять проблему в системе отслеживания проблем. Парсер DDL может обработать (пропустить) заявления для создания процедур, но не идеальны. Если бы вы могли предоставить рассматриваемый код, мы могли бы использовать синтаксический анализатор.

person Jiri Pechanec    schedule 11.10.2017
comment
Решено. Установка для этого свойства database.history.skip.unparseable.ddl значения true игнорирует все неразборчивые операторы ddl. - person Sabyasachi; 13.10.2017
comment
Это скорее исправление, чем реальное решение. Проблема заключается в том, что если вы в будущем встретите другой неразборчивый DDL, который проверяет не процедуру, а таблицы, вы можете и дальше в ситуации, когда схема не будет соответствовать данным. - person Jiri Pechanec; 16.10.2017