5.自定义UDF

自定义UDF和窗口

普通UDF

Flink暴露了所有udf函数的接口(实现方式为接口或者抽象类)。例如MapFunction, FilterFunction, ProcessFunction等等。我们可以对这些函数进行自定义,继承这个类,重写其中的方法即可.

富函数

相比于普通的UDF,富函数实际上提供了额外的open方法和close提供给用户做初始化和清理的操作.另外,getRuntimeContext()方法提供了函数的RuntimeContext的一些信息,例如函数执行的并行度,当前子任务的索引,当前子任务的名字。同时还它还包含了访问分区状态的方法。

窗口

窗口(window)就是将无限流切割为有限流的一种方式,它会将流数据分发到有限大小的桶(bucket)中进行分析,flink中有两种窗口,时间窗口和计数窗口.

事件窗口就是按照事件戳划分的窗口包括滑动窗口,滚动窗口和会话窗口

滚动窗口

将数据依据固定的窗口长度对数据进行切分,时间对齐,窗口长度固定,没有重叠.一个event只能在一个窗口之中. timeWindow(Senconds(5))

滑动窗口

包括滑动步长和窗口大小,窗口长度固定,可以有重叠.timeWindow(Senconds(5),senconds(10))

会话窗口

flink独有,由一系列事件组合一个指定时间长度的 timeout 间隙组成,也就是一段时间没有接收到新数据就会生成新的窗口.即一个窗口中相邻的两个事件的时间戳小于timeout.

计数窗口

包括滚动计数和滑动计数,和时间的概率类似,

窗口函数

window function 定义了要对窗口中收集的数据做的计算操作.包括增量函数和全量函数,增量函数是来一条数据就做一个运算ReduceFunction, AggregateFunction,全量就是等一个窗口的数据收集完成统一计算ProcessWindowFunction.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值