开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

Flink CDC在获取全量数据阶段的时候是基于查询的,还是基于binlog日志的呢?

如果是数据采集的这个阶段的话,是不是依靠什么无锁算法啥的处理一致性的,但是我就是觉得Flink CDC在获取全量数据阶段的时候是基于查询的,还是基于binlog日志的呢?

展开
收起
游客6vdkhpqtie2h2 2022-09-08 11:19:53 596 0
1 条回答
写回答
取消 提交回答
  • 看源码,基于查询的

      <dependency>
          <groupId>com.ververica</groupId>
          <artifactId>flink-connector-mysql-cdc</artifactId>
          <version>2.2.0</version>
      </dependency>
    

    查记录总数及任务分割
    com.ververica.cdc.connectors.mysql.source.assigners.ChunkSplitter

    private List splitTableIntoChunks() {
    final Object[] minMaxOfSplitColumn = queryMinMax(jdbc, tableId, splitColumnName);
    }

    查询数据

    com.ververica.cdc.connectors.mysql.debezium.task.MySqlSnapshotSplitReadTask

    private void createDataEventsForTable () {

    ResultSet rs = selectStatement.executeQuery()

    }

    2023-11-08 18:44:51
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink峰会 - 徐榜江 立即下载
    Flink CDC Meetup PPT - 龚中强 立即下载
    PolarDB-X 2.0 全局 Binlog 与备份恢复能 立即下载