数据立方


数据立方

文章插图
数据立方【数据立方】我们以B+树的结构建立了栏位的索引,每个B+树结构的栏位索引相当于一个数据平面,这样一个全局数据表与其多个重要栏位的索引就组成了一个类似于立方体的数据组织结构,我们称之为“数据立方(DataCube)” 。
基本介绍中文名:数据立方
外文名:DataCube
用于:数据分析与索引
类型:技术架构
架构介绍数据立方(DataCube)是一种用于数据分析与索引的技术架构 。它是针对大数据(big data)的处理利器,可以对元数据进行任意多关键字实时索引 。通过数据立方对元数据进行分析之后,可以大大加快数据的查询和检索效率 。数据立方是凌驾于数据存储层和资料库系统之上的,通过数据立方解析后,可以大大增加数据查询和检索等业务,可以让系统平台具备数据实时入库、实时查询、查询结果实时传输等优势 。主要套用于大数据处理的数据立方大数据一体机 。背景随着计算机技术的发展,各领域数据的增长越来越快 。这些数据来自方方面面,从蒐集天气情况的感测器,接入社交媒体网站的指令,数码图片,线上的视频资料,到网路购物的交易记录,手机的全球定位系统信号等等 。随着数据规模的急剧膨胀,各行业累积的数据量越来越巨大,数据类型也越来越多、越来越複杂,已经超越了传统数据管理系统、处理模式的能力範围,传统的串列资料库系统已经难以适应这种飞速增长的套用需求 。在这种需求的驱动下,云计算中的MapReduce技术、并行资料库技术以及云计算与资料库相结合的技术应运而生 。在大数据的背景下,对大数据处理技术进行了探讨,将其分为三类:MapReduce技术、并行资料库技术和云计算与资料库相结合的技术 。通过研究这些技术的架构、适用环境,提出了一种全新的云计算资料库--数据立方 。数据立方技术云计算中的大数据处理技术--MapReduceMapReduce计算架构把运行在大规模集群上的并行计算过程简单抽象为两个函式:Map和Reduce,也就是分解与规约 。简单说,MapReduce就是“任务的分解与结果的汇总” 。程式将大数据分解为多个数据块由Map函式处理,Reduce把分解后多任务处理产生的中间结果汇总起来,得到最终结果 。适合MapReduce处理的任务特徵为:待处理的大规模数据集可以切分为多个小的数据集,并且每一个小数据集都可以完全并行地进行处理 。图1介绍了用MapReduce处理大数据集的过程 。一个MapReduce操作分为两个阶段:Map阶段和Reduce阶段 。图1 MapReduce处理大数据集的过程
数据立方

文章插图
图1 MapReduce处理大数据集的过程在映射阶段,MapReduce并行计算架构将用户的输入数据切分为M个数据段,每个数据段对应1个Map任务 。每一个Map函式的输入是数据段中的键值对<K1,V1>集合, Map函式是用户继承MapReduce并行计算架构而编写的,Map操作调用此函式,输出一组中间结果,即键值对<K2,V2> 集合 。接下来,按照中间结果集合的K2将中间结果集进行排序,生成一个新的<K2,list(V2)> 集合,使得对应同一个K2的所有值的数据都聚集在一起 。然后,按照K2的範围将这些元组分割为R个片断,对应Reduce任务的数目 。在规约阶段,每一个Reduce操作的输入是一个<K2,list(V2)>片断,Reduce操作调用用户定义的Reduce函式,生成用户需要的键值对<K3,V3>进行输出 。这种简洁的并行计算模型在系统层面解决了可用性、扩展性、容错性等问题,是非关係数据管理和分析技术的典型代表 。MapReduce是面向廉价计算机组成的大规模集群设计的,其非共享结构、松耦合性和较强的容错能力带来了较强的扩展能力,同时,MapReduce在工业界被广泛套用,Google、twitter、Facebook、Yahoo等厂商对其进行了深度的改进和扩展 。此外,MapReduce的<key,value>存储模型能够存储任意格式的数据,Map和Reduce函式可以进行各种複杂的数据处理,这也使得程式设计师的负担加重,在对上层业务的开发效率上不如SQL简单 。在相同的硬体条件下,对于有具体条件的查询来说,并行资料库的性能是远远超过MapReduce的,但是对于在大数据上的複杂统计业务来说,MapReduce在速度上会占有一定优势,MapReduce是为非结构化大数据的複杂处理而设计的,这些业务具有一次性处理的特点,此外由于採取了全数据扫描的模式以及对中间结果逐步汇总的策略,使其在拥有良好扩展能力和容错能力的同时也导致了较高的磁碟和网路I/O的负载以及较高的数据解析代价 。并行资料库技术在上世纪80年代,资料库流行的同时并行资料库也开始起源,早期并行资料库(例如:Gamma和Grace)的基础架构被沿用至今,当前的并行资料库主要有Oracle的Exdata、EMC的Greenplum、Teradata和,这些资料库都支持标準SQL 。并行资料库一般可以分为shared-nothing和shared-disk两种存储架构,如图2所示 。这两种架构有各自的优缺点,在shared-nothing系统中,数据集被切分为多个子集,集群中每个节点分别存储 。