大数据系统及关键技术与工具综述
2018-08-11詹鹏伟谢小姣
◆詹鹏伟 谢小姣
大数据系统及关键技术与工具综述
◆詹鹏伟 谢小姣
(广州大学数学与信息科学学院 广东 510006)
人类已经进入大数据时代,大数据正潜移默化地影响着我们的生活。本文先总结了大数据的特点以及大数据技术在国内外的发展情况,然后从大数据生态中的数据产生、数据采集、数据存储、数据处理、数据分析、数据可视化以及数据的安全性与隐私保护着手,介绍了各环节的关键目的与意义以及所用到的技术与工具,对大数据工程具有指导意义。
大数据;数据挖掘;隐私保护
0 引言
在过去的数年间,随着计算机硬件的不断发展,计算机所拥有的算力不断增强,存储资源容量的不断增大,智能化程度的不断提高且价格不断地下降,以及物联网、移动互联网和云计算等技术的飞速发展和大规模应用,使得数据量出现了爆发式的增长,我们逐步迈入了GB时代、TB时代、PB时代,并正处于向 EB时代跃进的过程中。据IBM的研究,在人类历史中,有大约90%的数据都是在过去两年产生的,且人类正在产生的数据量正在以指数式增长,每过2年数据量就会翻一番。人类已经进入大数据时代,在大数据时代下许多传统的科学门类都会发生巨大的甚至是本质上的变化和发展,进而影响人类的价值体系。
大数据技术并不是指某一个具体的技术,而是指包括数据挖掘、预测分析、统计分析、机器学习、自然语言处理、并行计算、数据存储、流式计算等一系列技术的综合运用。从各类文献中我们可以总结出大数据具有的5V特征: Volume(数据量大),Velocity(处理速度需求高),Variety(数据类别多),Veracity(数据是真实的),Value(数据需要提纯后才有价值)。
由于大数据本身具有的特点,我们原本所使用的传统的处理和分析手段与工具都有可能会失效。因此,为了把握大数据时代的机遇,大数据技术亟待发展。
1 国内外研究现状
谷歌的工程师于2003年就先后发表了有关GFS、MapReduce和BigTable等核心技术的论文,并迅速吸引了Facebook等公司的注意力,促生了现在运用最广泛的大数据框架之一——Hadoop。联合国于2009年就启动了“Global Pulse”计划,希望能够通过大数据推动落后地区的发展。2012年,美国白宫发布了《大数据研究和发展计划》,计划发展涉及卫生部、能源部、国防部等部门在内的155个项目种类。牛津大学成立了运用大数据的医药卫生科研中心,促进数据分析在医疗行业的发展,帮助药物研发,减少开发成本,有望给英国医学研究和医疗行业带来巨大的变革。
大数据技术在国内的发展比国外稍晚。2013年,我国多位院士联合上书希望国家大力发展大数据技术。在“十二五”期间,我国的科技部就设立了与大数据有关的专项,且“973计划”、“863计划”等自然科学基金都设立了针对大数据的计划和项目。近几年我国的阿里、腾讯、百度等一系列互联网企业如火如荼的发展大数据技术并将其运用于自己的产品。为大力发展大数据产业,国家统计局也逐步开放了统计数据。国内高校纷纷开设了与大数据、人工智能有关的专业与课程。2017年12月,习近平在中共中央政治局第二次集体学习时提出“实施国家大数据战略加快建设数字中国”,代表着我国对大数据的重视上升到了一个新的高度。
2 大数据技术基础
大数据的生态流程与传统的数据利用过程是相符的,在大数据生态中,可将过程分为七个步骤:数据的产生与采集、数据存储、数据处理、数据分析、数据可视化以及数据的安全性隐私性保证。本文将从大数据的生态流程的6个环节入手,综述各环节的目的与意义,以及所用到的核心技术。
2.1 数据的产生与采集
我们所处的是一个数据爆炸的时代,海量的数据正从各个领域中时刻生成着。数据主要来源于三个领域:
(1)商业领域。数据的使用对商业领域的发展起到了关键的推动作用,每天都有上千亿条数据被存入各大商业公司的数据库中,利用这些数据,商业公司可以更精准地实现广告定位、内容推送等内容。
(2)网络领域。由于移动终端和互联网的迅猛发展,网络领域产生的数据占了相当大的比重。如Google和百度搜索引擎产生的数据,Facebook、Twitter等社交网络产生的数据以及像YouTube所产生的视频流数据都是不可忽视的主要数据来源。
(3)科学领域。因为科学研究的需要,科学领域中也产生了大量的数据。如有光学观测、天文观测产生的照片、视频数据以及生物学中用到的基因数据等都可能达到PB级别。
数据采集则指的是在各种数据源生产之后,将数据收集到一个地方的过程。目前常见的采集方法有三种:
(1)网络爬虫采集。网络爬虫可以在互联网上以极高的效率搜集数据,且其具有高度自动化,可分布式部署等优点。一个策略良好的爬虫可以很好地模拟人类的行为,防止服务器的封杀,并源源不断地获取数据。
(2)日志文件记录。在任何终端上都有专门的模块来搜集记录系统活动以及用户操作的日志文件。日志是由系统产生的,广泛采用的搜集方法之一。
(3)传感器感知。传感器可以将温度、湿度、距离、压力、电流量等物理环境中真实存在的变量转化为数字信息存储。
2.2 数据存储
如何在成千上万的服务器组成的集群中存储PB级别的数据是大数据存储中一大难题。分布式文件系统、内存KV数据库以及列式数据库都是解决这个难题的较好方法,各大公司都推出了自己的方案与产品来组织海量数据。表1为常见的大数据存储系统及其类别与特征。
表1 常见的大数据存储系统及其类别与特征
类别方案名称特点 分布式文件系统GFS提供了海量的非结构化信息存储平台,可实现数据冗余备份、自动均衡负载、失效服务器检测等功能 HDFS提供高吞吐量的顺序读/写访问,由Hadoop集成,不适合大量随机读和存储大量小文件的的场景 HayStack适合存储读多写少的文件 内存KV数据库RAMCloud读写效率高,在千台服务器下可以在5~10纳秒钟完成数据读取,成本低 Redis支持多种数据类型与复杂的数据结构,具有很强的单机读写效率 CouchBase工作于集群环境下,能够对写操作以极高的效率完成 列式存储库BigTable针对结构化或半结构化数据,能够实现PB级别的快速读写操作 PNUTS采取了弱一致性模型,具有较强的拓展性、高可用性以及强容错性 Spanner可在全球范围内部署,拓展性强,容灾能力强,采用半结构化数据模型定义,使用类SQL语言
不同的数据存储系统功能侧重不同,在明确需求的情况下选择合适的系统才能最大地发挥系统的性能。
2.3 数据处理
大数据的数据处理包括预处理和作为计算任务的处理。预处理的目的是整合异构数据并将脏数据转变为能够直接利用的干净数据,而在计算任务中的处理则是为了实现用户的查询请求,快速准确地返回结果。现代大数据处理系统的发展趋向的是针对于特定领域的发展,并不要求一种处理系统能够在所有的情况下都有较好的表现。根据应用场景的不同,计算任务中的处理又分为批处理、流式计算、交互式数据分析和增量计算等。
(1)数据预处理
由于数据的来源多种多样,所产生的数据也可能因为外界的干扰而产生缺失以及冗余等问题。为了把质量参差不齐、异构的数据转化为分析系统能够使用的数据,数据预处理十分有必要。
数据预处理主要包括3个方面:
①数据集成。将不同数据源的数据集中在一起,再经过提取、变换和装载操作,实现选择数据、把数据转化为标准格式以及导入基础设施。
②数据清洗。因为数据的质量参差不齐,可能存在着不够完整、不够准确的问题,必须经过错误类型定义、错误实例标识、改正错误、记录错误、修改数据的完整过程才能将脏数据提取为可用性高的干净数据。
③冗余消除。数据的重复也是常出现的问题,冗余的数据会浪费存储空间并增加无必要的开销。可以利用冗余检验以及数据压缩的方法来实现冗余消除。
(2)批处理
批处理是大数据计算中最常见的一类任务,其目标是实现数据的高吞吐量、系统的灵活水平拓展、数据的大规模处理、系统的强容错性以及应用表达的便捷性和灵活性等。常用的批处理计算模型有MapReduce、DAG等。
(3)流式计算
流式计算侧重的是处理的时效性,其要求计算能够在很短的时延内完成,且有较强的系统容错性、系统扩展能力和灵活的应用逻辑表达能力,常应用于搜索引擎、广告精准推送、社交信息流处理、入侵检测以及作弊识别等领域。常用的流式计算模型有S4、Storm、MillWheel、Samza、Hadoop online、MUPD8等,其中Storm和MillWheel是功能较为完善的,其他系统多少都存在着数据丢失、实时性不佳的问题。
(4)交互式数据分析
交互式数据分析可让分析人员便捷地使用查询与分析系统,弥补了其他处理系统易用性差、逻辑较为底层的问题。常见的交互式分析模型有Pig、Hive、Dermel、PowerDrill、Tajo、Drill、Shark等。
(5)增量计算
增量计算是一种较为节约资源的计算方式,其每次只对新增的内容以及其影响到的旧条目的结果进行重新计算,原先的结果大部分可以重用,不必每次更新都从头计算。常用的增量计算系统有Percolator、CBP、Kineograph、DryaInc、Incoop以及IncMR等,其中Percolate和Kineograph可实现准实时增量计算。
3 数据分析
数据分析是在大数据生态中最重要的一个环节,是可以直接将数据转化为现实价值的环节。分析之后的数据可以帮助发现潜藏的社会规律,还可以帮助人们做出更加科学的决断。包括数据挖掘、统计分析、自然语言处理、机器学习在内的多种方法都可以完成数据的分析。
3.1 数据挖掘
数据挖掘就是通过特定的方法来发觉隐藏在大量数据中的信息的过程,是一种与数学、统计学、信息学、计算机科学紧密联系的综合性的技术。常用的方法有分类分析、序列分析、预测分析、关联分析以及聚类分析等。常用的分析工具有Python、MATLAB、SPSS、SGI MineSe等,利用这些工具可以帮助我们方便地构建数据挖掘的模型,站在高层的逻辑上实现数据价值的挖掘。
3.2 统计分析
统计分析指的是运用统计学的方法,从定性与定量两个方面,用于对变量间出现的关系进行分析处理。常用的方法有描述统计、假设检验、信度分析、相关分析、方差分析、回归分析、主成分分析、因子分析等。较为流行的工具有R语言、Python等。
3.3 自然语言处理
自然语言处理是计算机科学与语言学的处理技术,能够使用算法来对人类的语言进行分析,其关键技术有词法分析、句法分析、语义分析和文本生成等,其可用于对关键文本的过滤,对文本情感的挖掘以及欺诈检测、机器翻译等。国内常见的工具有OpenNLP、FudanNLP和LTP,它们对中文的分析支持较好。
3.4 机器学习
机器学习可以分为监督学习与无监督学习两部分,监督学习指使用者在已知部分预测结果的情况下,让机器使用带标签的数据进行学习,从而根据已有数据构建模型以对未知标签的数据进行预测,而无监督学习则不需要有带有标签的数据,只需有原始数据即可。监督学习常用于解决分类、回归问题,而无监督学习用于解决聚类、关联分析、降维等问题。常用的监督学习算法有如 k-NN 算法、Decision Tree 算法、Naive Bayes算法、SVM 算法、AdaBoost算法,无监督模型有k-Means算法、Spectral Clustering算法、PCA算法等。
4 数据可视化
数据可视化是在数据的分析完成之后研究如何以更符合人类感知的方式展示分析所得到的结果的一门涉及计算机图形学、统计学以及心理学的综合性学科。其目的是为了让人们更加轻松地明白数据中所蕴含的规律与信息。数据可视化又可以分为3个部分:
4.1 科学可视化
科学可视化主要面对专业性较强的自然学科,如物理、气象等,为的是寻找其中的科学规律与异常。
4.2 信息可视化
信息可视化处理的主要是非结构化的抽象数据,如日志文件、社交网络数据等,为的是在有限空间中能以更加直观的方式展示大量抽象数据所包含的信息。
4.3 可视分析学
可视分析学以可视交互界面为研究对象,为的是以交互式分析界面促进分析推理。
各大公司都十分重视数据可视化的发展,而其中走在前沿的公司是 Tableau Software,其代表产品是Tableau Desktop、 Tableau Server、Tableau Reader等。在数据可视化技术的帮助下,即使是不懂技术的行业知识专家也能轻易地对数据进行可视化处理并进行可交互的即时数据分析展示。还有一些开源的可视化工具如 R语言、matplotlib等应用的也很广泛。
5 数据安全和隐私保护
在大数据环境下,传统的信息安全技术如信息加密、模糊处理、匿名传输等方法都效果较差。
以典型的分布式系统架构Hadoop为例,最初版本的Hadoop未能实现服务器的安全认证、授权、加密传输与存储机制,虽然在升级之后能够实现基于ACL的访问控制和基于Kerberos的认证机制,但是如认证开销大、易出现单点故障且只适用于单级认证的问题却无法解决,给数据安全带来了极大的隐患和风险。
对于在大数据存储过程中常用的非关系型数据库NoSQL,其发展不如传统的关系型数据库SQL完善,在数据安全方面并没有很好的访问控制机制与隐私管理机制。由于NoSQL安全机制本身的缺陷,当发生数据安全问题的时候将很难定位到安全性薄弱的地方。同时由于NoSQL的数据可能是不同系统、程序、活动产生的,这也为数据安全机制的构建设下了难题。
隐私泄露也是大数据环境下的一大问题。如现在国内的电商都普遍便存在“大数据杀熟”的现象,导致同样的商品老用户看到的价格比新用户要贵,这正是因为人们访问所产生的数据并不是单纯地被服务器储存了,而是会被服务器用于分析个人的消费倾向、消费能力等一系列与我们个人隐私有关的信息。服务器会根据分析得到的信息为用户画像,划分用户的类别,并有针对性地修改推送给用户的内容,从而使自己的利润最大化。这种现象是在用户毫无察觉的情况下发生的,在机器学习方法的辅助下,用户会觉得查看的商品越来越符合自己的心意,但是却无从得知价格是否合理,隐私问题堪忧。
6 结束语
互联网的飞速发展致使数据规模呈现爆炸式的增长,大数据时代已经到来。大数据正从多个方面影响着人们的生活,新兴的大数据技术将会变革许多传统的行业。本文分析了大数据技术的发展历程与研究现状并在此基础上从大数据生态中的数据产生、数据采集、数据存储、数据处理、数据分析、数据可视化以及数据的安全性与隐私保护入手,介绍了各环节的关键目的与意义以及所用到的技术与工具。大数据技术的发展仍有很大的进步空间,为了更好地利用大数据为社会创造更多的价值,我们需要不断的探索。
[1]涂子沛.大数据[J].学习月刊, 2013.
[2]孟小峰,慈祥.大数据管理:概念, 技术与挑战[J].计算机研究与发展,2013.
[3]李纪舟,叶小新,丁云峰.美军大数据技术发展现状及对其信息作战的影响[J].外军信息战,2013.
[4]Victor Mayer - Schonberger,Kenneth Cukier.大数据时代[M].杭州:浙江人民出版社,2013.
[5]夏岩,赵慧英,贾军帅.数据挖掘发展综述[J].通信与计算技术, 2009.
[6]陈为,沈则潜,陶煜波等.大数据丛书:数据可视化[M].北京:电子工业出版社,2013.
[7]冯登国,张敏,李昊.大数据安全与隐私保护[J].计算机学报,2014.