Flink

转换算子

1.map

一进一出 消费一个数据产生一个数据

`

val value = env.addSource(new FlinkKafkaConsumer("test", new SimpleStringSchema(), properties)).map(word => (word, 1))

`

2.flatMap

消费一个数据经过处理可能产生零个或多个数据

3.filter

过滤算子 满足条件的数据保留不满足的舍弃

4.KeyBy

逻辑地将一个流拆分成不相交的分区,每个分区包含具有相同key的元素,在内部hash的形式实现的

5.滚动聚合算子(Rolling Aggregation)

这些算子可以针对KeydStream的每一个支流做聚合。

sum()
min()
max() (只替代对应的字段)
minBy()
maxBy() (对应的一条数据都取出来)

(keyby和maxby配合使用)

6.Reduce

一个分组数据流的聚合操作,合并当前的元素和上次聚合的结果,产生一个新的值,返回的流中包含每一次聚合的结果,而不是只返回最后一次聚合的最终结果。

7.split和select

split

根据某些特征把一个DataStream拆分成两个或多个DataStream

select

从一个SplitStream中获取一个或者多个DataStream

需要:传感器数据按照温度高低,拆分成两个流

8.Connect和CoMap

Connect

连接两个保持他们类型的数据流,两个数据被Connect之后,只是被放在了一个同一个流中,内部依然保持各自的数据和形式不发生任何变化,两个相互独立。

CoMap

作用于ConnectedStreams上,功能与map和flatMap一样,对ConnectedStreams中的每一个Stream分别进行map和flatMap处理。

flink的window机制

窗口描述

是一种切割无限数据为有限块进行处理的手段

窗口是处理无界流的核心

窗口的分类

1.基于时间的窗口

左闭右开

滚动窗口
滑动窗口
会话窗口
全局窗口
2.基于元素个数的

滚动窗口

滑动窗口

3Window Function

ReduceFunction(增量聚合函数)

AggregateFunction(增量聚合函数)

ProcessWindowFunction(全窗口函数)

Flink中的时间语义与WaterMark

1.处理时间

处理时间是指的执行操作的各个设备的时间

2.事件时间

是指的这个事件发生的时间

那种时间重要

Flink中的状态分类

Managed StateRaw State
状态管理方式Flink Runtime 托管,自动存储、自动恢复、自动伸缩用户自己管理
状态数据结构Flink提供多种常用结构,例如ListState MaoState等字节数组:byte[]
使用场景决大数Flink算子所有算子
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LMY~~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值