Flink CDC控制台上取消任务 不会保存savepoint吗?
FLINk CDC 任务今天遇到一条脏数据,然后想开一下容忍行 'sink.properties.max_filter_ratio' = '0.1',
结果好像全部重新消费了,数据有1亿多行
如果在 Flink 控制台上点击取消任务(Cancel Job),Flink 会在任务停止时保存 Savepoint。不过需要注意的是,Savepoint 只会在 Checkpoint 中保存 Flink 的运行状态和元数据,并不能保存用户的数据。因此,在取消任务时,需要提前做好数据备份,并妥善处理后续的工作。
另外,可以通过命令行操作,使任务在完成任务前生成 Savepoint。具体的命令如下:
flink stop [jobid] --savepoint path/to/savepoint
这样便可以生成一个 Savepoint 文件,保存运行状态及状态。
在Flink CDC中,如果你直接在控制台上取消任务,那么当前的任务状态将会丢失,包括所有的savepoint。这是因为在控制台上取消任务实际上是在停止任务,而停止任务并不会保存任何的状态信息。
如果你想在任务出现问题时能够恢复到之前的某个状态,你需要在任务启动时就设置好savepoint的策略。在Flink CDC中,你可以通过在任务配置文件中设置execution.checkpointing.interval
和execution.checkpointing.timeout
两个参数来控制savepoint的生成频率和时间间隔。
至于你提到的脏数据问题,如果你想要让任务对脏数据有一定的容忍度,你可以通过设置sink.properties.max_filter_ratio
参数来实现。这个参数的值表示任务可以接受的脏数据的最大比例。例如,如果这个参数的值为0.1,那么任务可以接受最多10%的脏数据。
然而,需要注意的是,这个参数并不能保证任务在遇到脏数据时能够正常运行。相反,它只是让任务在遇到脏数据时能够继续运行,而不是立即停止。因此,如果你发现任务在处理脏数据时出现了异常,你应该首先检查你的数据质量,然后再考虑是否需要调整这个参数的值。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。