Flink CDC中sql 模式下 允许忽略部分算子状态 这个功能默认开启,自己测试下,虽然功能默?[阿里云实时计算 Flink版]

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

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
2 条回复 A 作者 M 管理员
  1. 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) 启动该任务。

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

  2. 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 会保留所有算子状态,直到作业停止或者手动删除状态。因此,如果未启用忽略部分算子状态的功能,可能会导致状态占用过多的内存,影响作业的性能和稳定性。
    需要注意的是,忽略部分算子状态的功能是一种权衡,它可以在一定程度上减少算子

  3. 是的,此回答整理自钉群“Flink CDC 社区”