请教一下Flink CDC,我用upsert-kafka作为source 输入源。
使用jdbc 作为sink,写入mysql,会出现偶发性的delete记录没有写mysql的现象,这个是什么问题呀?
用的是FlinkCDC 2.2 + Flink-1.14.2
任务刚提交的时候,delete动作会执行,但是过一段时间后,kafka里输入一个-D的记录,jdbc就不会写库里
根据您的描述,看起来像是某种bug导致删除操作没有被正确处理。这种情况可能与Flink的任务调度、延迟或其他因素有关。
为了排查此类问题,建议采取以下步骤:
这个问题可能是由于Flink CDC在处理upsert-kafka输入源时,对于某些特定的数据变化(如delete)的处理不够稳定。当Kafka中出现一个-D的记录时,Flink CDC可能会暂时忽略这个变化,导致MySQL中没有删除相应的记录。
为了解决这个问题,你可以尝试以下方法:
maximum number of retries
(最大重试次数)或retry interval
(重试间隔),以便在遇到问题时能够更好地处理数据变化。LOG.info("Processing change {}", change);
这样,当任务出现问题时,你可以查看日志以获取更多关于问题的详细信息。
根据您的描述,可能会有以下原因导致 DELETE 记录不写入 MySQL:
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。