一种支持Hive DML增强的混合存储系统及其方法技术方案

技术编号:9838357 阅读:238 留言:0更新日期:2014-04-02 02:04
本发明专利技术公开了一种支持Hive DML(Data Manipulation Language)增强的混合存储系统及其方法,该存储系统基于DualTable表建立,包括:DualTable表创建模块和DualTable表执行模块;DualTable表创建模块用于建立包含主表和附表,为每行数据维护了唯一ID并基于代价模型对外提供特定操作集的DualTable表;DualTable表执行模块用于基于DualTable的主表和附表实现对DualTable表中的数据进行读取和查询,基于DualTable的附表实现对DualTable表中的数据进行更改,基于代价模型实现DualTable表提供的操作集,基于有序的每行数据唯一ID实现主表和附表数据读取时的合并。

【技术实现步骤摘要】
一种支持HiveDML增强的混合存储系统及其方法
本专利技术涉及到大数据环境下,使ApacheHive高效的实现DML(DataManipulationLanguage数据操作语言)操作的混合存储系统的开发与实现,特别涉及支持HiveDML增强的混合存储系统。
技术介绍
Hive为基于Hadoop的数据分析提供了类SQL接口,减少了MapReduce开发量,同时方便了从现有的提供SQL接口的关系数据仓库向Hadoop生态系统的转换。Hive能够将用户定义的数据表模式映射到底层的数据存储之上,并基于MapReduce实现对数据的查询与操作。但是,受制于较弱的DML支持,Hive在企业级大数据处理中无法充分发挥效能。学术界和工业界进行了大量Hive优化的工作,包括了查询方案优化、执行系统优化、存储系统优化等方面。(1)查询方案优化在2011年TheInternationalConferenceonDistributedComputingSystems(国际分布式计算系统会议)中RubaoLee等人公开了一篇名为“YSmart:YetanotherSQL-to-MapReduceTranslator”的文献,YSmart能够在复杂的查询中发现关联的操作并基于规则对其化简来产生包含MapReduce任务最少的执行方案,从而减少查询时间。在2011年ACMSymposiumonCloudComputing(ACM云计算研讨会)上SaiWu等人公开了一篇名为“QueryOptimizationforMassivelyParallelDataProcessing”的文献,提出了一个Hive的优化器AQUA,它能够对查询中多个JOIN进行分组并基于代价模型选择最优的方案;在The38thInternationalConferenceonVeryLargeDataBases(第38届国际超大规模数据库会议)上HaroldLim等人公开了一篇名为“Stubby:ATransformation-basedOptimizerforMapReduceWorkflows”的文献,提出了一个面向MapReduce工作流的优化器Stubby,它能基于一系列的变换(transformation)规则搜索出查询方案各种变体中最高效的一个。这些工作目标在于提高Hive的查询性能,并没有为Hive带来DML操作的增强。(2)执行系统优化Hortonworks公司提出了Tez框架,基于Hadoop的第二代MapReduce框架YARN让Hadoop更好的执行DAG(DirectedAcyclicGraph,有向无环图)工作流,减少Hive查询执行时不必要的中间任务和数据,从而缩短Hive查询响应时间。UCBerkeley大学开发的Shark(http://spark.incubator.apache.org/)在内存计算框架Spark的基础之上提供了与Hive兼容的接口,使得现有的Hive查询能够获得内存计算带来的加速。此外,学术界进行了大量MapReduce框架相关的优化工作,例如MRShare、Starfish、各种调度器等。这些工作都能够对基于MapReduce的Hive带来好处。这些工作缩短了Hive查询响应时间,但没有增强Hive的DML能力。(3)存储系统优化Hive默认使用HDFS(HadoopDistributedFileSystem)作为存储,HDFS是GoogleFileSystem的开源实现,提供的高吞吐的大文件顺序读。在2011年的ProceedingsoftheIEEEInternationalConferenceonDataEngineering(IEEE数据工程国际会议)中HeYongqiang等人公开了一篇文献“RCFile:aFastandSpace-efficientDataPlacementStructureinMapReduce-basedWarehousesystems”,提出了利用行列混合存储及压缩的RCFile存储结构,实现数据快速加载、查询快速响应和磁盘充分利用,在Hive和Pig等系统中广泛应用。Hortonworks公司进一步提出了ORC(OptimizedRCFile),提供了Hive类型模型的支持、部分统计信息和索引的存储等功能,进一步优化了Hive数据存储。Hive通过StorageHandler机制支持扩展多种底层存储系统,包括了HBase(http://hbase.apache.org/)、Cassandra(http://cassandra.apache.org/)等。HBase是类似BigTable的分布式列存储数据库,能够支持对海量结构化数据的随机读写,支撑应用的在线访问需求。HBase借助LogStructureMergeTree方法,将对文件多次随机写转换为磁盘批量写,弥补了HDFS随机读写方面的不足。Phoenix(https://github.com/forcedotcom/phoenix)为HBase提供了类SQL接口,支持了数据的查询、更新、删除等操作。但是Phoenix面向的是低延迟的在线应用(OLTP,OnlineTransactionProcessing),而不是类似Hive的批量数据处理(OLAP,OnlineAnalyticalProcessing),不具有高效的涉及大量数据的查询处理能力。本专利技术提出的HiveDML增强面向的是批量数据处理中的更新与删除,与Phoenix系统的目标完全不同。以上介绍的所有Hive相关优化工作和相关系统都没有涉及增强类SQL接口中的DML操作,都不能解决在企业级大数据处理场景中遇到的数据更改问题。
技术实现思路
本专利技术的所要解决的技术问题在于提供一种面向HiveDML增强的混合存储系统,基于DualTable表,以解决在企业级大数据处理场景中数据更改问题。为达上述目的,本专利技术提供了一种支持HiveDML增强的混合存储系统,其特征在于,所述系统基于DualTable表建立,所述混合存储系统,包括:DualTable表创建模块:用于建立包含主表和附表,为每行数据维护了唯一ID并基于代价模型对外提供特定操作集的DualTable表;DualTable表执行模块:用于基于所述主表和所述附表实现对所述DualTable表中的数据读取和查询,基于所述附表实现对所述DualTable表中的数据进行更改,基于所述代价模型实现所述DualTable表提供的操作集,基于有序的每行数据的所述唯一ID实现所述主表和所述附表数据读取时的合并。上述支持HiveDML增强的混合存储系统,其特征在于,所述维护每行数据唯一ID的机制用于维护每行数据唯一的ID,确保不同存储系统间读取数据有序合并。上述支持HiveDML增强的混合存储系统,其特征在于,所述主表用于所述DualTable表的数据存储,采用分布式文件存储。上述支持HiveDML增强的混合存储系统,其特征在于,所述附表用于存储所述DualTable表中数据的更改信息。上述支持HiveDML增强的混合存储系统,其特征在于,所述操作集为所述DualTable提供的操作集合,包含:UnionRead本文档来自技高网
...
一种<a href="http://www.xjishu.com/zhuanli/55/201310618652.html" title="一种支持Hive DML增强的混合存储系统及其方法原文来自X技术">支持Hive DML增强的混合存储系统及其方法</a>

【技术保护点】
一种支持Hive DML增强的混合存储系统,其特征在于,包括: DualTable表创建模块:用于建立包含主表和附表,为每行数据维护了唯一ID并基于代价模型对外提供特定操作集的DualTable表; DualTable表执行模块:用于基于所述主表和所述附表实现对所述DualTable表中的数据读取和查询,基于所述附表实现对所述DualTable表中的数据进行更改,基于所述代价模型实现所述DualTable表提供的操作集,基于有序的每行数据的所述唯一ID实现所述主表和所述附表数据读取时的合并。

【技术特征摘要】
1.一种支持HiveDML增强的混合存储系统,其特征在于,包括:DualTable表创建模块:用于建立包含主表和附表,为每行数据维护了唯一ID并基于代价模型对外提供操作集的DualTable表,所述DualTable表创建模块指定使用所述DualTable表专用的InputFormat,OutputFormat和SerDe,所述DualTable表创建模块允许设置所述DualTable表的参数,每一所述DualTable表模式中的第一列默认为数据行ID,所述主表使用Hive默认的HDFS存储,所述附表使用HBase存储,创建过程中检查并创建HBase中对应的所述附表,所述操作集为所述DualTable提供的操作集合,包含:UnionRead、UPDATE、DELETE、INSERTINTO、CREATE、DROP、LOAD和COMPACT;DualTable表执行模块:用于基于所述主表和所述附表实现对所述DualTable表中的数据读取和查询,基于所述附表实现对所述DualTable表中的数据进行更改,基于所述代价模型实现所述DualTable表提供的操作集,基于有序的每行数据的所述唯一ID实现所述主表和所述附表数据读取时的合并。2.根据权利要求1所述支持HiveDML增强的混合存储系统,其特征在于,所述维护每行数据唯一ID的机制用于维护每行数据唯一的ID,确保不同存储系统间读取数据有序合并。3.根据权利要求1所述支持HiveDML增强的混合存储系统,其特征在于,所述主表用于所述DualTable表的数据存储,采用分布式文件存储。4.根据权利要求1所述支持HiveDML增强的混合存储系统,其特征在于,所述附表用于存储所述DualTable表中数据的更改信息。5.根据权利要求1所述支持HiveDML增强的混合存储系统,其特征在于,基于所述代价模型,实现所述UPDATE和DELETE操作。6.根据权利要求5所述支持HiveDML增强的混合存储系统,其特征在于,所述UPDATE操作和DELETE操作包括:OVERWRITE操作方式和EDIT操作方式。7.根据权利要求6所述支持HiveDML增强的混合存储系统,其特征在于,基于所述代价模型计算对所述OVERWRITE和EDIT操作方式进行动态选取。8.根据权利要求1所述支持HiveDML增强的混合存储系统,其特征在于,所述DualTable表执行模块,还包括:数据读取模块:通过专用输入格式读取所述DualTable表中的数据;数据查询模块:用于根据所述数据读取模块的读取数据,通过查询语句对所述DualTable中的数据进行查询;数据行ID管理模块:用于确保所述每行数据唯一ID在整个所述DualTable表中的唯一性;COMPACT模块:用于将DualTable表的附表中的数据合并进主表,并清空附表数据;代价模型模块:包含代价模型参数获取子模块,用于获取所述代价模型所需的计算参数,基于所述代价模型的估算,支持所述DualTable表的删除和更新操作的实现;删除和更...

【专利技术属性】
技术研发人员:黄硕虎嵩林梁英谷丹阳吴凯锋李祥珍洪建光张春光肖政裴旭斌衡星辰崔蔚
申请(专利权)人:中国科学院计算技术研究所 国网浙江省电力公司信息通信分公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1