flink cdc更新mysql记录,before after可以合并为一条吗?现在是一条delete,一条create
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
目前Flink CDC在处理MySQL记录的UPDATE操作时,并不支持将UPDATE_BEFORE(即变更前的记录)和UPDATE_AFTER(即变更后的记录)合并为一条UPDATE消息。而是将这两个操作分别编码为DELETE和INSERT类型的Canal或Maxwell消息。这意味着,当一个更新操作发生时,Flink会生成两条消息:首先是一条表示删除旧记录的DELETE消息,随后是一条表示插入新记录的INSERT消息。
因此,如果您观察到Flink作业在处理MySQL更新时输出为一条DELETE紧接着一条CREATE(实际上是INSERT),这是符合当前Flink CDC实现方式的预期行为。如果您有特定需求希望直接以UPDATE消息形式合并处理,请留意Flink后续版本是否提供了相关功能更新,或者考虑在Flink作业的下游对这类拆分的消息进行自定义处理来合并这些变更。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。