学习笔记DB1:流数据分析与处理

分类:IT>数据库

本节课主要解决以下问题:

什么是流数据?

介绍流数据分析与处理的典型系统?

如何理解流数据管理与分析处理系统?

通过对流数据管理系统与传统数据管理系统的对比,以及流数据分析与批处理方式的数据分析对比,加深对流数据管理与分析处理系统所针对的应用和系统上的理解。

1.什么是流数据?

流数据是连续的、没有边界的、快速的、随时间不断变化的系列数据项(如为结构化数据就是元组,如图片文档也可以构成流数据)

2.流数据产生于哪些应用领域?

(1)网络监控,流量监控

(2)传感器网络,RFID

(3)电信呼叫记录,通讯记录

(4)金融应用,欺诈识别

(5)网络日志,点击流

(6)制造过程,对制造安全性质量进行监控

数据流管理系统DSMS

3.为什么需要对流数据进行分析?

规律:数据用于决策的价值随着时间递减,批处理:针对一天及以上,价值没有那么大了

4.传统的数据分析处理与流数据分析处理技术的差别是什么?

主要是查询和处理的方式不同:传统数据分析处理技术,相对比较静态,一般在系统不繁忙的时候,将数据批量的导入到数据仓库中,所以是“store first, query later”的方式;而流数据是不断的流入系统当中,系统要处理这些数据,用在线的处理方式“On-the-Fly”,通过数据不断的来,不断的处理,处理完的结果也不断的交付给用户来分析决策,它是一个流动方式来处理的,是动态的来处理数据的方式。

5.流数据处理模型是什么?

一个数据流是持续不断没有边界的数据集,一个表是给定记录的集合,SQL语句是作用在表上的。通过时间窗口将流转换成表,每个时间窗口内的数据变成一个表,通过改变时间窗口而改变表,并重复应用SQL,结果不断追加到输出流中。

重点:时间窗口

6.时间窗口如何截取表?

时间窗口截取表有不同的方式

(1)滑动窗口,相邻时间片会有重叠,不是完全隔离开的,是一种滑动的方式,不断往前推动的

(2)非重叠式切片窗口,相邻时间片没有重叠

(3)起始位置固定,结束位置根据情况变化,这种不太常见

7.传统的数据管理系统如何处理流数据?

传统流数据管理系统对于流数据需要解决的问题:及时数据处理,SQL语义支持,处理流数据的质量问题,预测,实时数据与历史数据的融合,保障数据的可获得性,数据划分并获得好的可扩展性,实时处理能力

8.DBMS与DSMS的对比有什么区别?

主要可以根据以下指标,进行对比:

(1)数据类型:DBMS是持久化的数据,DSMS是挥发性流数据

(2)访问模式:DBMS是随机读取,DSMS是连续读取

(3)查询特点:DBMS是一次性查询,DSMS是连续查询

(4)存储假设:DBMS是外存空间无限,DSMS是有限内存

(5)更新频率:DBMS是低更新速度,DSMS是高更新频率

(6)数据质量:DBMS是高质量数据,DSMS是过期、不精确、错位数据

(7)查询处理:DBMS是一次性查询计划,DSMS是计划需要随数据特征变化

9.形成的典型流数据处理系统(略)

10.流式分析处理VS批处理系统之间的区别与联系是什么?

11.典型大数据批处理系统架构是什么样的?

通过数据采集工具,我们将数据库或日志的一些数据导到大数据平台上,比如说HDFS,这样的数据在数据库系统中,然后,在这个集群环境下,我们需要一些离线的查询处理的引擎,MapReduce,Spark,需要一些资源调度工具,Resoure manager,node manger,在这样的集群环境下做大规模分析处理,通常消耗时间比较长。

12.什么是YARN?

Apache HadoopYARN(Yet another resource negotiator,另一种资源协调者),是一种新的Hadoop资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群再利用率、资源统一管理和数据共享方面带来了巨大的好处。

YARN的基本思想是将JobTracker的两个主要功能(资源管理和作业调度/监控)分离。

13.典型流式分析大数据系统架构是什么样的?

典型流式分析大数据也是来自不同途径的数据源,一般来讲会首先汇聚在一个消息队列中,类似Kafka这样的系统中去,使消息或或者流数据本身有一个持久化的功能,在此之上,处理端有这个流数据处理引擎,比如说Spark Steaming, Flink这样的系统,把这个数据从kafka里拉出来,进行一些流式的计算

另外一种方式,因为这个数据还需要进行一些持续化的堆积,形成一个大数据,它会也通过kafka这样的消息队列,导到这样的大数据平台上,在这个平台上既可以做一些离线的分析处理,同时也可以支持一些小批量的方式,甚至是近实时的一些这样的处理方式。

也就是两种不同途径,来做这个流数据计算引擎。

14.数据流分析与数据流处理的关系是什么?

(1)数据流分析

典型的数据流分析是以时间窗口为基础的,基于SQL的数据统计和分析

例如监控一段时间内采集数据的平均值、最大值等

(2)数据流处理

以单元组处理为主,用并行化来解决元组处理的复杂性

串行化处理数据,形成多步处理流水线

例如对微博/博文的预处理,信息抽取,分类、聚类等。Storm是流数据处理代表。

15.Storm的构成?

Storm由Spouts和Bolts节点构成有向图

Spout是流数据产生的源,通常是从数据库/爬虫等地方获得的数据

Bolt:用于处理数据流,输出数据流给其他Bolt节点

16. Bolt计算节点上的常见操作有什么?

(1)过滤:只继续传播满足一定过滤条件的元组

(2)连接:接收两个流A和B,输出满足一定条件的(A,B)对

(3)转换:根据函数,修改每个tuple的值

(4)其他很多操作,如自然语言处理,多媒体数据处理,ETL数据处理等

17.Bolt的技术关键是什么?如何解决?

由于Bolt是计算节点,需要处理大量数据,所以如何算的快是关键。

可以通过并行化处理,对数据流进行划分,不同Bolt之间任务的协调,以及容错的支持来解决。

18.Flink是有状态的流处理,其特点是什么?

有状态,容错,高可扩展,低延迟

Flink兼具流数据分析和流数据处理的功能

19.复杂事件处理(CEP),流数据的复杂数据处理是loT场景中常见的数据分析需求。复杂事件通常具有一定的时间跨度,流数据中具有时间跨度的模式发现是一种典型的CEP分析处理任务。你认为哪类流数据分析和处理系统更适合做海量loT数据的复杂事件处理?

Flink是有状态的流数据处理,具有容错、高可扩展、低延迟的特性,并兼具流数据分析和流数据处理功能。

20.什么是复杂事件处理?

复杂事件处理(CEP, Complex Event Processing),在事物动作过程中,可以构造三个事件信息,事物初始状态事件、作用于事物的动作的事件、事物结果状态事件。事件的关系主要有五种,时间顺序关系、聚合关系、层次关系、依赖关系、因果关系。事件处理实现的功能的几类模式是推断、查因、决策

小结:

大数据通常是以流数据的形式不断堆积的

如果需要较为实时的从大数据中获得洞察,就需要流数据分析和处理技术。

典型应用:

传感器网络、M2M数据中心

互联网舆情监控

入侵检测

实时商业智能

参考资料:

MOOC中国人民大学《数据库系统概论(新技术篇)》

第14讲流数据分析与处理/流数据分析与处理陈跃国

百度百科YARN词条、CEP词条

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180912G1DGT500?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券