专利名称:一种带有数据立方存储索引结构的云计算系统的制作方法
技术领域:
本发明涉及电子信息技术领域,尤其涉及一种带有数据立方存储索引结构的云计算系统。
背景技术:
爆炸化的数据增长导致了数据存储困难、检索复杂和可靠性降低等多重问题。云计算和云存储技术的出现,为海量数据的处理与存储提供了有效的解决途径。在通常的云计算解决方案中,通过Hadoop (—种分布式系统基础架构)的HDFS (— 种分布式文件系统)可以方便的实现海量数据存储,同时有效防止单点故障,避免不必要的损失。但是,在HDFS上进行数据检索时,常用的方法是开启全局搜索MapReduce(大规模数据并行运算),这需要完整过滤一遍HDFS上存储的所有数据。在云计算中,尤其是在海量数据情况下,这样做会对系统资源造成巨大的浪费,耗费大量的时间,这显然不是一个适合投入现实生产环境的方式。
发明内容
发明目的本发明的目的在于克服现有技术的不足,提供一种带有数据立方存储索引结构的云计算系统,通过索引查询的方式,提高在云计算中海量数据检索速度,降低资源浪费,节省时间,同时保障云计算系统内数据的安全。对此本发明提供了一种带有数据立方存储索引结构的云计算系统,本系统在数据存储时对数据的各个关键字建立索引,通过检索对应关键字索引,快速定位到要读取和查找的源数据文件,进行数据过滤。在本发明中,每个字段的索引被分布式存储在不同的数据节点上,查询索引的过程是一个同步的查询过程,每一台数据节点的机器都去查找各自索引的内容,检索出相关源文件记录后再过滤汇总,形成完整的结果。本发明提供了一种带有数据立方存储索引结构的云计算系统,本系统采用完全分布式索引,分布式入库到各个不同的数据节点上,每个数据节点分别对该节点上的数据独立的建立索引。每个集群节点单独建立索引,在云中存在多个索引的备份,根据文件的冗余备份方式,不同的文件可能被分别指向了不同的节点索引。本发明提供的一种带有数据立方存储索引结构的云计算系统,在数据建立及存储时,对规范化的数据设定1个或多个关键字字段,将不同的关键字字段分别建立索引,每张不同的索引生成一张独立的B+树结构,多个B+树结构垛叠在一起,与数据存储形成一个完整的数据立方结构。本发明提供的一种带有数据立方存储索引结构的云计算系统,数据在建立及存储同时建立由插入B+树构成的数据立方索引。本发明提供的一种带有数据立方存储索引结构的云计算系统,由插入B+树构成的数据立方索引是分布式方法建立的,多节点多机器同步并行处理。
本发明提供的一种带有数据立方存储索引结构的云计算系统,数据设定的关键字字段可以为1个或多个,针对每一个关键字字段分别建立索引,每个索引的增加也同时增加数据立方的厚度。本发明提供的一种带有数据立方存储索引结构的云计算系统,索引以B+树的结构生成,每一条新的记录只需要插入到B+树中。本发明提供的一种带有数据立方存储索引结构的云计算系统,B+树的插入仅在叶结点上进行。每插入一个索引项后都要判断结点中的子树棵数是否超出范围。当插入后结点中的子树棵数大于某一值时,该数值可根据需要设定为任意数值,需要将叶结点分裂为两个结点。它们的双亲结点中应同时包含这两个结点的最大关键码和结点地址。本发明提供的一种带有数据立方存储索引结构的云计算系统,在非叶结点插入时,与叶结点的插入类似,非叶结点中的子树棵数的上限为一个范围,此范围可根据需要设定为任意数值,超出这个范围也要进行结点分裂。在做根结点分裂时,创建新的双亲结点, 作为树的新根。本发明提供的一种带有数据立方存储索引结构的云计算系统,当有新的记录到来时,将新的数据记录对应的一条索引记录插入到所有的字段索引中,采取一定的写入策略。本发明提供的一种带有数据立方存储索引结构的云计算系统,所述的写入策略如下当新的记录积累到若干条(可根据需要任意设定)或经过一定时间(可根据需要任意设定)时,对于存储在MemCache (分布式缓存服务器)中的字段索引,可以将这些数据记录对应的索引记录一次性批量写入;当新的记录积累到若干条(可根据需要人已设定)或经过一定时间(可根据需要任意设定)时,可以将这些数据记录对应的索引记录一次性批量写入HDFS (固态磁盘)上的索引文件。本发明提供的一种带有数据立方存储索引结构的云计算系统,对B+树的查找类似于二分查找,对于m阶,叶子节点中记录个数为η的B+树来说,其查找的时间复杂度为 0(log m+(n+l)/2)。因此对于值匹配和范围查找来说,有很快的速度。此外,由于对值按照大小顺序进行了指针链接,因此m阶B+树还可以进行对值进行顺序查找。本发明提供的一种带有数据立方存储索引结构的云计算系统,对重要字段建立索弓I,存储在HDFS(固态磁盘)上。将最近常用的字段索引加载到MemCache(高性能的分布式的内存对象缓存系统)中,同时删除最不常用的字段索引以节省空间。对于每次查询,系统统计每个字段索引被调用的次数,对于被调用次数最多的那些字段索引就被加载到MemCache 中,而在MemCache中被调用次数最少的某些字段将被删除。
图1为数据立方存储索引结构图。图2为某一关键字字段基于B+树的索引结构图。
具体实施例方式下面结合附图对本发明的实施方式作出说明
本发明的一种带有数据立方存储索引结构的云计算系统,图1为数据立方存储索引结构,由全局数据表1、索引面2组成,全局数据表1中,X轴方向表示不同的关键字字段3,y轴方向表示不同的数据记录4,数据记录与关键字字段组合组成了不同数据记录及其关键字字段内容的对应关系,不同关键字字段构成不同的索引面,每一张索引面分别是某一字段基于B+树的索引表。本发明的一种带有数据立方存储索引结构的云计算系统,所述的索引表按如下方式建立
如图2所示B+树索引表索引建立时对数据中重要字段建立索引,以B+树的结构生成,每一条新的记录只需要插入到B+树中。B+树的插入仅在叶结点上进行。每插入一个 (关键码-指针)索引项后都要判断结点中的子树棵数是否超出范围。当插入后结点中的子树棵数大于m时,需要将叶结点分裂为两个结点。它们的双亲结点中应同时包含这两个结点的最大关键码和结点地址。在非叶结点中关键码的插入与叶结点的插入类似,非叶结点中的子树棵数的上限为m,超出这个范围也要进行结点分裂。在做根结点分裂时,因为没有双亲结点,就必须创建新的双亲结点,作为树的新根。这样树的高度就增加一层了。当有新的记录到来时,我们要将新的数据记录对应的一条索引记录插入到所有的字段索引中,这时要采取一定的写入策略当新的记录积累到nl条或经过一定时间tl时, 对于存储在MemCache中的字段索引,可以将这些数据记录对应的索引记录一次性批量写入;当新的记录积累到n2条或经过一定时间t2时,可以将这些数据记录对应的索引记录一次性批量写入HDFS (固态磁盘)上的索引文件。对B+树的查找类似于二分查找,对于m阶,叶子节点中记录个数为η的B+树来说, 其查找的时间复杂度为0(log m+(n+l)/2)。因此对于值匹配和范围查找来说,有很快的速度。此外,由于对值按照大小顺序进行了指针链接,因此m阶B+树还可以进行对值进行顺序查找。另外,本发明的一种带有数据立方存储索引结构的云计算系统将最近常用的字段索引加载到MemCache (高性能的分布式的内存对象缓存系统)中,同时删除最不常用的字段索引以节省空间。对于每次查询,系统统计每个字段索引被调用的次数,对于被调用次数最多的那些字段索引就被加载到MemCache中,而在MemCache中被调用次数最少的某些字段将被删除。本发明提供了一种带有数据立方存储索引的云计算系构建的思路及方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成内容和功能均可用现有技术加以实现。
权利要求
1.一种带有数据立方存储索引结构的云计算系统,其特征在于,由一个或多个管理节点,一个或多个计算及存储节点(数据节点)组成,系统在数据建立与查询时,分布式建立与应用数据立方索引结构(1)。
2.根据权利要求1所述的一种带有数据立方存储索引结构的云计算系统,其特征在于数据索引结构(1)采用数据立方结构。
3.根据权利要求2所述的数据立方存储索引结构,其特征在于在数据建立及存储时, 对规范化的数据设定1个或多个关键字字段(3),将不同的关键字字段分别建立索引,每张不同的索引(2)生成一张独立的B+树结构,多个B+树结构垛叠在一起,与全局数据表形成一个完整的数据立方结构。
4.根据权利要求2所述的数据立方存储索引结构,其特征在于数据在建立及存储同时建立由插入B+树构成的数据立方索引。
5.根据权利要求2所述的数据立方存储索引结构,其特征在于由插入B+树构成的数据立方索引是分布式方法建立的,多节点多机器同步并行处理。
6.根据权利要求2所述的数据立方存储索引结构,其特征在于数据设定的关键字字段(3)可以为1个或多个,针对每一个关键字字段分别建立索引(2),每个索引(2)的增加也同时增加数据立方的厚度。
7.根据权利要求2所述的数据立方存储索引结构,其特征在于索引以B+树的结构生成,每一条新的记录只需要插入到B+树中。
8.根据权利要求2所述的数据立方存储索引结构,其特征在于B+树的插入仅在叶结点上进行,每插入一个索引项后都要判断结点中的子树棵数是否超出范围,当插入后结点中的子树棵数大于某一值时,该数值可根据需要设定为任意数值,将叶结点分裂为两个结点,它们的双亲结点中同时包含这两个结点的最大关键码和结点地址。
9.根据权利要求2所述的数据立方存储索引结构,其特征在于在非叶结点插入时,与叶结点的插入类似,非叶结点中的子树棵数的上限为一个范围,此范围可根据需要设定为任意数值,超出这个范围也要进行结点分裂,在做根结点分裂时,创建新的双亲结点,作为树的新根。
10.根据权利要求2所述的数据立方存储索引结构,其特征在于所述的叶节点特征是数据关键词内容包含于双亲节点范围内。
11.根据权利要求2所述的数据立方存储索引结构,其特征在于当有新的记录到来时,将新的数据记录对应的一条索引记录插入到所有的字段索引中,采取一定的写入策略。
12.根据权利要求11所述的新记录写入策略,其特征在于当新的记录积累到若干条 (可根据需要任意设定)或经过一定时间(可根据需要任意设定)时,对于存储在MemCache(分布式缓存服务器)中的字段索引,可以将这些数据记录对应的索引记录一次性批量写入;当新的记录积累到若干条(可根据需要人已设定)或经过一定时间(可根据需要任意设定)时, 可以将这些数据记录对应的索引记录一次性批量写入HDFS (固态磁盘)上的索引文件。
13.根据权利要求2所述的数据立方存储索引结构,其特征在于对B+树的查找类似于二分查找,B+树还可以进行对值进行顺序查找。
14.根据权利要求2所述的数据立方存储索引结构,其特征在于对重要字段建立索弓丨,存储在HDFS(固态磁盘)上,将最近常用的字段索引加载到MemCache(高性能的分布式的内存对象缓存系统)中,同时删除最不常用的字段索引以节省空间,对于每次查询,系统统计每个字段索引被调用的次数,对于被调用次数最多的那些字段索引就被加载到MemCache 中,而在MemCache中被调用次数最少的某些字段将被删除。
15.根据权利要求1所述的一种带有数据立方存储索引结构的云计算系统,其特征在于系统在数据存储时对数据的各个关键字分布式建立索引,通过检索对应关键字索引,快速定位到要读取和查找的源数据文件,进行数据过滤。
16.根据权利要求1所述的一种带有数据立方存储索引结构的云计算系统,其特征在于每个字段的索引被分布式存储在不同的数据节点上,查询的索引的过程是一个同步的查询过程,每一台数据节点的机器都去查找各自索引的内容,检索出相关源文件记录后再过滤汇总,形成完整的结果。
17.根据权利要求1所述的一种带有数据立方存储索引结构的云计算系统,其特征在于本系统采用完全分布式索引,分布式入库到各个不同的数据节点上,每个数据节点分别对该节点上的数据独立的建立索引,每个集群节点单独建立索引,在云中存在多个索引的备份,根据文件的冗余备份方式,不同的文件可能被分别指向了不同的节点索引。
全文摘要
本发明公开了一种带有数据立方存储索引结构的云计算系统,本系统由一个或多个管理节点,一个或多个计算及存储节点(数据节点)组成,系统在数据建立与查询时,分布式建立与应用数据立方索引结构,在数据建立及存储时,对规范化的数据设定1个或多个关键字字段,将不同的关键字字段分别建立索引,每张不同的索引生成一张独立的B+树结构,多个B+树结构垛叠在一起,与全局数据表形成一个完整的数据立方结构。利用数据立方存储索引结构,可方便快捷的在海量数据云计算系统中准确检索定位数据。
文档编号G06F17/30GK102508913SQ201110364429
公开日2012年6月20日 申请日期2011年11月17日 优先权日2011年11月17日
发明者张真 申请人:张真