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

Flink CDC2.2.1 支持通过指定或者timestamp的方式做增量同步吗?

Flink CDC2.2.1 支持通过source 指定 binlog或者timestamp的方式做增量同步吗?

展开
收起
cuicuicuic 2024-01-01 09:01:42 40 0
3 条回答
写回答
取消 提交回答
  • 支持的,可以看看doc的version ,此回答整理自钉群“Flink CDC 社区”

    2024-01-02 08:13:32
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    Flink CDC 支持通过 Source 连接器从诸如 MySQL,MariaDB, RDS MySQL,Aurora MySQL,PolarDB MySQL,PostgreSQL,Oracle,MongoDB,SqlServer,OceanBase,PolarDB-X,TiDB等数据库采集数据。对于增量同步,Flink可以消费binlog数据来实现。在Flink中,可以通过在Flink SQL中使用 CREATE TABLE 语句来定义一个 Flink CDC 表,并使用 STARTUP 选项来指定 binlog 的起始位置或起始时间点。例如:

    CREATE TABLE my_source (
        id INT,
        name STRING,
        ts TIMESTAMP(3),
        PRIMARY KEY (id) NOT ENFORCED
    ) WITH (
        'connector' = 'mysql-cdc',
        'hostname' = 'localhost',
        'port' = '3306',
        'username' = 'root',
        'password' = 'password',
        'database-name' = 'test_db',
        'table-name' = 'test_table',
        'scan.startup.mode' = 'latest-offset' -- or 'specific-offset' to specify the binlog position to start reading data from
    );
    

    这样,Flink CDC 就可以通过 Source 连接器以 binlog 或者时间戳的方式做增量同步了。

    2024-01-01 12:44:51
    赞同 展开评论 打赏
  • Flink CDC 2.2.1 版本不支持通过 source 指定 binlog 或者 timestamp 的方式来做增量同步。在 Flink CDC 2.2.1 版本中,增量同步是基于数据库的 binlog 日志来实现的,而不是通过指定具体的 binlog 文件或者时间戳。

    然而,Flink CDC 2.2.1 版本支持在执行 checkpoint 时将位点存储到 state,以支持 exacty-once 语义。这意味着,如果你想要从特定的位点开始同步数据,你可以通过从 savepoint 恢复的方式来实现。

    需要注意的是,这种方法并不能精确地控制同步的起始位点,因为它依赖于 Flink 任务的 checkpoint 机制。此外,由于 Flink CDC 依赖于 Debezium engine 来捕获数据更改,因此在恢复位点的同时,还需要恢复 HistoryDatabase,这可能会增加恢复过程的复杂性。

    2024-01-01 10:09:13
    赞同 展开评论 打赏

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

相关产品

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

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