著录项信息
专利名称 | 一种大数据分布式存储及并行索引系统的构建方法 |
申请号 | CN201510438030.5 | 申请日期 | 2015-07-23 |
法律状态 | 驳回 | 申报国家 | 中国 |
公开/公告日 | 2015-10-28 | 公开/公告号 | CN105005621A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/30 | IPC分类号 | G;0;6;F;1;7;/;3;0查看分类表>
|
申请人 | 张真 | 申请人地址 | 江苏省南京市秦淮区永智路6号南京白下高新技术产业园区四号楼A栋9层
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 张真 | 当前权利人 | 张真 |
发明人 | 张真 |
代理机构 | 南京利丰知识产权代理事务所 | 代理人 | 任立; 艾中兰 |
摘要
本发明公开了一种大数据分布式存储及并行索引系统的构建方法,数据在建立及存储的同时,还建立有数据立方索引,所述数据立方索引中插入有B+树结构;将数据分布式入库到各个数据节点上,每个数据节点分别对该节点上的数据独立的建立索引,多个B+树结构堆叠在一起,与数据存储形成一个完整的数据立方结构;每一条新的记录只需要插入到B+树结构中;当新的记录到来时,将新的数据记录对应的一条索引记录插入到所有的字段索引中本发明所设计的大数据分布式存储及并行索引系统的构建方法,构建后的系统通过索引查询的方法,能够提高在云计算中海量数据检索的速度,降低资源浪费,节省时间,同时保障云计算系统内数据的安全。
1.一种大数据分布式存储及并行索引系统的构建方法,其特征在于,数据在建立及存储的同时,还建立有数据立方索引,所述数据立方索引中插入有B+树结构。
2.根据权利要求1所述的大数据分布式存储及并行索引系统的构建方法,其特征在于,将数据分布式入库到各个数据节点上,每个数据节点分别对该节点上的数据独立的建立索引,具体方法为:
对数据设定1个或多个关键字字段,针对各个关键字字段分别建立索引,每张索引分别生成一张独立的B+树结构,各个关键字字段的索引被分布式存储在不同的数据节点上,查询索引的过程是一个同步的查询过程,每一台数据节点的机器都去查找各自索引的内容,检索出相关源文件记录后再过滤汇总,形成完整的结果;
多个B+树结构堆叠在一起,与数据存储形成一个完整的数据立方结构。
3.根据权利要求2所述的大数据分布式存储及并行索引系统的构建方法,其特征在于,每一条新的记录只需要插入到B+树结构中;
当B+树结构的插入仅在叶节点上进行,为各个数据节点中的子树棵树设定上限值,每插入一个索引项后都要判断数据节点中的子树棵数是否超出范围,当大于上限值时,需要将叶节点分裂为两个,它们的双亲节点中同时包含这两个节点的最大关键码和节点地址;
在非叶结点插入时,为非叶节点中的子树棵数设定上限值,当大于上限值时,进行节点分裂,在做根节点分裂时,创建新的双亲结点,作为树的新根。
4.根据权利要求3所述的大数据分布式存储及并行索引系统的构建方法,其特征在于,当新的记录到来时,将新的数据记录对应的一条索引记录插入到所有的字段索引中。
一种大数据分布式存储及并行索引系统的构建方法\n技术领域\n[0001] 本发明涉及分布式大数据的云计算领域,特别是一种大数据分布式存储及并行索引系统的构建方法。\n背景技术\n[0002] 当今社会中,信息数据呈爆炸化的增长,而爆炸化的数据增长导致了数据存储困难、检索复杂和可靠性降低等多重问题,云计算和云存储技术的出现,为海量数据的处理与存储提供了有效的解决途径。\n[0003] 现有技术中,通常的云计算解决方案利用Hadoop(一种分布式系统基础架构)的HDFS(一种分布式文件系统)虽然能够方便的实现海量数据存储,同时有效防止单点故障,避免不必要的损失,但是,在HDFS上进行数据检索时,常用的方法是开启全局搜索MapReduce(大规模数据并行运算),这需要完整过滤一遍HDFS上存储的所有数据;\n[0004] 然而在云计算中,尤其是在海量数据情况下,该方案会对系统资源造成巨大的浪费,耗费大量的时间,其工作效率也因此大大降低,这显然不是一个适合投入现实生产环境的方式,同时也是本发明所要针对解决的重要问题。\n发明内容\n[0005] 本发明所要解决的技术问题是,克服现有技术的缺点,提供一种大数据分布式存储及并行索引系统的构建方法,构建后的系统通过索引查询的方法,能够提高在云计算中海量数据检索的速度,降低资源浪费,节省时间,同时保障云计算系统内数据的安全。\n[0006] 为了解决以上技术问题,本发明提供一种大数据分布式存储及并行索引系统的构建方法,数据在建立及存储的同时,还建立有数据立方索引,所述数据立方索引中插入有B+树结构。\n[0007] 本发明进一步限定的技术方案是:\n[0008] 进一步的,前述的大数据分布式存储及并行索引系统的构建方法,将数据分布式入库到各个数据节点上,每个数据节点分别对该节点上的数据独立的建立索引,具体方法为:\n[0009] 对数据设定1个或多个关键字字段,针对各个关键字字段分别建立索引,每张索引分别生成一张独立的B+树结构,各个关键字字段的索引被分布式存储在不同的数据节点上,查询索引的过程是一个同步的查询过程,每一台数据节点的机器都去查找各自索引的内容,检索出相关源文件记录后再过滤汇总,形成完整的结果;\n[0010] 多个B+树结构堆叠在一起,与数据存储形成一个完整的数据立方结构;\n[0011] 对B+树的查找类似于二分查找,对于m阶,叶子节点中记录个数为n的B+树来说,其查找的时间复杂度为0(logm+(n+1)/2);因此对于值匹配和范围查找来说,其速度大大的加快,此外,由于对值按照大小顺序进行了指针链接,因此m阶B+树还能够对值进行顺序查找。\n[0012] 前述的大数据分布式存储及并行索引系统的构建方法,每一条新的记录只需要插入到B+树结构中;\n[0013] 当B+树结构的插入仅在叶节点上进行,为各个数据节点中的子树棵树设定上限值,每插入一个索引项后都要判断数据节点中的子树棵数是否超出范围,当大于上限值时,需要将叶节点分裂为两个,它们的双亲节点中同时包含这两个节点的最大关键码和节点地址;\n[0014] 在非叶结点插入时,为非叶节点中的子树棵数设定上限值,当大于上限值时,进行节点分裂,在做根节点分裂时,创建新的双亲结点,作为树的新根;\n[0015] 当新的记录积累到若干条(可根据需要任意设定)或经过一定时间(可根据需要任意设定)时,对于存储在MemCache(分布式缓存服务器)中的字段索引,能够将这些数据记录对应的索引记录一次性批量写入;当新的记录积累到若干条(可根据需要人已设定)或经过一定时间(可根据需要任意设定)时,能够将这些数据记录对应的索引记录一次性批量写入HDFS(固态磁盘)上的索引文件;\n[0016] 对重要字段建立索引,存储在HDFS(固态磁盘)上。将最近常用的字段索引加载到MemCache(高性能的分布式的内存对象缓存系统)中,同时删除最不常用的字段索引以节省空间;对于每次查询,系统统计每个字段索引被调用的次数,对于被调用次数最多的那些字段索引就被加载到MemCache中,而在MemCache中被调用次数最少的某些字段将被删除。\n[0017] 前述的大数据分布式存储及并行索引系统的构建方法,当新的记录到来时,将新的数据记录对应的一条索引记录插入到所有的字段索引中。\n附图说明\n[0018] 图1为本发明所设计的数据立方存储索引结构的原理图;\n[0019] 图2为本发明中单一关键字字段基于B+树的索引结构示意图。\n具体实施方式\n[0020] 本实施例提供的一种大数据分布式存储及并行索引系统的构建方法,如图1所示,数据立方存储索引结构由全局数据表1、索引面2组成,全局数据表1中,x轴方向表示不同的关键字字段3,y轴方向表示不同的数据记录4,数据记录与关键字字段组合组成了不同数据记录及其关键字字段内容的对应关系,不同关键字字段构成不同的索引面,每一张索引面分别某一字段基于B+树的索引表。\n[0021] 如图2所示,索引表按如下方式建立索引建立时对数据中重要字段建立索引,以B+树的结构生成,每一条新的记录只需要插入到B+树中,B+树的插入仅在叶结点上进行;\n每插入一个(关键码-指针)索引项后都要判断结点中的子树棵数是否超出范围;当插入后结点中的子树棵数大于m时,需要将叶结点分裂为两个结点,它们的双亲结点中应同时包含这两个结点的最大关键码和结点地址,在非叶结点中关键码的插入和叶结点的插入类似,非叶结点中的子树棵数的上限为m,超出这个范围也要进行结点分裂;在做根结点分裂时,因为没有双亲结点,就必须创建新的双亲结点,作为树的新根,这样树的高度就增加一层了。\n[0022] 当有新的记录到来时,我们要将新的数据记录对应的一条索引记录插入到所有的字段索引中,这时要采取一定的写入策略:\n[0023] 当新的记录积累到n1条或经过一定时间t1时,对于存储在MemCache中的字段索引,能够将这些数据记录对应的索引记录一次性批量写入;当新的记录积累到n2条或经过一定时间t2时,能够将这些数据记录对应的索引记录一次性批量写入HDFS(固态磁盘)上的索引文件。\n[0024] 对B+树的查找类似于二分查找,对于m阶,叶子节点中记录个数为n的B+树来说,其查找的时间复杂度为0(logm+(n+1)/2);因此对于值匹配和范围查找来说,有很快的速度;此外,由于对值按照大小顺序进行了指针链接,因此m阶B+树还能够对值进行顺序查找。\n[0025] 将最近常用的字段索引加载到MemCache(高性能的分布式的内存对象缓存系统)中,同时删除最不常用的字段索引以节省空间。对于每次查询,系统统计每个字段索引被调用的次数,对于被调用次数最多的那些字段索引就被加载到MemCache中,而在MemCache中被调用次数最少的某些字段将被删除。\n[0026] 我们选取了下面几组实验数据对本实施例的优势进行展示:\n[0027] 广州移动测试:\n[0028] 【1】云创存储测试成果:\n[0029] 云创存储采用的自主研发的Datacube平台,以下为系统查询测试:\n[0030] \n[0031] \n[0032] 【2】华为测试成果:\n[0033] 华为采用的是Greenplum的平台,以下为平台查询测试:\n[0034] \n记录数(条) 号码 给出响应 处理时间\n1万 1585102**** 10s内 5.132s\n10万 1586203**** 20s内 13.375s\n100万 1398562**** 30s内 27.907s\n1000万 1381547**** 60s内 59.671s\n1亿 1377009**** 5min内 3min47s\n10亿 1586917**** 超过5min ------------\n[0035] 【3】中兴测试成果:\n[0036] 中兴采用的是hbase的平台,以下为平台查询测试:\n[0037] \n记录数(条) 号码 给出响应 处理时间\n1万 1585102**** 10s内 8.316s\n10万 1586203**** 30s内 21.701s\n100万 1398562**** 60s内 49.013s\n1000万 1381547**** 5mins内 4min29s\n1亿 1377009**** 超过5min ------------\n10亿 1586917**** 超过5min ------------\n[0038] 【4】中创测试成果:\n[0039] 中创采用的是hbase的平台,以下为平台查询测试:\n[0040] \n记录数(条) 号码 给出响应 处理时间\n1万 1585102**** 30s内 27.015\n10万 1586203**** 5mins内 1min37s\n100万 1398562**** 超过5min ------------\n1000万 1381547**** 超过10min ------------\n1亿 1377009**** 无法响应 ------------\n10亿 1586917**** 无法响应 ------------\n[0041] 数据入库性能:\n[0042] \n[0043] 以上实施例仅为说明本发明的技术思想,具体实现该技术方案的方法和途径很多,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还能够做出若干改进和润饰,这些改进和润饰也应该视为本发明的保护范围;本实施例中未明确的各组成内容和功能均可用现有技术加以实现。
法律信息
- 2019-08-02
发明专利申请公布后的驳回
IPC(主分类): G06F 17/30
专利申请号: 201510438030.5
申请公布日: 2015.10.28
- 2015-11-25
实质审查的生效
IPC(主分类): G06F 17/30
专利申请号: 201510438030.5
申请日: 2015.07.23
- 2015-10-28
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2012-06-20
|
2011-11-17
| | |
2
| |
2007-10-24
|
2006-04-21
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |