前言
本文为阅读《Streaming System》的读书笔记,推荐对流处理感兴趣的同学看一下这本书。
名词释义
流式系统:一类用于处理无界数据的数据处理引擎;
有界数据:数据规模是有限的;
无界数据:数据规模是无限的;
Event Time:事件的发生时间,每个独立事件在产生它的设备上发生的时间;
Processing TIme:事件的处理时间,Flink中表示数据在操作算子计算过程中获取到的所在主机的时间;
事件时间 vs 处理事件
理想状况下,Event Time和Processing Time是相等的,但实际情况下,Event time和Processing time的偏差会受到底层输入源、执行引擎和硬件特征的影响,影响两者差距的因素:
- 共享资源受限,如网络阻塞、网络分区等;
- 软件引起分布式系统逻辑、争用等问题;
- 数据本身的特征,如键分布、吞吐量的差异活无序差异;
下图表示Event Time和Processing TIme的关系,理想状况下,事件处理时间应该如虚线所示,但现实状况下多如实线所示,Event-time skew表示事件处理时间与理想状况下的偏差,Processing-time lag表示一个时间从产生到处理的时间差。