Window和Time

2018-06-22  本文已影响26人  尼小摩

大纲

Window类型

1. Tumbling Window (翻滚窗口)

定义: 将数据依据固定的窗口长度对数据进行切片。


特点:

适用场景: BI统计等(做每个时间段的聚合计算)

2. Sliding Window(滑动窗口)

定义: 是固定窗口的更广义的一种形式。滑动窗口由固定的窗口长度和滑动间隔组成。

特点:
1. 时间对齐
2. 窗口长度固定
3. 有重叠
4. 对最近一个时间段内的统计

Session Window

定义:由一系列事件组和一个指定时间长度的timeout间隙组成。类似于Web应用的session。也就是一段时间没有接到新数据就会生成新的窗口。

特点:

预定义KeyedWindow

Window聚合分类

全量聚合

定义:等属于窗格的数据到齐,才开始进行聚合计算。
apply(windowFunction)
process(processWindowFunction)(1.3新加的)
适合场景:求9分位,排序等。

全量聚合状态变化过程

增量聚合

增量聚合状态变化过程

全量和增量的底层实现

全量实现:

RocksDB
ReducingState实现

增量实现:

RocksDB
ListState实现


Time类型

设置时间类型

不设置Time类型, 默认是ProcessingTime

EventTime & WaterMark

问题:在使用eventTime怎么处理乱序问题?
waterMark:(水位线)

有序流的watermark

乱序流的watermark

并发角度的watermark

WaterMark生成方式:

  1. Timestamp assigner
  2. Wartermark generator

提取时间戳和生成generator可以在source处开始的任意一个阶段,如果指定多次后面的会覆盖前面的值。

watermark两种生成方式:

Periodic Watermarks设置实例

Punctuated WaterMarks

Watermark的实现方式 —— 产生

Watermark的实现方式 —— 处理

延迟数据处理方式

  1. allowedLateness():所能接收的最大延迟时间,延迟窗口内置状态清理时间。
  2. sideOutputTag:提供了延迟数据获取的一种方式,这样就不会丢弃数据了。

StreamRecord

窗口merge原理

WaterMark

Window遇到的一些问题

上一篇 下一篇

猜你喜欢

热点阅读