第2章 大数据相关技术
本章目标
● 掌握大数据处理流程:数据采集、预处理、存储、挖掘和解释
● 掌握大数据的3种来源:核心数据、外围数据、常规渠道数据
● 掌握大数据的主要架构
● 掌握数据挖掘常用方法
本章简介
本章从大数据处理流程、数据来源、大数据生态圈及主要架构、数据挖掘的主要方法几个方面来介绍大数据的相关技术。
2.1 大数据处理流程
大数据的处理流程归纳为:首先利用多种轻型数据库收集海量数据,对不同来源的数据进行预处理后,整合存储到大型数据库中;然后根据企业或个人目的和需求,运用合适的数据挖掘技术提取有益的知识;最后利用恰当的方式将结果展现给终端用户。具体包括:数据采集、数据预处理、数据存储、数据挖掘及数据解释这5个步骤,如图2.1所示。
图2.1 大数据的处理流程
2.1.1 数据采集
大数据的采集是大数据处理过程中的第一步,它是数据分析和挖掘的基础。大数据的采集是指在确定用户目标的基础上,对该范围内的所有结构化、半结构化、非结构化数据进行采集的过程。采集的数据大部分是瞬时值,还包括某时段内的特征值。大数据的主要来源有商业数据、互联网数据、传感器数据。针对不同来源的数据,具有不同的采集方法。主要的大数据采集方法有系统日志采集方法、网络数据采集方法、其他数据采集方法。
1.系统日志采集方法
大多数互联网企业都有自己的海量数据采集工具,常用于系统日志采集,如Scribe、Flume、Chukwa、Kafka等。Scribe是 Facebook开源的日志收集系统,能够从各种日志源收集日志,存储到一个中央存储系统中,以便于进行集中统计分析和处理;Chukwa属于Hadoop系列产品,是一个大型的分布式系统监测数据的收集系统,提供了很多模块以支持Hadoop集群分析;Flume是cloudera的开源日志系统,能够有效地收集汇总和移动大量的实时日志数据。这些工具均采用分布式架构,能满足每秒数百 MB的日志数据采集和传输需求。
2.网络数据采集方法
网络数据采集是指利用互联网搜索引擎技术从网站抓取数据信息。目前,网络数据的采集基本上是利用垂直搜索引擎技术的网络爬虫或数据采集机器人、分词系统、任务与索引系统等技术进行综合运用而完成。该方法可以将非结构化数据从网页中抽取出来,将其存储为统一的本地数据文件,并以结构化的方式存储。它支持图片、音频、视频等文件或附件的采集,附件与正文可以自动关联。除了网络中包含的内容之外,对于网络流量的采集可以使用DPI或DFI等带宽管理技术进行处理。
3.其他数据采集方法
对于企业生产经营数据或学科研究数据等保密性要求较高的数据,可以通过与企业或研究机构合作,使用特定系统接口等相关方式采集数据。
在大数据的采集过程中,同一网站同一时间可能会有很多用户访问和操作。例如,火车票售票网站和淘宝,它们并发的访问量在峰值时超过了上百万,并发数十分高。因此,需要在采集端部署大量数据库才能支撑。
2.1.2 数据预处理
由于第一步收集得到的数据是原始数据,存在着不完整、不一致的问题,无法直接存储到数据库中进行数据挖掘。因此,在将来自前端的数据导入一个集中的大型数据库或者分布式存储集群前,需要对大数据进行预处理,这样不但能够节约大量的空间和时间,还能得到更好的数据挖掘结果。大数据预处理包括对数据进行清理、集成、变换和归约4个过程。
1.数据清理
数据清理是数据准备过程中最乏味也是最关键的一步。其目的是填补缺失的数据、平滑噪声数据、删除冗余数据、纠正错误数据、清除异常数据,将原始的数据格式进行标准化。
2.数据集成
数据集成是将多个数据源中的数据结合起来并统一存储,建立数据仓库,以更好地解决数据的分布性和异构性问题。数据集成技术的关键是数据高速缓存器。拥有一个包含目标计划、源—目标映射、数据获取、分级抽取、错误恢复和安全性转换的数据高速缓存器,可以大大减少直接访问后端系统和进行复杂实时集成的需求。
3.数据变换
数据变换是采用线性或非线性的数学变换方法将多维数据压缩成较少维数的数据,消除它们在时间、空间、属性、精度等特征表现方面的差异。数据变换可用相当少的变量捕获原始数据的最大变化,具体变换方法的选择可根据实际数据的属性特点而定,常见的数据变换方法有数据平滑、数据聚焦、数据规范化等。
4.数据归约
数据归约是指在对数据挖掘任务和数据本身内容理解的基础上寻找依赖于发现目标的数据的有用特征,以缩减数据规模,从而在尽可能保持数据原貌的前提下,最大限度地精简数据量。数据归约主要有两个途径:属性选择和数据采样,分别针对原始数据集中的属性和记录。数据归约技术可以用来得到数据集的归约表示,它虽然小,但仍然大致保持原始数据的完整性。这样,在归约后的数据集上挖掘将更有效,并产生相同(或几乎相同)的分析结果。数据归约的类型主要有特征归约、样本归约和特征值归约。
2.1.3 数据存储
大数据种类繁多,数据结构化程度不同,传统的结构化数据库无法适应大数据的存储要求。下面介绍3种典型的大数据存储方案:分布式文件系统、分布式数据库和云存储。
1.分布式文件系统
分布式文件系统是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连,众多的节点组成一个文件系统网络;每个节点可以分布在不同的地点,通过网络进行节点间的通信和数据传输。常见的分布式文件系统有 GFS、HDFS、Lustre、Ceph等,它们各自适用于不同的领域,其中 GFS和HDFS最具有代表性。GFS是Google公司设计的专用文件系统,主要用于存储海量搜索数据,处理大文件。HDFS是Hadoop分布式文件系统,它是一种被设计成适合运行在通用硬件上的分布式文件系统,具有高容错性的特点。
2.分布式数据库
分布式数据库是利用网络将物理上分布的多个数据存储单元连接起来组成的逻辑数据库,其基本思想是将集中式数据库中的数据,分散存储到多个数据存储节点上,并通过网络节点连接起来,以获取更大的存储容量和更高的并发访问量。与传统的集中式数据库相比较,分布式数据库具有高扩展性、高并发性、高可用性以及更高的数据访问速度。近年来,随着数据量的高速增长,传统的关系型数据库开始从集中式模型向分布式架构发展,从集中式存储走向分布式存储,从集中式计算走向分布式计算。
3.云存储
云存储是一种以数据存储和管理为核心的云计算系统,它是指利用集群应用、分布式文件和网络技术系统等功能,通过应用软件协同网络中大量的各种不同类型的存储设备,共同建设一个具有数据存储和业务访问功能的系统,以保证数据的安全性,节约存储空间。互联网技术的发展是实现云存储的基本条件。通过互联网技术,云存储才能实现数据、文档、图片、音频、视频等内容的存储和共享。云存储系统结构主要由存储层、基础管理层、应用接口层、访问层4个部分构成。
2.1.4 数据挖掘
数据挖掘是指根据业务的需求和目的,运用合适的工具软件和数据挖掘方法对数据仓库中的数据信息进行处理,寻找出特定的数据规律或数据模式,得出有价值的信息和知识。根据信息存储格式,可以把数据挖掘的对象分为关系数据库、面向对象数据库、数据仓库、文本数据源、多媒体数据库、空间数据库、时态数据库、异质数据库以及Internet等。数据挖掘常用的工具软件有:Intelligent Miner、SPSS、SAS、WEKA、Matlab、R语言、Python等。数据挖掘的任务是从数据中发现模式,按照数据挖掘的实际作用数据挖掘任务可分为关联分析、聚类分析、分类、回归、预测、序列和偏差分析。
2.1.5 数据解释
数据解释是一个面向用户的过程,它是指将大数据挖掘及分析结果在显示终端以友好、形象、易于理解的形式呈现给用户。传统的数据解释方法是以文本形式输出结果或者直接在电脑终端上显示结果。大数据分析的结果一般是数据量巨大且关系复杂的结果,传统的分析结果展示方法已基本不可行。现阶段,主要是利用可视化技术、人机交互、数据起源等新的方法将结果展示给用户,帮助用户更加清晰地了解数据处理后的结果,为用户提供决策信息的支持。目前,大部分企业已经引进数据可视化技术和人机交互技术。
1.数据可视化技术
数据可视化技术主要是通过图形化方法进行清晰、有效的数据传递。其基本思想是使用单个图元元素表示数据库中的每一个数据项,大量的数据集组成数据图像,并以多维数据的形式表示数据的各个属性值。运用可视化技术就可以将数据结果转化为静态或者动态的图形展示给用户,通过交互手段抽取或者集成数据能在画面中动态地显示改变的结果。这样,用户就可以从不同的维度观察数据,对数据进行更深入的观察和分析。可视化技术可以分为5类,包括几何技术、图标技术、图形技术、分层技术、混合技术。基于不同的需求可以采取不同的可视化技术,也可以通过多种技术手段来展示数据处理结果。例如,电力网络中电力的传输,为直观地反映各个城市的电力需求状况,可以利用基于图标技术,用不同的颜色标明图中各个城市的电力负载情况。
2.人机交互技术
人机交互技术是指通过系统输入、输出设备,以有效的方式实现人与系统之间信息交换的技术。其中,系统可以是各类机器、计算机和软件。用户界面或人机界面是人机交互所依托的介质和对话接口,通常包括硬件和软件系统。人机交互技术是一种双向的信息传递过程,既可以由用户向系统输入信息,也可以由系统向用户反馈信息。通过人机交互技术,用户只需要通过输入设备给系统输入有关信息、提示、请示等,系统就会输出或通过显示设备提供相关信息、回答问题等。人机交互技术能够使得大数据分析的数据结果更好地被解释给用户。这种交互式的数据分析过程可以引导用户逐步地进行分析,使得用户在得到结果的同时能够更好地理解分析结果的由来。与此类似的还有数据起源技术,通过该技术可以帮助用户追溯整个数据分析的过程,从而有助于用户理解结果。