按列存储环境下分布式系统中物化视图布局及其维护方法

文档序号:6444268阅读:164来源:国知局
专利名称:按列存储环境下分布式系统中物化视图布局及其维护方法
技术领域
本发明属数据库技术领域,具体涉及一种按列存储环境下分布式系统中物化视图布局与维护方法。
背景技术
随着数据规模的急速增长,数据密集型计算在当前研究领域格外引人注目许多大型IT企业,如谷歌,亚马逊以及他们的竞争对手都在致力于构建大规模数据分析平台,以支持数据密集型计算。在这里,数据密集型计算系统包括获得,更新,共享,归档的数据,并提供在海量数据集上足够的计算能力。由大量的无共享的商用电脑构成的集群系统通常作为基础设施有效和高效的提供这些服务。通常情况下,数据的来源很多(例如,操作数据库,Web 2. 0的网页等),这些数据都将不断地集成到数据分析平台(即,数据密集型计算系统)。数据源和数据分析平台之间的关系如图1。大规模数据分析平台从各种数据源收集数据,并将这些数据物化存储下来用以数据分析。视图是一个常用的适用于高效处理的数据分析的数据结构。然而,当存储在数据分析平台物化视图不能反映来自在数据源的最新更新信息时,物化视图就会过时。因此,如何保持物化视图与数据源之间的一致性成为一个亟待解决的问题。与传统的数据仓库不同,数据分析平台中的视图是基于数据源大规模分布式文件系统的,如HDFS (Hadoop分布式文件系统)、GFS (Google文件系统)等。值得注意的是,HDFS采用了“一次写入多次读出”的文件访问模式来管理数据,文件一旦创建、写入和关闭,则不能再次更新该文件除了将数据追加到文件的末尾。也就是说本发明不能删除,插入或更新文件内的记录。此外,本发明使用面向列存储模型来存储关系数据表,而不是传统的按行存储模型(即,N-ary模型)。按列存储模型使得文件中的数据更新与传统的按行存储模型相比变得更加困难。因此,在新的环境下,新的文件访问模式和按列存储模型给物化视图的维护带来巨大的挑战。本发明克服了现有技术中分布式文件系统不能对文件进行更新的缺陷,提出了一种按列存储环境下分布式系统中物化视图布局与维护方法。本发明使用面向列存储模型来存储关系数据表,并且引入一致性模型对按列存储环境下分布式系统中物化视图布局进行维护。

发明内容
本发明公开了一种按列存储环境下分布式系统中物化视图布局,包括主属性集主属性的集合;
主属性的投影每个主属性在物理层次上被投影为主属性的投影,所述每个主属性的投影被划分为多个段,所述段中包含数据元组;
非主属性的投影每个非主属性在物理层次上被投影为非主属性的投影;连接索引所述主属性的投影与非主属性的投影之间的映射;标记向量在逻辑层次上表示所述数据元组存在性的位向量;所述主属性的投影通过连接索引与所述非主属性的投影映射连接;通过所述标记向量指示所述主属性的投影中数据元组是否存在于相对应的非主属性的投影中。其中,所述主属性的投影通过哈希函数被划分为多个段。其中,所述数据元组以按列存储的方式组织。其中,所述主属性与非主属性分开投影。其中,所述投影中,所述主属性集的每个主属性集单独投影成列。本发明中,物化视图是指预先计算并保存表连接或聚集等耗时较多的操作的结果,这样,在执行查询时就可以避免这些耗时的操作,从而快速的得到结果。物化视图布局是指物化视图的物理存储方式,即如何在文件系统中组织、部署数据。本发明公开了一种按列存储环境下分布式系统中物化视图布局的维护方法,包括如下步骤
步骤一通过使用视图日志记录对于物化视图进行的操作;步骤二 通过一致性模型批量处理所述视图日志中的操作。其中,所述视图日志包含向物化视图中插入元组、删除元组的基本操作。其中,所述一致性模型包括最终一致性模型和基于时间轴的一致性模型。本发明的有益效果是可以将传统数据仓库与数据源之间的一致性维护算法移植到基于分布式系统的大规模数据分析平台上,从而可以保持数据分析平台上视图与数据源之间的一致性。


