flink学习(一)——什么是流处理

流处理引入

为了理解流处理,我们先来看看批处理。批处理是把我们感兴趣的数据一起搜集下来加以处理,产生结果。比如说双十一当天有多少个用户购买了商品,每个用户分别买了多少件,分别是哪些品类的商品。过去需要第二天或者几个小时后才能出统计结果,我们才能知道双十一当天或者截止到某个小时有多少人买了东西等,这些是批处理的结果。批处理的结果生成相距用户实际行为的发生间隔了很长一段时间,往往是一天或者几小时。在现在的互联网竞争下,有时候这些数据统计延迟是无法接受的,我们需要更快地知道当前最新的数据状态,这就需要流处理(也可以说是实时计算,实时处理)。

回过头来想,流处理是数据处理的正常模式。因为本身数据是随时随地在生成的,那么数据生成后就得到结果是一个比较自然的状态。比如网页点击pv、uv,金融交易,传感器数据等都是常见的流数据。数据是流式,那么我们的处理方式也应该是流式的。

无界流和有界流

流数据按照是否有界,可分为无界流和有界流。
在这里插入图片描述
如上图所示,同时有起始和结尾的数据流就是有界流(bounded stream);只有起始,没有结尾的就是无界流(unbounded stream)。从这个角度我们再来看批处理和流处理:

批处理处理的是有界流,数据有起始和结尾。我们会把一个时间段内的数据灌入到数据处理系统中,进行排序,统计等操作,产生一个最终的输出结果。

流处理处理的是无界流。因为数据是无界的,我们也不知道数据什么时候会结束,所以是不可能有最终结果的。我们要看数据,只能看到一个中间态,或者说截止到计算那一刻的最新结果。只要数据一来,我们就要去处理数据,得出结果。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页