Flink作业重启后,如何保证数据不丢失? 您所在的位置:网站首页 flink数据丢失 Flink作业重启后,如何保证数据不丢失?

Flink作业重启后,如何保证数据不丢失?

2024-05-01 18:51| 来源: 网络整理| 查看: 265

对于Flink SQL作业,您可以勾选开启Checkpoint,并合理配置Checkpoint间隔(权衡执行Checkpoint对业务性能的影响以及异常恢复的时长),同时勾选异常自动重启,并勾选从Checkpoint恢复。配置后,作业异常重启,会从最新成功的checkpoint文件恢复内部状态和消费位点,保证数据不丢失及聚合算子等内部状态的精确一致语义。同时,为了保证数据不重复,建议使用带主键数据库或者文件系统作为目标数据源,否则下游处理业务需要加上去重逻辑(最新成功checkpoint记录位点到异常时间段内的数据会重复消费)。 image.png

对于Flink jar作业,您需要参考https://support.huaweicloud.com/dli_faq/dli_03_0038.html,在代码中开启Checkpoint,同时如果有自定义的状态需要保存,您还需要实现ListCheckpointed接口,并为每个算子设置唯一ID。然后在作业配置中,勾选从Checkpoint恢复,并准确配置Checkpoint路径。注意:Flink Checkpoint机制可以保证Flink平台可感知内部状态的精确一致,但对于自定义Source/Sink或者有状态算子,需要合理实现ListCheckpointed接口,来保证业务数据需要的可靠性。 image.png



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有