Flink FileSystem的connector分析

前言


从目前最新的Flink代码来看,现在它能够支持越来越多的connector类型了,不仅仅说包括于前面的Source的连接,还有后面Sink的选择。但是Flink的连接器不是简简单单的说做一个外部数据源系统的连接就OK的,而是要有一定的Exactly Once的恢复能力。因为Flink应用在做checkpoint的时候,要从前面的源到后续的Sink都得到完整的恢复。今天本文来讲述其中的基于文件系统的连接器实现,笔者主要阐述它在checkpoint模式下,如何做Exactly Once的恢复的。

FileSystem的RollingSink


在Flink的FileSystem连接器实现中,实现的一个很重要的特点是RollingSink。因为对于上游连续不断的数据传来,我们肯定不能永远让它写到一个恒定的文件或目录当中。所以这里会有一个rolling滚动的概念。那这个滚动规则如何呢?

一种简单的做法,按照小时时间级别的滚动,相当于我们人为地将1天分为了24个Bucket的概念。然后在这个目录下,我们再来按照文件大小阈值做文件的rolling。每个文件数据都是这个Bucket下内容的一部分。

当然啦,Flink也支持外部自定义Bucket的实现。

FileSystem连接器的Exactly Once恢复语义


因为Flink应用任务存在checkpoint语义恢复的情况,所以这里的文件系统连接器的文件状态在设计上不会只有一种情况了。下面我们从FileSystem Sink的文件状态讲起。

FileS

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值