借宝地,我们的场景很像,cdc流与cdc的join,打成宽表。 我也遇到过这种问题,cdc流与cdc的join, 当数据量大的时候,容易出问题(我的checkpoint设置的时间是2小时,超时时间只设置成了10分钟,失败次数设置得超大,超时时长太长,设置成2小时,基本上数据都流不动)
1、snapshot 的时候,老是会有i/o问题。flink侧的日志就是这样的。 ./flink--taskexecutor-0-flink-taskmanager-v1-11-2-fcf8f675f-gn8q8.log.5:146619:2020-11-14 00:19:53,578 ERROR io.debezium.connector.mysql.SnapshotReader [] - Failed due to error: Aborting snapshot due to error when last running 'SELECT * FROM `low_db`.`t_low_media`': Streaming result set com.mysql.cj.protocol.a.result.ResultsetRowsStreaming@3d208504 is still active. No statements may be issued when any streaming result sets are open and in use on a given connection. Ensure that you have called .close() on any active streaming result sets before attempting more queries. MySQL侧的show processlist 就看不到'SELECT * FROM `low_db`.`t_low_media`'这个命令了。 猜测是因为反压严重,然后链路上没有数据传输,空闲太久,挂了。。。。 2、join后的view做sink的时候,由于有join在,在某些情况下,结果输出存在乱序情况(Retract流输出可能放到不同的subtask上),导致sink结果不对。除非并行度设置成1,不然大概率乱序! -- Sent from: http://apache-flink.147419.n8.nabble.com/
