流数据处理
2019-01-07 本文已影响0人
oneape15
流数据处理的应用
在我们日常生产环境中有这一样的一类数据密集型应用,数据快速到达,转瞬即逝,需要及时进行处理。如:网络监控、电信数据管理、传感器网络、量化交易等。
流式处理和批处理的区别
流式处理(Stream Processing)是针对批处理(Batch Processing)来讲的,即它们是两种截然不同的数据处理模式,具有不同的应用场合,不同的特点。
- 对于批处理来讲,数据被不断地采集保存到数据库中,然后进行分析处理。
- 批处理适用于大数据进行处理的场合。需要等到整个分析处理任务完成,才能获得最终结果。整个过程耗时比较长,获得最终分析处理结果延迟较大。如传统的关系型数据库系统、Hadoop和Spark等大数据处理平台等。
- 在流式数据处理模式里,数据持续到达,系统及时处理新到达的数据,并不断产生输出。
- 流式数据处理模式强调数据处理的速度,部分原因在于数据产生的速度很快,需要及时处理掉。
- 流式处理系统能对新到达的数据进行及时的处理,所以它能够给决策者提供最新的事物发展变化的趋势,以便对突发事件进行及时的响应,调整应对措施。
流数据模型
为了对快速持续到达的数据流进行有效的处理,支持上层应用程序的要求,需要新的数据模型和查询处理方法。
流数据模型的特点:
- 数据流的数据元素持续到达。
- 数据流处理系统不能控制数据元素到达的顺序。
- 数据流有可能是无限的,或者说数据流的大小是无限大。
- 数据流的一个数据元素被处理后,可以丢弃或者归档,一般不容易再次提取,除非目前该数据元素还在内存中。
流数据处理系统的查询处理
- 内存需要 - 大部分数据流是无法预知最终大小的;在这种情况下,如果要在数据流上计算一个准确的结果(如累计数),需要的存储空间将无法预知,有可能超过可用的内存。为了达到高速的处理数据,流数据处理一般优先采用基于内存的数据处理算法,无须存取磁盘。
-
近似查询结果 - 在内存容量有限的情况下,获得一个准确的结果是不太可能的。好在很多的应用场合我们无须一个准确的答案。在流数据处理领域,我们为数据流上的查询研究了一系列的数据缩减或者摘要构建技术,如:
数据轮廓
,随机采样
,真方图
,小波变换
等。