4.大数据分析流程
大数据分析流程大致分为大数据采集、大数据预处理、大数据存储与管理、大数据分析与挖掘、大数据可视化这5个阶段,如图1-1所示。
图1-1 大数据分析流程的5个阶段
微课2
大数据分析流程
(1)大数据采集
大数据采集,是指从各种不同的数据源中获取数据并进行数据存储与管理,为后面的阶段做准备。数据可以来自以下几个方面:
Web端,包括基于浏览器的网络爬虫或者应用程序接口(Application Program Interface,API);
App端,包括无线客户端采集软件开发工具包(Software Development Kit,SDK)或者埋点;
传感器,包括温度传感器、视觉传感器、光敏传感器等;
数据库,涉及源业务系统和数据同步,包括结构化数据与非结构化数据。
大数据采集通常使用ETL技术,ETL是英文Extract Transformation Load的缩写,用来描述将数据从来源端(如数据库、文件等)经过抽取(Extract)、转换(Transform)、装载(Load)至目的端(如目的数据源等)的过程。ETL一词较常用于数据仓库,但其对象并不限于数据仓库。
抽取:从各种数据源获取数据。
转换:按需求格式将源数据转换为目标数据。
装载:把目标数据装载到数据仓库中。
ETL的过程如图1-2所示。
图1-2 ETL的过程
目前市场上主流的ETL工具有Pentaho Data Integration、DataStage和DataX。
①Pentaho Data Integration,支持跨平台运行,其特性包括:支持100%无编码,采用拖曳方式开发ETL数据管道,可对接传统数据库、文件、大数据平台、接口、流数据等数据源。
②DataStage,是由国际商业机器(International Business Machines,IBM)公司开发的一套专门对来自多种数据源的数据的抽取、转换和装载过程进行简化和自动化,并将数据输入目的数据源的集成工具。
③DataX,是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,可在MySQL、Oracle、SQL Server、PostgreSQL、HDFS、Hive、ADS、HBase、Tablestore(OTS)、MaxCompute(ODPS)、DRDS等各种异构数据源之间实现高效的数据同步功能。
(2)大数据预处理
大数据预处理主要分为4个步骤,即数据清洗、数据集成、数据规约和数据变换,如图1-3所示。它们需要分别完成自己的工作,下面简单介绍一下。
图1-3 数据预处理
①数据清洗。
数据清洗是一项复杂且烦琐的工作,也是整个大数据分析流程中最为重要的环节之一。数据清洗的目的在于提高数据质量,将脏数据“清洗”干净,使原数据具有完整性、唯一性、权威性、合法性和一致性等特点。
脏数据是指由于重复输入、输入格式不一致的数据等不规范的操作,产生的不完整、不准确、无效的数据。越早处理脏数据,数据清洗操作越简单。
数据清洗主要包括缺失值处理和噪声处理。
缺失值是指现有数据集中某个或某些属性的不完整的值。缺失值处理方法有简单删除、数据补齐、人工填写和平均值填充的方法。当数据集中的缺失值样本比较少时,可以使用简单删除法,删除包含缺失值的样本,或者用人工填写的方法补全缺失值样本。当数据集中的缺失值样本比较多时,可以使用K-means填充、回归法等数据补齐的方法或平均值填充的方法,将缺失值样本补全。
噪声是指被测量的变量的随机误差或偏差。噪声是指测量变量中的随机误差或偏差。噪声数据的处理方法有分箱、聚类等方法。分箱是指按照数据的属性值划分子区间,将待处理的数据按照一定的规则划分到子区间中,分别对各个子区间中的数据进行处理。聚类是指将对象的集合分组为由类似的对象组成的多个类,找出并清除落在类之外的值。
②数据集成。
数据集成是指将不同来源、格式、特点性质的数据集成到一起,使用户能够以透明的方式访问这些数据源。
数据集成的方法:联邦数据库、中间件集成、数据复制。
联邦数据库:将各数据源的数据视图集成为全局模式。
中间件集成:通过统一的全局数据模型来访问异构数据源。
数据复制:将各个数据源的数据复制到同一处,即数据仓库。
③数据规约。
在现实场景中,数据集是很庞大的,数据是海量的,在整个数据集上进行复杂的数据分析和挖掘需要花费很长的时间。
数据规约的目的就是从原有庞大数据集中获得一个精简的数据集,并使这一精简的数据集保持原有数据集的完整性,在这一精简的数据集上进行数据挖掘显然效率更高,并且挖掘出来的结果与使用原有数据集所获得的结果是基本相同的。
数据规约方式包括维规约、数量规约、数据压缩等。
维规约:减少所考虑的随机变量或属性的个数。
数量规约:用较小的数据替换原始数据。
数据压缩:使用变换得到原始数据的“压缩”表示,从压缩数据恢复为原始数据,不损失信息的压缩是无损压缩,损失信息的压缩是有损压缩。
④数据变换。
数据变换是指对数据进行变换处理,使数据更符合当前任务或者算法的需求。它的主要目的是将数据转换或统一成易于进行数据挖掘的数据存储形式,使得挖掘过程更加有效。
常用的数据变换方式有数据规范化和数据离散化。
数据规范化:为消除数据的量纲和取值范围的影响,将数据按照比例进行缩放,使之落入一个特定的区域,便于分析。
连续值离散化:将数据取值的连续区间划分为小的区间,再将每个小区间重新定义为一个唯一的取值。
(3)大数据存储与管理
在“大数据”时代,数据库并发负载非常高,往往每秒要处理上万次读写请求。关系数据库能勉强应付上万次SQL查询,但是应付上万次SQL写数据请求,硬盘输入输出(Input/Output,I/O)模块就无法承受了。大型的社交网站(Social Networking Site,SNS)中,用户每天产生海量的动态,对于关系数据库来说,在庞大的表里面进行SQL查询,效率是极其低下的。所以上面提到的这些问题和挑战催生了一种新型数据库技术,它就是NoSQL。
NoSQL抛弃了关系模型并能够在集群中运行,不用事先修改结构定义也可以自由添加字段,这些特征决定了NoSQL非常适用于大数据环境,因此其得到了迅猛的发展和推进。
(4)大数据分析与挖掘
大数据分析是使用适当的统计分析方法对收集来的大量数据进行分析,从中提取有用信息,形成结论,并加以详细研究和概括总结的过程。在大数据分析领域中,最常用的3种大数据分析类型包括相关性分析、因果推断、采样分析。
①相关性分析。
相关性分析是指对两个或多个具备相关性的变量元素进行分析,从而衡量两个或多个变量元素的相关程度。相关性分析要求被分析变量之间需要存在一定的联系才可以进行。
②因果推断。
因果推断是指基于某些出现的现象之间的因果关系得出结论的过程。因果推断的要求原因先于结果,原因和结果具有相关性。
③采样分析。
采样分析是指当无法对一个问题非常精确地进行分析时,通过采样求解近似值,其中的核心问题是如何进行随机模拟。
大数据挖掘是指从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中人们事先不知道的、但又是潜在有用的信息和知识的过程。数据挖掘可以描述为,按企业既定业务目标,对大量的企业数据进行探索和分析,揭示隐藏的、未知的规律或验证已知的规律,并进一步将其模型化的有效方法。
传统的数据分析是基于假设驱动的,一般都是先给出一个假设然后通过数据验证。数据挖掘在一定意义上是基于发现驱动的,就是通过大量的搜索工作从数据中自动提取出信息或知识,即数据挖掘是要发现那些不能靠直觉发现的信息或知识,甚至是违背直觉的信息或知识,挖掘出的信息或知识越是出乎意料,就可能越有价值。
(5)大数据可视化
大数据可视化是将大规模、复杂和多维度的数据通过图表、图形、地图等视觉元素的方式进行展示和呈现,帮助人们更直观地理解和分析大数据。通过使用适当的图表和图形,大数据可视化可以将庞大的数据集转化为易于理解和解释的可视化表达形式,使决策者、分析师和普通用户能够更深入地洞察数据背后的深层信息。通过大数据可视化,人们可以更加直观地理解数据,发现潜在的机会,并制定相应的决策和战略。
大数据可视化的常见方法有以下几种。
①统计图表:指标看板、饼图、直方图、散点图、柱状图等传统BI统计图表。
②二维、三维区域:使用地理空间数据可视化技术,往往涉及事物特定表面上的位置。如点分布图,它可以用来显示特定区域的情况。
③时态:时态数据可视化是指数据以线性的方式展示。最为关键的是时态数据可视化有一个起点和一个终点。如散点图,它可以用来显示某些区域的温度信息。
④多维:可以通过使用常用的多维方法来展示二维或高(多)维度的数据。如饼图,它可以用来显示政府开支等。
⑤分层:分层方法用于呈现多组数据。这种数据可视化方法通常展示的是大群体里面的小群体。
⑥网络:在网络中展示数据间的关系,它是一种常见的展示大量数据的方法。