Flink的三种时间语义

在流数据处理中,一个很重要也很常见的操作就是窗口计算。窗口计算与时间密不可分。

窗口的计算在分布式流处理环境中,可能会面临如下问题:数据由上游发送到下游的过程中,可能是跨节点传输的,而网络传输存在延迟,数据到达下游节点的时间则有先有后,则会产生乱序数据问题,如8点59分59秒产生的数据可能比9点01分01秒产生的数据后到达下游节点,那么它究竟是属于8-9点的时间窗口,还是9-10点的时间窗口呢?这就首先需要我们明确Flink中的不同时间语义。

一、事件时间

**"事件时间"语义是指数据产生的时间。**数据一旦生成,这个时间就确定了,可以作为一个时间属性嵌入到数据中,就是这条数据记录的时间戳。那么在事件时间语义下,上面8点59分59秒产生的数据在9点01分01秒到达下游节点,还应当属于8-9点的时间窗口。

通常来说,事件时间语义更符合业务计算逻辑,但是由于网络传输延迟问题,数据到达下游节点时存在乱序问题,因此要想计算8-9点的时间窗口数据,就需要等待所有8-9点生成的数据都到齐,事件时间语义以一定延迟为代价换取计算的准确性。

二、处理时间

"处理时间"语义是指数据被真正处理的时刻,很显然,这里指的是在相应处理节点机器上的系统时间。以处理时间来衡量数据属于哪个时间窗口十分方便,如上面8点59分59秒产生的数据在9点01分01秒到达下游节点,那么它就属于9-10点的时间窗口,数据能够及时的被处理,不需要等待可能的延时数据。但是处理时间不符合业务逻辑,如要计算不同时段的pv、uv,那么按照业务逻辑,这条数据应当属于8-9点的时间窗口。

处理时间语义适用于对实时性要求极高,而对数据计算的准确性要求不太高的场景。

三、摄取时间

摄取时间是指数据进入flink数据流的时间,也就是被source算子读取的时间。

相关推荐
一个会的不多的人2 小时前
数字化转型:概念性名词浅谈(第七十二讲)
大数据·人工智能·制造·数字化转型
数据智能老司机2 小时前
在 Databricks 上的 Unity Catalog 数据治理——Unity Catalog 的内部机制
大数据·架构
gb42152874 小时前
elasticsearch索引多长时间刷新一次(智能刷新索引根据数据条数去更新)
大数据·elasticsearch·jenkins
IT毕设梦工厂5 小时前
大数据毕业设计选题推荐-基于大数据的人体生理指标管理数据可视化分析系统-Hadoop-Spark-数据可视化-BigData
大数据·hadoop·信息可视化·spark·毕业设计·源码·bigdata
数在表哥5 小时前
从数据沼泽到智能决策:数据驱动与AI融合的中台建设方法论与技术实践指南(四)
大数据·人工智能
爱思德学术5 小时前
中国计算机学会(CCF)推荐学术会议-C(数据库/数据挖掘/内容检索):PAKDD 2026
大数据·机器学习·数据挖掘·知识发现
云淡风轻~~7 小时前
构建和部署Spark、Hadoop与Zeppelin集成环境
大数据·hadoop·spark
IT研究室7 小时前
大数据毕业设计选题推荐-基于大数据的人体体能活动能量消耗数据分析与可视化系统-大数据-Spark-Hadoop-Bigdata
大数据·hadoop·数据分析·spark·毕业设计·源码·bigdata
元基时代7 小时前
视频图文矩阵发布系统企业
大数据·人工智能·矩阵
熊文豪8 小时前
Windows安装Elasticsearch保姆级教程
大数据·windows·elasticsearch·kibana