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

Flink CDC动态添加表,这里能不能设置启动模式为增量?

Flink CDC动态添加表,这里能不能设置启动模式为增量?image.png

展开
收起
真的很搞笑 2023-07-02 11:51:43 229 0
2 条回答
写回答
取消 提交回答
  • 对于 Flink CDC 动态添加表,可以设置启动模式为增量。具体有两种方式:

    1. 通过设置 allowNonRestoredState 配置参数:在 Flink 的配置文件中,可以设置 table.dynamic.table-sources.name.allowNonRestoredState=true。这个配置参数可以使得在动态添加表时,忽略之前的状态,从当前的 binlog 文件开始同步,实现增量启动。

    2. 通过指定 binlog 的开始位置:在 Flink 的配置文件中,可以设置 table.dynamic.table-sources.name.binlogStartPosition = "xxxxx.binlogfilename:xxxx"。通过指定具体的 binlog 文件位置,CDC 作业会从该位置开始同步,实现增量效果。

    因此,总结起来,有两种方法可以实现动态添加表的增量启动模式:

    - 允许非恢复状态:通过配置 allowNonRestoredState,从当前的 binlog 开始消费,忽略之前的状态。

    - 指定 binlog 的开始位置:通过配置 binlogStartPosition,从指定的位置开始消费 binlog,达到增量的效果。

    这些方式都能确保新添加的表不需要处理历史数据,仅消费 binlog 日志中从当前开始的变更,避免重复消费。默认情况下,动态添加表会试图将状态还原到上次作业停止的位置,但通过上述配置,可以实现新表的增量启动模式。

    2023-07-30 13:06:10
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    对于Flink CDC动态添加表,确实可以设置为增量启动模式。
    主要有两种方式:
    通过设置配置 allowNonRestoredState:
    properties
    Copy
    table.dynamic.table-sources.name.allowNonRestoredState=true
    这个配置能让表在动态添加时,忽略之前的状态,从当前binlog文件开始同步。即增量启动。
    通过直接指定 binlog 的开始位置:
    properties
    Copy
    table.dynamic.table-sources.name.binlogStartPosition = "xxxxx.binlogfilename:xxxx"
    指定 binlog 文件的具体位置后,CDC 作业也会从该位置开始同步,达到增量的效果。
    所以总的来说,有两种方法可以实现动态添加表的增量启动模式:
    允许非恢复状态(忽略之前状态),从当前 binlog 开始消费
    直接指定 binlog 的开始位置(offset),从指定位置开始消费
    这两种方式都可以确保:
    新添加的表不需要处理历史的数据
    仅消费 binlog 日志中当前开始的变更,避免重复消费
    默认情况下,动态添加表会尝试将状态还原到上次作业停止时的位置。
    但通过上述配置,可以让新添加的表仅处理最新的数据,即增量启动。

    2023-07-30 11:02:28
    赞同 展开评论 打赏

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

相关产品

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

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