关于Flink中time与watermark的理解
空间和时间只是我们人类思考的模式,并不是我们赖以生存的条件。
——爱因斯坦
时间属性是流处理中最重要的一个方面,是流处理系统的基石之一;流计算是一种无限数据形式,如果没有时间属性,许多问题将不能解决,下面将列举和时间列紧密相关,或者说必须在这个时间列上才能进行的操作:
Over 窗口聚合
Group by 窗口聚合
OrderBy 排序
时间概念:
在flink中,时间的核心是 Processing Time 和 Event Time(Row Time);Processing Time,即事件被处理的时间。处理时间其实就是处理事件的机器所测量的时间;事件时间,即事件实际发生的时间。更准确地说,每一个事件都有一个与它相关的时间戳,并且时间戳是数据记录的一部分(比如手机或者服务器的记录)。事件时间其实就是时间戳。
两者的概念中我觉得以下的解释相当好:
时间是人为的一种规定,一天24小时,是地球自传一周,一年是地球饶太阳一周,时间是一种运动;Processing Time是现在正在出现,发生的时间,是真实世界中时间;Event Time时间,是某个世界的时间,就像精灵宝可梦中,小智