前言:基于人大的《数据科学概论》第六章的内容。主要提纲为:流数据处理应用、流式处理和批处理的区别、流数据模型、数据流上的查询、流数据处理系统的查询处理、查询处理的基础算法、流数据处理系统。
一、流数据处理应用
有一类数据密集型应用,数据快速到达,转瞬即逝,需要及时进行处理。
应用在:
- 网络监控
- 电信数据管理
- 工业制造
- 传感器网络
- 电子商务
- 量化交易等
二、流式处理和批处理的区别
简说:流式处理是针对批处理来讲的,即它们是两种截然不同的数据处理模式,具有不同的特点,适用于不同的场合。不能简单地认为两种截然不同的数据处理模式优于另外一种数据处理模式。
1、批处理
对于批处理来讲,首先数据库不断地采集,保存到数据库中(不一定是关系数据库,可以是HBase或者Hive数据库),然后进行分析处理(包括SQL查询)。批处理适用于对大量数据进行处理的场合。人们需要等到整个分析处理任务完成,才能获得最终结果。
2、流式处理
- 在流式数据处理里,数据持续到达,系统及时处理新到达的数据,并不断产生输出。
- 处理过的数据一般丢弃掉,当然也可以保存起来。
- 流式数据处理模式,强调数据处理的速度。
- 部分原因,是因为数据产生的速度很快,需要及时进行处理。
- 由于流式数据处理的趋势,能够对新到达的数据进行及时处理,所以它能够给决策者提供最新的事物发展变化的趋势,以便对突发事件进行及时响应,调整应对措施。
三、流数据模型
简说:在流数据模型中,将要进行处理的数据,从一个或者多个上游数据源,持续不断地到达,而不是从保存在磁盘或者内存中的数据源,进行随机地存取。
流数据模型和传统的关系模型的区别:
- 数据流的数据元素持续到达
- 流数据处理系统,不能控制数据元素到达的顺序
- 数据流可能是无限的,或者说数据流的大小是无限大
- 数据流的一个数据元素被处理后,可以丢弃或者归档,一般不容易再次提取,除非目前该数据元素还在内存中。能够保存在内存中的数据元素,相对于整个数据流来讲,是极少量的数据。
四、流数据上的查询实例
数据流上的查询和传统数据库上的查询的区别
(1)一次性查询和持续查询
一次性查询
,指的是在数据集的某个时刻的快照上执行的查询,对数据进行分析,获得结果后,返回给用