在 Flink CDC 中,op=r 表示数据的变更操作是一个 read 操作,也就是查询操作。在 CDC 中,查询操作并不会产生数据的变更,因此 op=r 表示的是一种特殊的情况,即 CDC 没有检测到数据的变更,但是仍然需要进行相应的处理,例如生成相应的元数据信息和事件通知等。
在实际的数据同步过程中,op=r 可能会出现在一些特殊的情况下,例如某些查询操作会触发相应的触发器或者事件通知,此时 CDC 会将这些操作解析为 op=r,并生成相应的元数据信息和事件通知,以便后续的数据同步和处理。
在 Flink CDC 中,"op" 为 "r" 表示读取了历史数据(Read),这是因为在启动 Flink CDC 任务时,它需要先读取历史数据以建立初始状态。读取历史数据的目的是确保任务能够从正确的起点开始进行增量变更的捕获和处理。
当 Flink CDC 启动时,它会首先读取数据库中的历史数据,并将其作为初始状态,在此基础上开始捕获和处理增量变更。这样可以确保任务不会错过任何重要的变更,同时建立正确的状态用于后续的计算和分析。
在日志中的每条记录都包含一个 "op" 字段,用于指示操作类型。在您的情况下,“op” 为 “r” 表示读取历史数据。随后,CDC 将开始按照时间顺序读取 binlog 日志,捕获并输出变更数据。
历史数据, read,先拿历史:因为可能没binklog了,然后再去拿最开始的binlog往后补数据,此回答整理自钉群“Flink CDC 社区”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。