4.1.4 数据分析技术
数据分析是Google 最核心业务,每一次简单的网络点击背后都需要进行复杂的分析过程,因此Google对其分析系统进行不断的升级改造之中。MapReduce是Google最早采用的计算模型,适用于批处理,其具体内容已在上一节介绍。图是真实社会中广泛存在的事物之间联系的一种有效表示手段,因此对图的计算是一种常见的计算模式,而图计算会涉及到在相同数据上的不断更新以及大量的消息传递,如果采用MapReduce去实现,会产生大量不必要的序列化和反序列化开销。现有的图计算系统并不适用于Google的应用场景,因此Google 设计并实现了Pregel 图计算模型。Pregel是Google 继MapReduce 之后提出的又一个计算模型,与MapReduce 的离线批处理模式不同,它主要用于图的计算。该模型的核心思想源于著名的BSP计算模型。Dremel是Google 提出的一个适用于Web 数据级别的交互式数据分析系统,通过结合列存储和多层次的查询树,Dremel 能够实现极短时间内的海量数据分析。Dremel 支持着Google 内部的一些重要服务,比如Google 的云端大数据分析平台Big Query。Google 在VLDB 2012 发表的文章中介绍了一个内部名称为PowerDrill的分析工具,PowerDrill 同样采用了列存储,且使用了压缩技术将尽可能多的数据装载进内存。PowerDrill 与Dremel 均是Google 的大数据分析工具,但是其关注的应用场景不同,实现技术也有很大差异。Dremel 主要用于多数据集的分析,而PowerDrill 则主要应用于大数据量的核心数据集分析,数据集的种类相较于Dremel 的应用场景会少很多。由于PowerDrill 是设计用来处理少量的核心数据集,因此对数据处理速度要求极高,所以其数据应当尽可能的驻留在内存,而Dremel 的数据则存储在磁盘中。除此之外,PowerDrill 与Dremel 在数据模型、数据分区等方面都有明显的差别。从实际的执行效率来看, Dremel可以在几秒内处理PB 级的数据查询,而PowerDrill 则可以在30 至40 秒里处理7820 亿个单元格的数据,处理速度快于Dremel。二者的应用场景不同,可以相互补充。
微软提出了一个类似MapReduce 的数据处理模型,称之为Dryad,Dryad 模型主要用来构建支持有向无环图(Directed Acycline Graph,DAG)类型数据流的并行程序。Cascading通过对Hadoop MapReduce API 的封装,支持有向无环图类型的应用。Sector/sphere可以视为一种流式的MapReduce,它由分布式文件系统Sector 和并行计算框架sphere 组成。Nephele/PACTs [68]则包括PACTs(Parallelization Contracts)编程模型和并行计算引擎Nephele。MapReduce 模型基本成为了批处理类应用的标准处理模型,很多应用开始尝试利用MapReduce 加速其数据处理。
实时数据处理是大数据分析的一个核心需求。很多研究工作正是围绕这一需求展开的。前面介绍了大数据处理的两种基本模式,而在实时处理的模式选择中,主要有三种思路:
1) 采用流处理模式。虽然流处理模式天然适合实时处理系统,但其适用领域相对有限。流处理模型的应用主要集中在实时统计系统、在线状态监控等。
2) 采用批处理模式。近几年来,利用批处理模型开发实时系统已经成为研究热点并取得了很多成果。从增量计算的角度出发,Google 提出了增量处理系统Percolator,微软则提出了Nectar和DryadInc。三者均实现了大规模数据的增量计算,但是这些系统和MapReduce 并不兼容,因此Incoop和IncMR实现了MapReduce 框架下的增量计算。Yahoo 的Nova则支持有状态的增量数据计算模式。HOP在MapReduce 处理的过程中引入管道(pipeline)的概念。在保证Hadoop 容错性的前提下,使数据在各个任务间以管道的方式交互,增加了任务的并发性,提高了数据处理的实时性。中国人民大学WAMDM 实验室在HOP 基础上开发的COLA 系统在HOP 系统的基础上增加了数据采样、结果估计、置信区间计算等功能模块,一定程度上提高了HOP 的实时性。原位分析可以避免将文件集中传输到分析服务器上的通讯开销,大大提高了实时性。和从原位分析的角度出发,分别实现了针对大规模日志分析的原位MapReduce(In-situ MapReduce)和ContinuousMapReduce。原始的MapReduce 模型并不能很好的支持迭代计算,计算代价很大。而迭代计算是图计算、数据挖掘、机器学习等领域常见的运算模式,不少研究工作通过改进MapReduce 模型迭代计算的效率来提高其实时性。HaLoop通过在各个task tracker 对数据进行缓存(cache)和创建索引(index)的方式来减少磁盘IO,并提供了一套新的编程接口。但是HaLoop的动静态数据无法分离,且没有一个客观的停止迭代的标准。Twister系统将Hadoop 的全部数据存放在内存中,采用独立模块传递所有的消息和数据。但是数据驻留内存的限制使其难以实用,且其计算模型的抽象度不高,支持的应用也很有限。Twister 仍处于初步的研究阶段。
iMapReduce介绍了一种基于MapReduce 的迭代模型,但是它的静态调度策略和粗粒度的task 可能会导致资源利用不佳和负载不均。iHadoop实现了MapReduce 的异步迭代,但是在task 之间的复用上并无太大改进。PrIter是在Hadoop 的基础上开发的,支持带优先级的迭代计算,能够保证迭代过程的快速收敛,适合top-k 之类的在线查询。最新版本的PrIter 已经支持基于内存和基于文件的数据存储方式。Spark将中间结果存放在内存中,支持除Map 和Reduce 之外的多种操作类型。但是Spark 不适用异步细粒度更新状态的应用,同时在容错性方面有待提升。Facebook 结合自己的应用场景构建了实时的Hadoop 系统,主要是实现了高可用的NameNode,对并发读和实时负载性能进行了优化,改造HBase 使其适合真实的实时生产环境。
3) 二者的融合。有不少研究人员尝试将流处理和批处理模式进行融合,主要思路是利用MapReduce 模型实现流处理。DEDUCE 系统扩展了IBM 的流处理软件System S,使其支持MapReduce。C-MR 系统 通过3 个方面的工作实现了支持流处理的持续型MapReduce( Continuous-MapReduce):
a)将并行流处理中的窗口概念透明的扩展到MapReduce 模型中;
b) 有效结合了包括CPU、GPU 在内的多种异构计算能力;
在Hadoop 系统基础上进行扩展,绕开HDFS 的限制,实现了一个全内存处理的高效流处理系统。StreamMapReduce结合事件流处理(Event Stream Processing)的特点,对MapReduce 中的Mapper 和Reducer 进行重新定义,增加了持续的、低延迟的数据处理能力。
在充分调研基础上,作者认为原始的MapReduce 框架不适合处理快速数据。结合快速数据的特点,文中设计了一个类似MapReduce 的框架——MapUpdate,并在该框架基础上实现了一个原型系统Muppet。和上述这些系统相比,SSS最大的特点就是在支持快速流处理的同时也能够支持大规模静态数据的处理,也就是说兼具流处理和批处理。中提出名为离散流(Discretized Streams)的编程模型,并在Spark基础上实现了一个原型系统Spark Streaming。
4.2 大数据处理工具
关系数据库在很长的时间里成为数据管理的最佳选择,但是在大数据时代,数据管理、分析等的需求多样化使得关系数据库在很多场景不再适用。本节将对现今主流的大数据处理工具进行一个简单的归纳和总结。
Hadoop 是目前最为流行的大数据处理平台。Hadoop 最先是Doug Cutting 模仿GFS、MapReduce 实现的一个云计算开源平台,后贡献给Apache。Hadoop 已经发展成为包括文件系统(HDFS)、数据库(HBase、Cassandra)、数据处理(MapReduce)等功能模块在内的完整生态系统(Ecosystem)。某种程度上可以说Hadoop 已经成为了大数据处理工具事实上的标准。对Hadoop 改进并将其应用于各种场景的大数据处理已经成为新的研究热点。主要的研究成果集中在对Hadoop 平台性能的改进、高效的查询处理、索引构建和使用、在Hadoop 之上构建数据仓库、Hadoop 和数据库系统的连接、数据挖掘、推荐系统等。
除了Hadoop,还有很多针对大数据的处理工具。这些工具有些是完整的处理平台,有些则是专门针对特定的大数据处理应用。表7 归纳总结了现今一些主流的处理平台和工具,这些平台和工具或是已经投入商业使用,或是开源软件。在已经投入商业使用的产品中,绝大部分也是在Hadoop 基础上进行功能扩展,或者提供与Hadoop 的数据接口。
表7 大数据工具列表
5、大数据时代面临的新挑战
综上所述,大数据时代的数据存在着如下几个特点:多源异构;分布广泛;动态增长;先有数据后有模式。
正是这些与传统数据管理迥然不同的特点,使得大数据时代的数据管理面临着新的挑战,下面会对其中的主要挑战进行详细分析。
5.1 大数据集成
数据的广泛存在性使得数据越来越多的散布于不同的数据管理系统中,为了便于进行数据分析需要进行数据的集成。数据集成看起来并不是一个新的问题,但是大数据时代的数据集成却有了新的需求,因此也面临着新的挑战。
1、广泛的异构性。传统的数据集成中也会面对数据异构的问题,但是在大数据时代这种异构性出现了新的变化。主要体现在:
1)数据类型从以结构化数据为主转向结构化、半结构化、非结构化三者的融合。
2)数据产生方式的多样性带来的数据源变化。传统的电子数据主要产生于服务器或者是个人电脑,这些设备位置相对固定。随着移动终端的快速发展,手机、平板电脑、GPS 等产生的数据量呈现爆炸式增长,且产生的数据带有很明显的时空特性。
3)数据存储方式的变化。传统数据主要存储在关系数据库中,但越来越多的数据开始采用新的数据存储方式来应对数据爆炸,比如存储在Hadoop 的HDFS 中。这就必然要求在集成的过程中进行数据转换,而这种转换的过程是非常复杂和难以管理的。
2、数据质量。数据量大不一定就代表信息量或者数据价值的增大,相反很多时候意味着信息垃圾的泛滥。一方面很难有单个系统能够容纳下从不同数据源集成的海量数据;另一方面如果在集成的过程中仅仅简单的将所有数据聚集在一起而不做任何数据清洗,会使得过多的无用数据干扰后续的数据分析过程。大数据时代的数据清洗过程必须更加谨慎,因为相对细微的有用信息混杂在庞大的数据量中。如果信息清洗的粒度过细,很容易将有用的信息过滤掉。清洗粒度过粗,又无法达到真正的清洗效果,因此在质与量之间需要进行仔细的考量和权衡。
5.2 大数据分析(Analytics)
传统意义上的数据分析(analysis)主要针对结构化数据展开,且已经形成了一整套行之有效的分析体系。首先利用数据库来存储结构化数据,在此基础上构建数据仓库,根据需要构建数据立方体进行联机分析处理 (OLAP, Online Analytical Processing),可以进行多个维度的下钻(Drill-down)或上卷(Roll-up)操作。对于从数据中提炼更深层次的知识的需求促使数据挖掘技术的产生,并发明了聚类、关联分析等一系列在实践中行之有效的方法。这一整套处理流程在处理相对较少的结构化数据时极为高效。但是随着大数据时代的到来,半结构化和非结构化数据量的迅猛增长,给传统的分析技术带来了巨大的冲击和挑战,主要体现在:
1、数据处理的实时性(Timeliness)。随着时间的流逝数据中所蕴含的知识价值往往也在衰减,因此很多领域对于数据的实时处理有需求。随着大数据时代的到来,更多应用场景的数据分析从离线(offline)转向了在线(online),开始出现实时处理的需求,比如KDD 2012最佳论文所探讨的实时广告竞价问题。大数据时代的数据实时处理面临着一些新的挑战,主要体现在数据处理模式的选择及改进。在实时处理的模式选择中,主要有三种思路:即流处理模式、批处理模式以及二者的融合。相关研究成果在上一节已经有详细介绍。虽然已有的研究成果很多,但是仍未有一个通用的大数据实时处理框架。各种工具实现实时处理的方法不一,支持的应用类型都相对有限,这导致实际应用中往往需要根据自己的业务需求和应用场景对现有的这些技术和工具进行改造才能满足要求。
2、动态变化环境中索引的设计。关系数据库中的索引能够加速查询速率,但是传统的数据管理中模式基本不会发生变化,因此在其上构建索引主要考虑的是索引创建、更新等的效率。大数据时代的数据模式随着数据量的不断变化可能会处于不断的变化之中,这就要求索引结构的设计简单、高效,能够在数据模式发生变化时很快的进行调整来适应。前面也介绍了通过在NoSQL 数据库上构建索引来应对大数据挑战的一些方案,但总的来说,这些方案基本都有特定的应用场景,且这些场景的数据模式不太会发生变化。在数据模式变更的假设前提下设计新的索引方案将是大数据时代的主要挑战之一。
3、先验知识的缺乏。传统分析主要针对结构化数据展开,这些数据在以关系模型进行存储的同时就隐含了这些数据内部关系等先验知识。比如我们知道所要分析的对象会有哪些属性,通过属性我们又能大致了解其可能的取值范围等。这些知识使得我们在数据分析之前就已经对数据有了一定的理解。而在面对大数据分析时,一方面是半结构化和非结构化数据的存在,这些数据很难以类似结构化数据的方式构建出其内部的正式关系;另一方面很多数据以流的形式源源不断的到来,这些需要实时处理的数据很难有足够的时间去建立先验知识。
5.3 大数据隐私问题
隐私问题由来已久,计算机的出现使得越来越多的数据以数字化的形式存储在电脑中,互联网的发展则使数据更加容易产生和传播,数据隐私问题越来越严重。
1、隐性的数据暴露。很多时候人们有意识的将自己的行为隐藏起来,试图达到隐私保护的目的。但是互联网,尤其是社交网络的出现,使得人们在不同的地点产生越来越多的数据足迹。这种数据具有累积性和关联性,单个地点的信息可能不会暴露用户的隐私,但是如果有办法将某个人的很多行为从不同的独立地点聚集在一起时,他的隐私就很可能会暴露,因为有关他的信息已经足够多了,这种隐性的数据暴露往往是个人无法预知和控制的。从技术层面来说,可以通过数据抽取和集成来实现用户隐私的获取。而在现实中通过所谓的“人肉搜索”的方式往往能更快速、准确的得到结果,这种人肉搜索的方式实质就是众包(Crowdsourcing)。大数据时代的隐私保护面临着技术和人力层面的双重考验。
2、数据公开与隐私保护的矛盾。如果仅仅为了保护隐私就将所有的数据都加以隐藏,那么数据的价值根本无法体现。数据公开是非常有必要的,政府可以从公开的数据中来了解整个国民经济社会的运行,以便更好的指导社会的运转。企业则可以从公开的数据中了解客户的行为,从而推出针对性的产品和服务,最大化其利益。研究者则可以利用公开的数据,从社会、经济、技术等不同的角度来进行研究。因此大数据时代的隐私性主要体现在不暴露用户敏感信息的前提下进行有效的数据挖掘,这有别于传统的信息安全领域更加关注文件的私密性等安全属性。统计数据库数据研究中最早开展数据隐私性技术方面的研究,近年来逐渐成为相关领域的研究热点。Dwork 在2006 年提出了新的差分隐私(Differential Privacy)方法。差分隐私保护技术可能是解决大数据中隐私保护问题的一个方向,但是这项技术离实际应用还很远。
3、数据动态性。大数据时代数据的快速变化除了要求有新的数据处理技术应对之外,也给隐私保护带来了新的挑战。现有隐私保护技术主要基于静态数据集,而在现实中数据模式和数据内容时刻都在发生着变化。因此在这种更加复杂的环境下实现对动态数据的利用和隐私保护将更具挑战。
5.4 大数据能耗问题
在能源价格上涨、数据中心存储规模不断扩大的今天,高能耗已逐渐成为制约大数据快速发展的一个主要瓶颈。从小型集群到大规模数据中心都面临着降低能耗的问题,但是尚未引起足够多的重视,相关的研究成果也较少。在大数据管理系统中,能耗主要由两大部分组成:硬件能耗和软件能耗,二者之中又以硬件能耗为主。理想状态下,整个大数据管理系统的能耗应该和系统利用率成正比。但是实际情况并不像预期情况,系统利用率为0的时候仍然有能量消耗。针对这个问题,《纽约时报》和麦肯锡经过一年的联合调查,最终在《纽约时报》上发表文章《Power, Pollution and the Internet》。调查显示Google数据中心年耗电量约为300万瓦,而Facebook则在60万瓦左右。最令人惊讶的是在这些巨大的能耗中,只有6%-12%的能量被用来响应用户的查询并进行计算。绝大部分的电能用以确保服务器处于闲置状态,以应对突如其来的网络流量高峰,这种类型的功耗最高可以占到数据中心所有能耗的80%。从已有的一些研究成果来看,可以考虑以下两个方面来改善大数据能耗问题:
1、采用新型低功耗硬件。从纽约时报的调查中可以知道绝大部分的能量都耗费在磁盘上。在空闲的状态下,传统的磁盘仍然具有很高的能耗,并且随着系统利用率的提高,能耗也在逐渐升高。新型非易失存储器件的出现,给大数据管理系统带来的新的希望。闪存、PCM等新型存储硬件具有低能耗的特性。虽然随着系统利用率的提高,闪存、PCM等的能耗也有所升高,但是其总体能耗仍远远低于传统磁盘。
2、引入可再生的新能源。数据中心所使用的电能绝大部分都是从不可再生的能源中产生的。如果能够在大数据存储和处理中引入诸如太阳能、风能之类的可再生能源,将在很大程度上缓解能耗问题。
5.5 大数据处理与硬件的协同
硬件的快速升级换代有力的促进了大数据的发展,但是这也在一定程度上造成了大量不同架构硬件共存的局面。日益复杂的硬件环境给大数据管理带来的主要挑战有:
1、硬件异构性带来的大数据处理难题。整个数据中心(集群)内部不同机器之间的性能会存在着明显的差别,因为不同时期购入的不同厂商的服务器在IOPS、CPU处理速度等性能方面会有很大的差异。这就导致了硬件环境的异构性(Heterogeneous),而这种异构性会给大数据的处理带来诸多问题。一个典型的例子就是MapReduce任务过程中,其总的处理时间很大程度上取决于Map过程中处理时间最长的节点。如果集群中硬件的性能差异过大,则会导致大量的计算时间浪费在性能较好的服务器等待性能较差的服务器上。这种情况下服务器的线性增长并不一定会带来计算能力的线性增长,因为“木桶效应”制约了整个集群的性能。一般的解决方案是考虑硬件异构的环境下将不同计算强度的任务智能的分配给计算能力不同的服务器,但是当这种异构环境的规模扩展到数以万计的集群时问题将变得极为复杂。
2、新硬件给大数据处理带来的变革。所有的软件系统都是构建在传统的计算机体系结构之上,即CPU-内存-硬盘三级结构。CPU的发展一直遵循着摩尔定律,且其架构已经从单核转入多核。因此需要深入研究如何让软件更好的利用CPU多核心之间的并发机制。由于机械特性的限制,基于磁性介质的硬盘(Hard Disk Drive, HDD)的读写速率在过去几十年中提升不大,而且未来也不太可能出现革命性的提升。基于闪存的固态硬盘(Solid State Disk,SSD)的出现从硬件层为存储系统结构的革新提供了支持,为计算机存储技术的发展和存储能效的提高带来了新的契机。SSD具有很多优良特性,主要包括极高的读写性能、抗震性、低功耗、体积小等,因此正得到越来越广泛的应用。但是直接将SSD应用到现有的软件上并不一定会带来软件性能的大幅提升。Sang-Won Lee等人的研究表明虽然SSD的读写速率是HDD的60~150倍,基于SSD的数据库系统的查询时间却仅仅提升了不到10倍。二者之间的巨大差距主要是由SSD的一些特性造成的,这些特性包括:SSD写前擦除特性导致的读写操作代价不对称、SSD存储芯片的擦除次数有限等。软件设计之时必须仔细考虑这些特性才能够充分利用SSD的优良特性。与大容量磁盘和磁盘阵列相比,固态硬盘的存储容量相对较低,单位容量的价格远高于磁盘。且不同类型的固态硬盘产品性能差异较大,将固态硬盘直接替换磁盘应用到现有的存储体系中难以充分发挥其性能。因此现阶段可以考虑通过构建HDD和SSD的混合存储系统来解决大数据处理问题。当前混合存储系统的实现主要有三种思路:
HDD作为内存的扩展充当SSD写缓冲;HDD和SSD同做二级存储;SSD用作内存的扩展充当HDD读写缓冲。国外的Google、Facebook,国内的百度、淘宝等公司已经开始在实际运营环境中大规模的使用混合存储系统来提升整体性能。在这三级结构之中,内存的发展处于一个相对缓慢的阶段,一直没有出现革命性的变化。构建任何一个软件系统都会假设内存是一个容量有限的易失结构体。随着以PCM为代表的SCM的出现,未来的内存极有可能会兼具现在内存和磁盘的双重特性,即处理速度极快且非易失。虽然PCM尚未有可以大规模量产的产品推出,但是各大主流厂商都对其非常重视,三星电子在2012年国际固态电路会议(ISSCC 2012)上发表了采用20nm工艺制程的容量为8G的PCM元件。一旦PCM能够大规模的投入使用,必将给现有的大数据处理带来一场根本性的变革。譬如前面提到的流处理模式就可以不再将内存的大小限制作为算法设计过程中的一个主要考虑因素。
5.6 大数据管理易用性(Usability)问题
从数据集成到数据分析,直到最后的数据解释,易用性应当贯穿整个大数据的流程。易用性的挑战突出体现在两个方面:首先大数据时代的数据量大,分析更复杂,得到的结果形式更加的多样化。其复杂程度已经远远超出传统的关系数据库。其次大数据已经广泛渗透到人们生活的各个方面,很多行业都开始有了大数据分析的需求。但是这些行业的绝大部分从业者都不是数据分析的专家,在复杂的大数据工具面前,他们只是初级的使用者(NaïveUsers)。复杂的分析过程和难以理解的分析结果限制了他们从大数据中获取知识的能力。这两个原因导致易用性成为大数据时代软件工具设计的一个巨大挑战。关于大数据易用性的研究仍处于一个起步阶段。从设计学的角度来看易用性表现为易见(Easy to discover)、易学(Easyto learn)和易用 (Easy to use)。要想达到易用性,需要关注以下三个基本原则[138]:
1、可视化原则(Visibility)。可视性要求用户在见到产品时就能够大致了解其初步的使用方法,最终的结果也要能够清晰的展现出来。针对MapReduce 使用复杂的情况,未来如何实现更多大数据处理方法和工具的简易化和自动化将是一个很大的挑战。除了功能设计之外,最终结果的展示也要充分体现可视化的原则。可视化技术是最佳的结果展示方式之一,通过清晰的图形图像展示直观的反映出最终结果。但是超大规模的可视化却面临着诸多挑战,主要有:原位分析;用户界面与交互设计;大数据可视化;数据库与存储;算法;数据移动、传输和网络架构;不确定性的量化;并行化;面向领域与开发的库、框架以及工具;社会、社区以及政府参与。
2、匹配原则(Mapping)。人的认知中会利用现有的经验来考虑新的工具的使用。譬如一提到数据库,了解的人都会想到使用SQL 语言来执行数据查询。在新工具的设计过程中尽可能将人们已有的经验知识考虑进去,会使得新工具非常便于使用,这就是所谓的匹配原则。MapReduce 模型虽然将复杂的大数据处理过程简化为Map 和Reduce 的过程,但是具体的Map 和Reduce 函数仍需要用户自己编写,这对于绝大部分没有编程经验的用户而言仍过于复杂。如何将新的大数据处理技术和人们已经习惯的处理技术和方法进行匹配将是未来大数据易用性的一个巨大挑战。这方面现在已经有了些初步的研究工作。针对 MapReduce 技术缺乏类似SQL 标准语言的弱点,研究人员开发出更高层的语言和系统。典型代表有Hadoop的HiveQL和Pig Latin、Google 的 Sawzall、微软的SCOPE和DryadLINQ以及MRQL等。SQL 查询有自动优化的过程,而MapReduce 并没有。针对这点,和实现了MapReduce 的查询优化器。通过调研发现系统I/O 冗余是由于查询之间的关联(correlations),为了解决这个问题,作者引入了BSP(Batched Stream Processing)模型,并在DryadLINQ 中实现了查询优化系统Comet。还有部分学者的工作集中在将SQL 语言自动转化成MapReduce 任务。比较代表性的系统有YSmart、Tenzing等。还有一些其他的工作,比如S4Latin在S4 的基础上实现了一个新的数据处理框架,使得用户可以直接用类似查询的方式而不是编程的方式创建新的流应用。这在很大程度上改善了大数据流处理平台S4 的易用性。
3、反馈原则(Feedback)。带有反馈的设计使得人们能够随时掌握自己的操作进程。进度条就是一个体现反馈原则的经典例子。大数据领域关于这方面的工作较少,有部分学者开始关注MapReduce 程序执行进程的估计。传统的软件工程领域,程序出现问题之后有比较成熟的调试工具可以对错误的程序进行交互式的调试,相对容易找到错误的根源。但是大数据时代很多工具其内部结构复杂,对于普通用户而言这些工具近似于黑盒(black box),调试过程复杂,缺少反馈性。PerfXplain设计并实现了MapReduce 的简便化调试系统。为了解决大数据云(Big Data Cloud)中程序部署和调试的问题,实现了一个可扩展的轻量级Hadoop 性能分析器HiTune。如果未来能够在大数据的处理中大范围的引入人机交互技术,使得人们能够较完整的参与整个分析过程,会有效的提高用户的反馈感,在很大程度上提高易用性。
满足三个基本原则的设计就能够达到良好的易用性。从技术层面来看,可视化、人机交互以及数据起源技术都可以有效的提升易用性。而在这些技术的背后,海量元数据管理的问题是需要我们特别关注的一个问题。元数据是关于数据的数据,数据之间的关联关系以及数据本身的一些属性大都是靠元数据来表示的。可视化技术离不开元数据的支持,因为如果无法准确的表征出数据之间的关系,就无法对数据进行可视化的展示。数据起源技术更是离不开元数据管理技术。因为数据起源需要利用元数据来记录数据之间包括因果关系在内的各种复杂关系,并通过这些信息来进行相关的推断。如何在大规模存储系统中实现海量元数据的高效管理将会对大数据的易用性产生重要影响。
5.7 性能的测试基准(Benchmark)
关系数据库产品的成功离不开以TPC 系列为代表的测试基准的产生。正是有了这些测试基准,才能够准确的衡量不同数据库产品的性能,并对其存在的问题进行改进。目前尚未有针对大数据管理的测试基准,构建大数据测试基准面临的主要挑战有:
1、系统复杂度高。大数据管理系统的类型非常多,很多公司针对自己的应用场景设计了相应的数据库产品。这些产品的功能模块各异,很难用一个统一的模型来对所有的大数据产品进行建模。
2、用户案例的多样性。测试基准需要定义一系列具有代表性的用户行为,但是大数据的数据类型广泛,应用场景也不尽相同,很难从中提取出具有代表性的用户行为。
3、数据规模庞大。这会带来了两方面的挑战。首先数据规模过大使得数据重现非常困难,代价很大。其次在传统的 TPC 系列测试中,测试系统的规模往往大于实际客户使用的数据集,因此测试的结果可以准确的代表系统的实际性能。但是在大数据时代,用户实际使用系统的数据规模往往大于测试系统的数据规模,因此能否用小规模数据的测试基准来代表实际产品的性能是目前面临的一个挑战。数据重现的问题可以尝试利用一定的方法来去产生测试样例,而不是选择下载某个实际的测试数据集。但是这又涉及到如何使产生的数据集能真实反映原始数据集的问题。
4、系统的快速演变。传统的关系数据库其系统架构一般比较稳定,但是大数据时代的系统为了适应数据规模的不断增长和性能要求的不断提升,必须不断的进行升级,这使得测试基准得到的测试结果很快就不能反映系统当前的实际性能。
5、重新构建还是复用现有的测试基准。如果能够在现有的测试基准中选择合适的进行扩展的话,那么将极大减少构建新的大数据测试基准的工作量。可能的候选测试标准有SWIM(Statistical Workload Injector for MapReduce)、MRBS、Hadoop 自带的GridMix、TPC-DS、YCSB++等。
现在已经开始有工作尝试构建大数据的测试基准,比如一些针对大数据测试基准的会议WBDB 2012、TPCTC 2012 等。但是也有观点认为当前讨论大数据测试基准的构建为时尚早。Yanpei Chen 等通过对7 个应用MapReduce 技术的实际产品的负载进行了跟踪和分析,认为现在根本无法确定大数据时代的典型用户案例。因此从这个角度来看并不适合构建大数据的测试基准,还有很多基础性的问题亟待解决。
总的来说,构建大数据的测试基准是有必要的。但是面临的挑战非常多,要想构建一个类似TPC 的公认的测试标准难度很大。
6、结论
随着云计算、物联网等的发展,数据呈现爆炸式的增长,人们正被数据洪流所包围,大数据的时代已经到来。正确利用大数据给人们的生活带来了极大的便利,但于此同时也给传统的数据管理方式带来了极大的挑战。本文对最近几年国内外大数据相关的研究成果进行了全面的回顾和总结,介绍了大数据的基本概念,详细分析了大数据管理的关键技术,主要是阐述云计算技术对于大数据管理的基础性作用。本文还着重介绍了目前大数据研究面临的新挑战以及相应的一些研究成果。总的来说,眼下对于大数据的研究仍处于一个非常初步的阶段,还有很多基础性的问题有待解决。大数据的几个特征中究竟哪个最重要?面对大数据管理我们需要的是简单的技术上的演变(Evolution)还是彻底的变革(Revolution)?不同学科的研究者之间怎样协作才能更有利于大数据问题的解决?诸如此类的问题还有许多,要解决大数据问题仍有很长的路要走,期望本文的介绍能给大数据研究同行学者提供一定的参考。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:大数据管理:概念、技术与挑战(下)