数据立方( 二 )


数据立方

文章插图
shared-nothing和shared-disk存储架构一个子集在本地磁碟上,一般来说,shared-nothing系统可以提供很高的并行I/O和并行计算能力,但是也有多节点事务处理、数据传输以及数据倾斜等问题 。在shared-disk系统中,数据被集中存储,所有的资料库节点都可以访问存储系统的任意一个磁碟,因此数据也没有必要被切分,这也避免了数据倾斜的问题,这种系统主要的缺陷在于较低的I/O频宽和扩展能力 。云计算与资料库相结合的技术与资料库相结合的云计算技术一般指的是MapReduce技术,当前主要有Teradata公司的Aster Data[15]和耶鲁大学提出的HadoopDB 。Aster Data将MapReduce与SQL引擎相结合,针对大数据处理和分析提出了SQL/MapReduce框架,用户可以使用JAVA、C++等多种语言在Aster Data的并行框架上编写MapReduce函式,编写的函式可以作为一个子查询在SQL中使用,从而获得SQL的易用性和MapReduce的开放性 。同时Aster Data能够对多结构化数据、原始数据进行处理和分析,并拥有丰富的统计软体包可以讲数据分析推向资料库内进行,提升了数据分析性能 。在HadoopDB 中,系统清晰地分成两层,上层使用 Hadoop 进行任务的分解和调度,下层用 RDBMS(Postgresql)进行数据的查询和处理,在处理查询时,执行的是SQL to mapReduce to SQL操作过程(SMS planner) 。该工作的创新之处是:试图利用 Hadoop 的任务调度机制提高系统的扩展性和容错性,以解决大数据分析的横向扩展问题;利用 RDBMS 实现数据存储和查询处理,以解决性能问题.在其性能实验中,HadoopDB 的性能仍然落后于关係资料库系统.如何提升MapReduce的性能,已引起研究人员的高度重视,研究人员提出了MapReduce的各种最佳化技术,获得了重要的性能改进.Yale 大学 Abadi 领导的小组正在使用包括列存储、持续装载和分析(continuous loading and analysis)等技术,以改进 HadoopDB 的性能 。
数据立方

文章插图
HadooopDB结构图3是HadooopDB的一个结构图,在原来的hadoop与hive的基础上,增加了一些组件:其中SMS Planner的作用是在hive解析SQL语句生成MapReduce任务树之后,对MapReduce任务树进行最佳化,指导hadoop去并行资料库中执行SQL 。Catalog里面存储了并行资料库的一些信息 。Data loader负责把原始数据载入到并行资料库中,需要完成的工作是对原始数据的划分 。Database Connector用于向各个节点传递信息,包含了节点里面资料库的连结信息和需要执行的SQL语句 。Paralled DataBase用于代替HDFS在各个节点上存储数据 。新一代EB级云计算资料库--数据立方通过对MapReduce、并行资料库和两者的混合技术研究,南京云创存储科技有限公司推出了实施云计算资料库--数据立方,该系统通过引入索引模组、并行执行架构以及读取本地磁碟的执行方式,使查询达到了实时完成、简单易用、高可靠安全的效能,使EB级的数据能够秒级处理,极大地提高了用户执行查询操作后的使用效率,不仅在查询和检索这部分数据的时候具有非常高的性能优势,数据立方还可以支持数据仓库存储、数据深度挖掘和商业智慧型分析等业务 。体系架构数据立方(DataCube)的结构分为用户接口、索引、SQL解析器、作业生成器、元数据管理、并行计算架构、分散式档案系统等部分,如图4所示 。用户接口主要有两个:JDBC和Shell 。JDBC主要执行数据的定义操作,即建立资料库、建表、建分区,对资料库、表和分区的删改等,同时可执行数据查询的SQL语句,暂不支持单条记录的增删改;数据立方提供友好的shell互动界面,shell支持资料库、表的增删改以及数据查询的SQL语句 。