flink
- 基础api 创建执行环境 sink 执行
这8个字节到底是整个还是2个2个字节解析,为什么需要数据类型,flink必须非常清楚数据结构,才有处理,还要网络传输。
- 解析泛型内部信息,应对泛型擦除,+类型提示
- 物理分区api
- shuffle打散,均匀分布
-
flink时间发生时间,到达时间,处理时间因为分布式系统不同,可可能乱序
不能简单的以产品自带的时间戳作为标志推动,因为下游的处理算子接受不到8:05的·数据卡住了
水位线来指示事件进展,哪怕数据在窗口关闭之前不给你,你下游也知道进行到哪一步了
周期性的插入,毫秒级来好多个,你不能来一个差一个,做了大量无用功,在稀疏时周期插入也还行。反正系统资源有的是
如果0-9的窗口,你11秒关,相当于这是一个0-11的窗口,这就有点怪
一般都是几十毫秒或一百多毫秒
- 提取事件时间戳,生成一个watermark周期性发射
- 窗口的概念 改变sparkstreaming 框住一块数据的概念 事件时间没有早来了一说,因为它确实已经发生,无可置疑,你为什么还要把它狂错,它都告诉你是11秒的了
谁告诉你,同一个时间窗口只能有一个
最常用
窗口大小代表收集数据的范围。滑动步长说明计算的频率,因为下次滑动就会新开一个窗口,计算! 滚动窗口就是一个特殊的滑动窗口
很麻烦,因为可能乱序,还要窗口合并
基于key分组 推荐keyby keyedstream
- 窗口函数 批处理,流处理快在中间攒数据,处理保存中间状态
月活