流式计算中Window计算|青训营笔记

180 阅读2分钟
这是我参加参与「第四届青训营」笔记创作活动的的第3天

概述

流式计算和批计算的区别:

1.数据时效性:流式计算实时,低延迟,批量计算非实时,高延迟.
2.数据特征:流式计算的数据一般是动态,没有边界的,而批处理的数据一般则是静态数据.
3.应用场景:由于时效性不同,应用场景不同.流式计算应用在实时场景,时效性要求高的场景,批量计算一般说批处理,应用在实时性要求不高,离线计算的场景下,数据分析,离线报表等
4.运行方式,流式计算的任务持续进行的,批量计算的任务则一次性完成

实时数仓和离线数仓的区别;

离线数仓只有批处理,实时数仓可以流批同时运行,也可以只有流处理,资源开销小;
离线数仓实时性T+1,实时数仓是分组/秒级别;
离线数仓稳定性好,实时数仓对数据敏感,稳定性差;

Window计算定义及挑战;

streaming是一种用于处理无限数据集的数据处理引擎,window是一种切割无限数据为有限块进行处理的手段;

Window是无限数据流处理的核心,Window 将一个无限的 stream 拆分成有限大小的窗口

Watermark(水印):当前系统认为事件时间所在的真实时间;

产生:从数据的事件时间来产生,常见包括用当前事件时间减去固定delay,表示可以容忍多长的时间断序;

传递:上下游task之间有数据传输关系,上游会将watermark传递给下游,下游收到多个watermark后,默认取最小值作为自身的watermark,将watermark传递给下游,经过传递过程让每个计算单元实时知道当前watermark;

Window类型

Tumbling Windows(滚动窗口):数据依据固定窗口长度对数据切片,指定单位窗口长度,分时间段

Hop Windows(滑动窗口):区分算法和网络里面的滑动窗口,长度固定,窗口可以有重叠,靠timer进行触发输出;

Session Windows:一系列事件组合一个时间长度,动态merge,设置最大的gap,有overlap时需要merge,取消之前的timer并重新注册timer;