这是我参与「第四届青训营 」笔记创作活动的的第4天
前言:什么是Window计算? 窗只让算是流计算的核心通过使用窗只对无限的流数据划分成固定大小的buckets.然后基于落入同-个bucket (真中的元素计算。Flink将窗口计算分为两大类。-类基于keyed-stream窗口计算。-直接对non-keyed Stream窗口计算
流计算中的Window计算思维导图
流式VS批式计算
批处理
批处理模型典型的数仓架构为1果构, 即数据计算时天级别的, 当天只能看到前一天的计算结果。通常使用的计算引擎为Hive或者Sparl等。计算的时候,数据是完全ready的,输入和输出都是确定性的。
处理时间窗口
实时计算:处理时间窗口,数据实时流动,实时计算,窗结束直接发送结果,不需要周期调度任务。
处理时间
处理时间:数据在流式计算系统中真正处理时所在机器的当前时间。
事件时间
事件时间:数据产生的时间,比如客户端、传感器、后端代码等上报数据时的时间。
事件时间窗口
数据实时进入到真实事件发生的窗口中进行计算,可以有效的处理数据延迟和乱序。
什么是Watermark
表示系统认为的当前真实的事件时间
如何产生Watermark
如何传递Watermark
如何通过Flink UI观察Watermark
总结:1.批式计算一般是 T+1的数仓架构2.数据实时性越高,数据的价值越高3.实时计算分为处理时间和事件时间4.事件时间需要Watermark配合来处理乱序
Watermark小结:1.含义: 表示系统认为的当前真实时间 2.生成:可以通过Watermark Generator来生成3.传递:取上游所有subtask的最小值4.部分数据断流: ldle Source5.迟到数据处理: Window算子是丢弃; Join 算子认为跟之前的数据无法join到