暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

建议收藏 | Flink CDC 系列总结篇 ↗

大数据技能圈 2024-10-18
277
经过两周左右的更新,FlinkCDC系列核心部分基本接近尾声,下一趴会进入Doris部分,FlinkCDC主要分为2.0系列和3.0系列版本,2.0系列版本以SQL方式开发同步脚步,所用jar包含connector关键词,3.0系列版本,可以用yaml方式开发同步任务,所用jar包包含pipeline关键词,并且支持全库同步。
下面将Flinkcdc分成2.0版本和3.0分别进行总结:

01

2.0版本

01

使用connector jar包

    -- streaming模式
    flink-connector-mysql-cdc-2.x.x.jar
    -- SQL模式
    flink-sql-connector-mysql-cdc-2.x.x.jar 
    flink-connector-oracle-cdc-2.x.x.jar
    flink-sql-connector-oracle-cdc-2.x.x.jar
    ... 

    02

    使用方式

      -- 每 3 秒做一次 checkpoint,用于测试,生产配置建议5到10分钟                      
      Flink SQL> SET 'execution.checkpointing.interval' = '3s';


      -- 在 Flink SQL中注册 MySQL 表 'orders'
      Flink SQL> CREATE TABLE orders (
      order_id INT,
      order_date TIMESTAMP(0),
      customer_name STRING,
      price DECIMAL(10, 5),
      product_id INT,
      order_status BOOLEAN,
      PRIMARY KEY(order_id) NOT ENFORCED
      ) WITH (
      'connector' = 'mysql-cdc',
      'hostname' = 'localhost',
      'port' = '3306',
      'username' = 'root',
      'password' = '123456',
      'database-name' = 'mydb',
      'table-name' = 'orders');


      -- 从订单表读取全量数据(快照)和增量数据(binlog)
      Flink SQL> SELECT * FROM orders; 

      03

      connector方式原理

       connector方式原理可以点击这篇文章,FlinkCDC3.0系列版本connector 方式同样基于此原理实现:

      终于搞明白了 Flink CDC 2.0 原理,人麻了...

      这或许是一个对你有用的开源项目data-warehouse-learning 项目是一套基于 MySQL + Kafka + Hadoop + Hive + Dolphinscheduler + Doris + Seatunnel + Paimon + Hudi + Iceberg + Flink + Dinky + DataRT + SuperSet 实现的实时离线数仓(数据湖)系统,以大家最熟悉的电商业务为切入点,详细讲述并实现了数据产生、同步、数据建模、数仓(数据湖)建设、数据服务、BI报表展示等数据全链路处理流程。

      https://gitee.com/wzylzjtn/data-warehouse-learning

      https://github.com/Mrkuhuo/data-warehouse-learning

      https://bigdatacircle.top/

      项目演示:

      02

      3.0版本

      01

       pipeline jar包

      Flinkcdc 3.0系列版本新增yaml方式开发脚本,该方式依赖pipeline jar包,如果使用3.0系列版本的connector jar包,用法跟2.0版本保持一致。

        flink-cdc-pipeline-connector-doris-3.1.0.jar
        flink-cdc-pipeline-connector-mysql-3.1.0.jar
        .....

        02

        使用方式

          source:
          type: mysql
          name: MySQL Source
          hostname: 127.0.0.1
          port: 3306
          username: admin
          password: pass
          tables: adb.\.*, bdb.user_table_[0-9]+, [app|web].order_\.*
          server-id: 5401-5404


          sink:
          type: doris
          name: Doris Sink
          fenodes: 127.0.0.1:8030
          username: root
          password: pass


          pipeline:
          name: MySQL to Doris Pipeline
          parallelism: 4

          03

          pipeline 方式原理

           pipeline原理可以点击下面这篇文章:

          太强了! Flink CDC 3.0 支持表结构变更自动同步,再也不用挨个建表了↗

          pipeline方式使用案例可以参考下面两个案例:

          FlinkCDC Streaming ELT 同步 MySQL 到 Doris 保姆级教程↗

          FlinkCDC Streaming ELT 同步 MySQL 到 StarRocks 保姆级教程↗

          03

          加入知识星球

          04

          进交流群群添加作者

          推荐阅读系列文章

          文章转载自大数据技能圈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

          评论