应导师要求研读一些论文。个人感觉这篇论文为我们面临的大数据一些关键技术做了比较全面权威的综述。我把其中一些关键地方做个笔记。 1.当前大数据带来的变革 图灵奖获得者、著名数据库专家Jim Gray博士观察并总结人类自古以来,在科学研究上,先后历经了实验、理论和计算3种范式.当数据量不断增长和累积到今天,传统的3种范式在科学研究,特别是一些新的研究领域已经无法很好地发挥作用,需要有一种全新的第4种范式来指导新形势下的科学研究.基于这种考虑,Jim Gray提出了一种新的数据探索型研究方式,被他自己称之为科学研究的“第4种范式”(The Fourth Paradigm)。以下是科学发现的四种范式: 2 .大数据处理框架 分为流处理(直接处理)和批处理(先存储后处理)两种。 2.1 流处理 特点: 数据持续到达,速度快,规模巨大,不会对数据永久存储,由于数据环境不断变化导致难以掌握整个数据的全貌。 代表性的开源系统: Twitter的Strom :(开源源码)https://github.com/nathanmarz/storm (相关中文概念技术解说)http://www.ibm.com/developerworks/cn/opensource/os-twitterstorm/ http://www.cnblogs.com/aga-j/archive/2012/02/03/2337440.html Yahoo的 S4: (相关概念技术)http://www./lib/view/open1328255157234.html Linkedin的Kafka:(比较难找,这里有一篇稍微详细全面的资料)http:///search-engine/kafka/
2.2 批处理 代表处理技术:MapReduce 核心思想: 1) 将问题分而治之。 2)把计算推到数据而不是把数据推到计算,有效避免数据传输过程中产生的大量通信开销。
3. 大数据的处理流程 大数据的处理流程可以定义为在合适工具的辅助下,对广泛异构的数据源进行抽取和集成,结果按照一定的标准统一存储.利用合适的数据分析技术对存储的数据进行分析,从中提取有益的知识并利用恰当的方式将结果展现给终端用户.具体来说以分为数据抽取与集成、数据分析以及数据解释。 下图展示了标准数据处理流程。
4.关键技术分析 大数据价值的完整体现需要多种技术的协同.文件系统提供最底层存储能力的支持.为了便于数据管理,需要在文件系统之上建立数据库系统.通过索引等的构建,对外提供高效的数据查询等常用功能.最终通过数据分析技术从数据库中的大数据提取出有益的知识. 4.1 云计算: 大数据的基础平台与支撑技术 4.1.1 文件系统 代表:Google自行设计开发了Google文件系统GFS(Google File System)是构建在大量廉价服务器之上的一个可扩展的分布式文件系统,GFS主要针对文件较大,且读远大于写的应用场景,采用主从(Master-Slave)结构.通过数据分块、追加更新(append-only)等方式实现了海量数据的高效存储.随着时间推移,GFS的架构逐渐开始无法适应需求.Google对GFS进行了重新的设计,该系统正式的名称为Colosuss具体实现尚未公开. FaceBook推出了专门针对海量小文件的文件系统HayStack 通过多个逻辑文件共享同一个物理文件、增加缓存层、部分元数据加载到内存等方式有效地解决了FaceBook海量图片存储问题. 淘宝推出了类似的文件系统TFS(Tao File System),通过将小文件合并成大文件、文件名隐含部分元数据等方式实现了海量小文件的高效存储.FastDFS针对小文件的优化类似于TFS. 4.1.2 数据库系统 直接采用关系模型分布式数据库并不能适应大数据时代的数据存储,原因:(1)传统数据库更倾向于纵向扩展,横向扩展能力有限。(2)面对大数据时代多样性数据,只能处理结构化数据的传统数据库相对无力。(3)面对不同问题需要不同的数据管理,而传统数据库的 one-fits-all的设计理念难以应对。(4)数据库中事物必须满足的 ACID(原子性,一致性,隔离性,持久性)这些过于严格的约束,使其无法应用于很多大数据场景,新型 BASE(基本可用,柔性状态,最终一致)更注重数据可用性。 应对:NoSQL(not only SQl). 特性:1)模式自由,2)支持简易备份。3)简单应用程序接口。4)最终一致性。5)支持海量数据。 典型的NoSQL数据库一些比较: 4.1.3 索引查询技术 关系数据库也是利用对数据构建索引的方式较好地解决了数据查询的问题.不同的索引方案使得关系数据库可以满足不同场景的要求.索引的建立以及更新都会耗费较多的时间,在面对传统数据库的小数据量时这些时间和其所带来的查询便利性相比是可以接受的,但是这些复杂的索引方案基本无法直接应用到大数据之上。 NoSQL数据库针对主键的查询效率一般较高,因此有关的研究集中在NoSQL数据库的多值查询优化上.针对NoSQL数据库上的查询优化研究主要有两种思路:(1)采用MapReduce并行技术优化多值查询:当利用MapReduce并行查询NoSQL数据库时,每个MapTask处理一部分的查询操作,通过实现多个部分之间的并行查询来提高多值查询的效率.此时每个部分的内部仍旧需要进行数据的全扫描.(2)采用索引技术优化多值查询:很多的研究工作尝试从添加多维索引的角度来加速NoSQL数据库的查询速度.
一些解决方案对比: ITHbase,IHbase,CCIndex 和Asynchronous views是典型的采用多个一维二级索引来加速多值查询优化的实现方案.其中ITHbase 和IHbase 是两个开源的实现方案, 4.1.4 数据分析技术 Pregel是Google继MapReduce之后提出的又一个计算模型,与MapReduce的离线批处理模式不同,它主要用于图的计算。该模型的核心思想源于著名的BSP计算模型。Dremel是Google提出的一个适合于Web数据级别的交互式数据分析系统,通过列存储和多层次的查询树,Dremel能够实现极短时间内的海量数据分析。PowerDrill是设计用来处理少量的核心数据集,因此对数据处理的速度要求极高,所以数据应当尽可能地驻留在内存,而Dremel的数据则存储在磁盘中。 微软提出了一个类似MapReduce的数据处理模型,称之为Dryad,Dryad模型主要用来构建支持有向无环图(directed acycline graph,DAG)类型数据流的并行程序.Cascading通过对HadoopMapReduce API的封装,支持有向无环图类型的应用.Sector?sphere 可以视为一种流式的MapReduce,它由分布式文件系统Sector和并行计算框架sphere 组成。 处理实时数据的思路有三种: 1)采用流处理模式.虽然流处理模式天然适合实时处理系统,但其适用领域相对有限.流处理模型的应用主要集中在实时统计系统、在线状态监控等. 3)二者的融合.有不少研究人员尝试将流处理和批处理模式进行融合,主要思路是利用MapReduce模型实现流处理。
|
|
来自: shawnsun007 > 《数据治理》