flinkx 实时数据采集 mysql binlog

Binlog插件基本原理

实时采集插件的核心是如何实时捕获数据库数据的变更,对于MySQL数据库而言,阿里开源的Canal已经很好的帮我们实现了基于MySQL数据库增量日志解析,提供增量数据订阅和消费功能。因此这里我们直接用Canal捕获MySQL数据库数据的变更信息,基于FlinkX框架将任务简化成脚本的配置,基于Flink的Checkpoint机制提供了任务的故障恢复,提高了任务的容错性。

基本步骤如下:

  1. 任务启动时启动Canal线程
  2. Canal模拟MySQL slave的交互协议,伪装自己为MySQL slave,向MySQL master发送dump协议
  3. MySQL master收到dump请求,开始推送Binary Log给slave(即Canal)
    Canal解析Binary Log 对象(原始为Byte流)
  4. FlinkX获取Canal解析后的对象做二次解析,封装后发送至下游数据源
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