请教一下,flink1.15.2 使用flinksql的时候 开启了checkpoint,每个分区?

请教一下,flink1.15.2 使用flinksql的时候 开启了checkpoint,每个分区都有数据,流重新发布会报某个partition的offset没有找到,这个是版本bug嘛?image.png

展开
收起
真的很搞笑 2023-08-23 16:34:03 143 分享 版权
1 条回答
写回答
取消 提交回答
  • Flink SQL 1.15.2 默认会使用每个分区一个 checkpoint 的策略。

    开启 checkpoint 之后,Flink SQL 会在每个分区创建一个 checkpoint barrier。当 checkpoint barrier 到达了所有任务节点,Flink SQL 会在该分区创建一个 checkpoint。如果开启了 exactly-once 语义,Flink SQL 还会在 checkpoint 之后将分区的状态写入 state backend。

    checkpoint 可以在 Flink SQL 的 SQL 语句中通过 SET AUTO_COMMIT 语句进行配置。如果设置 AUTO_COMMIT = true,Flink SQL 会在每个分区创建一个 checkpoint。如果设置 AUTO_COMMIT = false,Flink SQL 会在所有分区创建一个 checkpoint。

    如果需要在每个分区创建多个 checkpoint,可以通过 SET CHECKPOINT_INTERVAL 语句进行配置。CHECKPOINT_INTERVAL 表示两个 checkpoint 之间的时间间隔。默认情况下,CHECKPOINT_INTERVAL 为 0,也就是每个分区只会创建一个 checkpoint。当设置了 CHECKPOINT_INTERVAL 之后,Flink SQL 会在每个分区创建多个 checkpoint。

    每个分区创建多个 checkpoint 可能会带来一些性能开销。因此,只有当需要严格保证 exactly-once 语义时,才建议开启这个配置。

    2023-09-18 16:34:58
    赞同 展开评论

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

还有其他疑问?
咨询AI助理