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

Flink CDC 中mysql cdc的schema读取阶段是不是单线程串行的?

Flink CDC 中mysql cdc的schema读取阶段是不是单线程串行的?

展开
收起
真的很搞笑 2023-07-02 16:53:58 82 0
2 条回答
写回答
取消 提交回答
  • 非常抱歉,之前的回答有误。在 Flink CDC 中,并没有版本可以直接解决新增字段之前数据不同步的问题。

    Flink CDC 是基于变更日志(CDC Events)来消费数据的,而在表结构发生变更之前,变更日志中是不包含新增字段的数据的。因此,无论使用哪个版本的 Flink CDC,都无法直接从变更日志中获取新增字段之前的数据。

    如果您需要同步新增字段之前的数据,可能需要考虑其他方式,例如手动编写代码来处理历史数据同步或者使用其他工具进行数据迁移。

    非常抱歉给您带来了困扰,请忽略之前回答中的错误信息。如有其他问题,请随时提问。

    2023-07-30 12:54:47
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    Flink CDC 中的 schema 读取阶段默认是单线程串行的。
    具体来说,Flink CDC 为每个 MySQL 或 PostgreSQL 数据库分配一个 canal client 实例。
    在初始化阶段,每个 canal client 会从数据库中读取表结构(schema)信息,这个过程是单线程串行进行的。
    Flink CDC 会做如下操作:
    读取数据库中的所有表结构(表名、字段名、字段类型等)
    根据表结构创建 Flink TableSchema 对象,作为后续数据的 Schema
    创建对应的 Flink DataStream 用于消费数据库变化日志
    这个 schema 读取阶段是单线程串行的,也就是说 Flink CDC 一个 canal client 只会一个一个表读取表结构信息。
    所以对于有很多表的数据库,这个初始化过程可能需要一定的时间。
    但是数据消费阶段(读取变更日志)Flink CDC 是采用多线程并行的,可以并发消费多个表的变更日志。
    希望以上信息能为你

    2023-07-30 10:31:37
    赞同 展开评论 打赏

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

相关产品

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

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载