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

Flink CDC中sql 模式下 允许忽略部分算子状态 这个功能默认开启,自己测试下,虽然功能默?

Flink CDC中sql 模式下 允许忽略部分算子状态 这个功能默认开启,自己测试下,虽然功能默认开启,但是新增库、表第一次启动不会全量同步历史数据;需要单独启动一个任务全量同步之后,在老任务中加入待同步的库、表,然后从savepoint 启动?

展开
收起
真的很搞笑 2023-07-02 12:20:36 92 0
3 条回答
写回答
取消 提交回答
  • Flink CDC 中 SQL 模式下允许忽略部分算子状态的功能并不是默认开启的,需要在 Flink SQL 的配置文件中显式进行配置。

    在 Flink SQL 中,您可以使用 SET 命令来设置 Flink 的配置参数。要启用忽略部分算子状态的功能,需要将 table.exec.state.ttl.ms 参数设置为一个非负整数,表示算子状态的过期时间。例如,可以使用以下命令将算子状态的过期时间设置为 1 小时:

    SET table.exec.state.ttl.ms = 3600000;
    

    如果在 Flink SQL 中未设置 table.exec.state.ttl.ms 参数,则默认情况下,Flink 会保留所有算子状态,直到作业停止或手动删除状态。因此,如果未启用忽略部分算子状态的功能,可能会导致状态占用过多的内存,从而影响作业的性能和稳定性。

    根据您提供的信息,首次启动新增的库和表时不会进行全量同步历史数据。您可以尝试单独启动一个任务来进行全量同步,然后将待同步的库和表添加到旧任务中,并从保存点 (savepoint) 启动该任务。

    需要注意的是,忽略部分算子状态的功能是一种权衡,它可以在一定程度上减少算子状态的内存占用。但同时也需要考虑数据的一致性和处理逻辑。请根据具体需求来配置和使用此功能。

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

    link CDC 中 SQL 模式下允许忽略部分算子状态的功能并不是默认开启的,需要在 Flink SQL 配置文件中显式地进行配置。
    在 Flink SQL 中,可以使用 SET 命令对 Flink 的配置参数进行设置。如果要启用忽略部分算子状态的功能,需要将 table.exec.state.ttl.ms 参数设置为一个非负整数,表示算子状态的过期时间。例如,可以使用以下命令将算子状态的过期时间设置为 1 小时:
    Copy
    SET table.exec.state.ttl.ms = 3600000;
    在 Flink SQL 中,如果未设置 table.exec.state.ttl.ms 参数,则默认情况下 Flink 会保留所有算子状态,直到作业停止或者手动删除状态。因此,如果未启用忽略部分算子状态的功能,可能会导致状态占用过多的内存,影响作业的性能和稳定性。
    需要注意的是,忽略部分算子状态的功能是一种权衡,它可以在一定程度上减少算子

    2023-07-30 10:30:14
    赞同 展开评论 打赏
  • 是的,此回答整理自钉群“Flink CDC 社区”

    2023-07-02 12:32:07
    赞同 展开评论 打赏

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

相关产品

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

    更多
    SQL Server在电子商务中的应用与实践 立即下载
    GeoMesa on Spark SQL 立即下载
    原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载