图1为本发明按列存储环境下分布式系统中物化视图布局的物化视图数据布局示意图。图2为本发明按列存储环境下分布式系统中物化视图布局的数据平台和数据源的示意图。图3为本发明按列存储环境下分布式系统中物化视图布局的连接索引示意图。图4为本发明按列存储环境下分布式系统中物化视图布局的一致性模型示意图。
具体实施例方式结合以下具体实施例和附图,对本发明作进一步的详细说明,本发明的保护内容不局限于以下实施例。在不背离发明构思的精神和范围下,本领域技术人员能够想到的变化和优点都被包括在本发明中,并且以所附的权利要求书为保护范围。本发明的具体实施方式
分为两个方面,一是物化视图的存储方法,本发明将物化视图存放在分布式文件系统上,并且以按列存储方式组织数据,因此提出新颖的数据布局方法;二是基于这种存储结构的物化视图的维护方法,即视图的更新维护,并给出相应的模型。如图2所示是按列存储环境下分布式系统中数据平台和数据源的示意图,数据分析平台中的视图是基于数据源大规模分布式文件系统的。如图1所示是本发明物化视图的数据布局,实线之上是数据源,实线之下是数据平台。关系数据表R1A2,· · ,I^n位于各个数据源,而物化视图构建在基于Hadoop分布式文件系统(HDFS)上的数据分析平台。虚线之上是的物化视图(MV)的逻辑存储结构,虚线之下是它的物理存储的结构。在逻辑层次上,物化视图是一个关系表。在物理层次上,物化视图是以按列存储的方式保存在HDFS中。此外本发明还设计了两个特定的数据结构,连接索引(Join Index)和标记向量(Tag Vector)。物化视图的存储主属性集{k1; k2,…,kj是各个数据源中关系表的主属性的集合。在物理层次上,这η个主属性分别被投影至η个投影(projection),即各个主属性的值是分开存储的。包含物化视图一个主属性的投影被划分为若干个段(segment),这种划分是由某个合适的哈希函数实现的,例如使用哈希函数hash (χ)= χ mod n,不依赖于主属性的值得分布情况。这个哈希函数确保每个段所包含数据元组大致相等。再者,每段的数据是按列存储的方式组织起来,存储HDFS的每个块(block)中。如果一个块发生溢出,则另一个块将分配给该段。非主属性可以被投影成任意数量的投影,但是数据元组顺序要保持一致。因而,重构物化视图的非主属性部分是不难做到的。连接索引为了有效地从各个投影构建整个物化视图,连接索引被用作各个投影之间的映射。如图3示意了投影MV2和投影MVl之间的连接索引。通过连接索引可以重建整个物化视图。如图2的架构中,每个包含主属性的投影都有一个连接索引用作向包含非主属性投影的映射。因此,η个主属性投影就有η个对应的连接索引。标记向量标记向量是在逻辑层次上指示数据元组存在性的位向量。如果此向量的第i个元素是1,那么表明物化视图在逻辑层层次上的包含第i个数据元组。如果第i个元素是0,那么在逻辑层次上该数据元组不属于物化视图中的数据元组,即使它物理上已经存储下来了。使用该向量的原因是HDFS不支持修改文件内的记录。本发明还公开了按列存储环境下分布式系统中物化视图布局的维护方法,即数据分析平台上维护物化视图的解决方案。视图日志是用来记录对视图进行的操作,包括对物化视图进行数据元组的删除和插入,并提出两个一致性模型已供具体应用使用。每当数据源发生更新时,更新的信息将被发送到数据分析平台。更新消息到达数据平台后,strobe算法将被调用来处理更新和使得物化视图到达与数据源一致的状态。例如,当数据分析平台接收到一个删除消息时,strobe将会产生删除物化视图中相应数据元组的操作。当数据分析平台接收插入消息时,strobe向相关的数据源发送补偿查询。数据分析平台收到补偿查询的结果时将会产生一个插入动作。为了更好地说明问题,本发明给出以下两个定义
定义1 如果两个数据元组的主属性的值相等,那么这两个数据元组是冲突的。定义2 如果两个数据元组的所有属性的值相等,那么这两个数据元组是重复的。从定义来看,两个重复的数据元组必然是冲突的,而冲突的数据元组并不一定重复。视图日志就是strobe算法中的动作列表,包含删除和插入数据元组两个基本操作。Deletion (MV,ki; var)表示从视图MV中删除属性Iii的值等于var的数据元组,Insertion(MV,Τ)表示将数据元组T插入到的MV,如果MV中没有与T冲突的数据元组。算法1为从物化视图中删除数据元组的程序。如算法1所示,相应的哈希函数用于确定var属于的段。接下来,该算法扫描这个段中的每个元素,如果某个元素的值等于var,那么从连接索引中获取到(SIDykeyi)15如果标记向量中位于(SIDi, key》的值为1,那
5么意味着存在一个数据元组,它的属性&的值为var。为了删除将这个数据元组从物化视图MV中删除,一个简单的解决办法是读出该段中的所有数据元组,然后重新写入除了待删除的那个数据元组以外的所有数据元组。然而,这种做法将耗费分布式文件系统中大量的I/O开销和网络带宽。较优的解决方案则是将标签向量相应位置的值置为0。
算法 1
权利要求
1.一种按列存储环境下分布式系统中物化视图布局,其特征在于,包括主属性集主属性的集合;主属性的投影每个主属性在物理层次上被投影为主属性的投影,所述每个主属性的投影被划分为多个段,所述段中包含数据元组;非主属性的投影每个非主属性在物理层次上被投影为非主属性的投影;连接索引所述主属性的投影与非主属性的投影之间的映射;标记向量在逻辑层次上表示所述数据元组存在性的位向量;所述主属性的投影通过连接索引与所述非主属性的投影映射连接;通过所述标记向量指示所述主属性的投影中数据元组是否存在于相对应的非主属性的投影中。
2.如权利要求1所述按列存储环境下分布式系统中物化视图布局,其特征在于,所述主属性的投影通过哈希函数被划分为多个段。
3.如权利要求1所述按列存储环境下分布式系统中物化视图布局,其特征在于,所述数据元组以按列存储的方式组织。
4.如权利要求1所述按列存储环境下分布式系统中物化视图布局,其特征在于,所述主属性与非主属性分开投影。
5.如权利要求4所述按列存储环境下分布式系统中物化视图布局,其特征在于,所述投影中,所述主属性集的每个主属性集单独投影成列。
6.一种按列存储环境下分布式系统中物化视图布局的维护方法,其特征在于,包括如下步骤步骤一通过使用视图日志记录对于物化视图进行的操作;步骤二 通过一致性模型批量处理所述视图日志中的操作。
7.如权利要求6所述按列存储环境下分布式系统中物化视图布局的维护方法,其特征在于,所述视图日志包含向物化视图中插入元组、删除元组的基本操作。
8.如权利要求6所述按列存储环境下分布式系统中物化视图布局的维护方法,其特征在于,所述一致性模型包括最终一致性模型和基于时间轴的一致性模型。
全文摘要
本发明属数据库技术领域,具体提出了一种按列存储坏境下分布式系统中物化视图的布局和维护方法。本发明包括一种高可扩展的数据布局策略,和高效的维护视图一致性的方法。本发明使用面向列存储模型来存储关系数据表,并且引入一致性模型对按列存储环境下分布式系统中物化视图布局进行维护。本发明适用于按列存储的坏境的大规模分布式文件系统,为面向数据分析的应用提供数据管理的解决方案。
文档编号G06F17/30GK102567527SQ20111045272
公开日2012年7月11日 申请日期2011年12月30日 优先权日2011年12月30日
发明者周傲英, 周敏奇, 夏帆, 徐辰, 祝海通, 钱卫宁, 陈 峰 申请人:华东师范大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1