CN105005621A - 一种大数据分布式存储及并行索引系统的构建方法 - Google Patents
一种大数据分布式存储及并行索引系统的构建方法 Download PDFInfo
- Publication number
- CN105005621A CN105005621A CN201510438030.5A CN201510438030A CN105005621A CN 105005621 A CN105005621 A CN 105005621A CN 201510438030 A CN201510438030 A CN 201510438030A CN 105005621 A CN105005621 A CN 105005621A
- Authority
- CN
- China
- Prior art keywords
- data
- index
- node
- record
- tree
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种大数据分布式存储及并行索引系统的构建方法,数据在建立及存储的同时,还建立有数据立方索引,所述数据立方索引中插入有B+树结构;将数据分布式入库到各个数据节点上,每个数据节点分别对该节点上的数据独立的建立索引,多个B+树结构堆叠在一起,与数据存储形成一个完整的数据立方结构;每一条新的记录只需要插入到B+树结构中;当新的记录到来时,将新的数据记录对应的一条索引记录插入到所有的字段索引中本发明所设计的大数据分布式存储及并行索引系统的构建方法,构建后的系统通过索引查询的方法,能够提高在云计算中海量数据检索的速度,降低资源浪费,节省时间,同时保障云计算系统内数据的安全。
Description
技术领域
本发明涉及分布式大数据的云计算领域,特别是一种大数据分布式存储及并行索引系统的构建方法。
背景技术
当今社会中,信息数据呈爆炸化的增长,而爆炸化的数据增长导致了数据存储困难、检索复杂和可靠性降低等多重问题,云计算和云存储技术的出现,为海量数据的处理与存储提供了有效的解决途径。
现有技术中,通常的云计算解决方案利用Hadoop(一种分布式系统基础架构)的HDFS(一种分布式文件系统)虽然能够方便的实现海量数据存储,同时有效防止单点故障,避免不必要的损失,但是,在HDFS上进行数据检索时,常用的方法是开启全局搜索MapReduce(大规模数据并行运算),这需要完整过滤一遍HDFS上存储的所有数据;
然而在云计算中,尤其是在海量数据情况下,该方案会对系统资源造成巨大的浪费,耗费大量的时间,其工作效率也因此大大降低,这显然不是一个适合投入现实生产环境的方式,同时也是本发明所要针对解决的重要问题。
发明内容
本发明所要解决的技术问题是,克服现有技术的缺点,提供一种大数据分布式存储及并行索引系统的构建方法,构建后的系统通过索引查询的方法,能够提高在云计算中海量数据检索的速度,降低资源浪费,节省时间,同时保障云计算系统内数据的安全。
为了解决以上技术问题,本发明提供一种大数据分布式存储及并行索引系统的构建方法,数据在建立及存储的同时,还建立有数据立方索引,所述数据立方索引中插入有B+树结构。
本发明进一步限定的技术方案是:
进一步的,前述的大数据分布式存储及并行索引系统的构建方法,将数据分布式入库到各个数据节点上,每个数据节点分别对该节点上的数据独立的建立索引,具体方法为:
对数据设定1个或多个关键字字段,针对各个关键字字段分别建立索引,每张索引分别生成一张独立的B+树结构,各个关键字字段的索引被分布式存储在不同的数据节点上,查询索引的过程是一个同步的查询过程,每一台数据节点的机器都去查找各自索引的内容,检索出相关源文件记录后再过滤汇总,形成完整的结果;
多个B+树结构堆叠在一起,与数据存储形成一个完整的数据立方结构;
对B+树的查找类似于二分查找,对于m阶,叶子节点中记录个数为n的B+树来说,其查找的时间复杂度为0(logm+(n+1)/2);因此对于值匹配和范围查找来说,其速度大大的加快,此外,由于对值按照大小顺序进行了指针链接,因此m阶B+树还能够对值进行顺序查找。
前述的大数据分布式存储及并行索引系统的构建方法,每一条新的记录只需要插入到B+树结构中;
当B+树结构的插入仅在叶节点上进行,为各个数据节点中的子树棵树设定上限值,每插入一个索引项后都要判断数据节点中的子树棵数是否超出范围,当大于上限值时,需要将叶节点分裂为两个,它们的双亲节点中同时包含这两个节点的最大关键码和节点地址;
在非叶结点插入时,为非叶节点中的子树棵数设定上限值,当大于上限值时,进行节点分裂,在做根节点分裂时,创建新的双亲结点,作为树的新根;
当新的记录积累到若干条(可根据需要任意设定)或经过一定时间(可根据需要任意设定)时,对于存储在MemCache(分布式缓存服务器)中的字段索引,能够将这些数据记录对应的索引记录一次性批量写入;当新的记录积累到若干条(可根据需要人已设定)或经过一定时间(可根据需要任意设定)时,能够将这些数据记录对应的索引记录一次性批量写入HDFS(固态磁盘)上的索引文件;
对重要字段建立索引,存储在HDFS(固态磁盘)上。将最近常用的字段索引加载到MemCache(高性能的分布式的内存对象缓存系统)中,同时删除最不常用的字段索引以节省空间;对于每次查询,系统统计每个字段索引被调用的次数,对于被调用次数最多的那些字段索引就被加载到MemCache中,而在MemCache中被调用次数最少的某些字段将被删除。
前述的大数据分布式存储及并行索引系统的构建方法,当新的记录到来时,将新的数据记录对应的一条索引记录插入到所有的字段索引中。
附图说明
图1为本发明所设计的数据立方存储索引结构的原理图;
图2为本发明中单一关键字字段基于B+树的索引结构示意图。
具体实施方式
本实施例提供的一种大数据分布式存储及并行索引系统的构建方法,如图1所示,数据立方存储索引结构由全局数据表1、索引面2组成,全局数据表1中,x轴方向表示不同的关键字字段3,y轴方向表示不同的数据记录4,数据记录与关键字字段组合组成了不同数据记录及其关键字字段内容的对应关系,不同关键字字段构成不同的索引面,每一张索引面分别某一字段基于B+树的索引表。
如图2所示,索引表按如下方式建立索引建立时对数据中重要字段建立索引,以B+树的结构生成,每一条新的记录只需要插入到B+树中,B+树的插入仅在叶结点上进行;每插入一个(关键码-指针)索引项后都要判断结点中的子树棵数是否超出范围;当插入后结点中的子树棵数大于m时,需要将叶结点分裂为两个结点,它们的双亲结点中应同时包含这两个结点的最大关键码和结点地址,在非叶结点中关键码的插入和叶结点的插入类似,非叶结点中的子树棵数的上限为m,超出这个范围也要进行结点分裂;在做根结点分裂时,因为没有双亲结点,就必须创建新的双亲结点,作为树的新根,这样树的高度就增加一层了。
当有新的记录到来时,我们要将新的数据记录对应的一条索引记录插入到所有的字段索引中,这时要采取一定的写入策略:
当新的记录积累到n1条或经过一定时间t1时,对于存储在MemCache中的字段索引,能够将这些数据记录对应的索引记录一次性批量写入;当新的记录积累到n2条或经过一定时间t2时,能够将这些数据记录对应的索引记录一次性批量写入HDFS(固态磁盘)上的索引文件。
对B+树的查找类似于二分查找,对于m阶,叶子节点中记录个数为n的B+树来说,其查找的时间复杂度为0(logm+(n+1)/2);因此对于值匹配和范围查找来说,有很快的速度;此外,由于对值按照大小顺序进行了指针链接,因此m阶B+树还能够对值进行顺序查找。
将最近常用的字段索引加载到MemCache(高性能的分布式的内存对象缓存系统)中,同时删除最不常用的字段索引以节省空间。对于每次查询,系统统计每个字段索引被调用的次数,对于被调用次数最多的那些字段索引就被加载到MemCache中,而在MemCache中被调用次数最少的某些字段将被删除。
我们选取了下面几组实验数据对本实施例的优势进行展示:
广州移动测试:
【1】云创存储测试成果:
云创存储采用的自主研发的Datacube平台,以下为系统查询测试:
【2】华为测试成果:
华为采用的是Greenplum的平台,以下为平台查询测试:
记录数(条) | 号码 | 给出响应 | 处理时间 |
1万 | 1585102**** | 10s内 | 5.132s |
10万 | 1586203**** | 20s内 | 13.375s |
100万 | 1398562**** | 30s内 | 27.907s |
1000万 | 1381547**** | 60s内 | 59.671s |
1亿 | 1377009**** | 5min内 | 3min47s |
10亿 | 1586917**** | 超过5min | ------------ |
【3】中兴测试成果:
中兴采用的是hbase的平台,以下为平台查询测试:
记录数(条) | 号码 | 给出响应 | 处理时间 |
1万 | 1585102**** | 10s内 | 8.316s |
10万 | 1586203**** | 30s内 | 21.701s |
100万 | 1398562**** | 60s内 | 49.013s |
1000万 | 1381547**** | 5mins内 | 4min29s |
1亿 | 1377009**** | 超过5min | ------------ |
10亿 | 1586917**** | 超过5min | ------------ |
【4】中创测试成果:
中创采用的是hbase的平台,以下为平台查询测试:
记录数(条) | 号码 | 给出响应 | 处理时间 |
1万 | 1585102**** | 30s内 | 27.015 |
10万 | 1586203**** | 5mins内 | 1min37s |
100万 | 1398562**** | 超过5min | ------------ |
1000万 | 1381547**** | 超过10min | ------------ |
1亿 | 1377009**** | 无法响应 | ------------ |
10亿 | 1586917**** | 无法响应 | ------------ |
数据入库性能:
以上实施例仅为说明本发明的技术思想,具体实现该技术方案的方法和途径很多,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还能够做出若干改进和润饰,这些改进和润饰也应该视为本发明的保护范围;本实施例中未明确的各组成内容和功能均可用现有技术加以实现。
Claims (4)
1.一种大数据分布式存储及并行索引系统的构建方法,其特征在于,数据在建立及存储的同时,还建立有数据立方索引,所述数据立方索引中插入有B+树结构。
2.根据权利要求1所述的大数据分布式存储及并行索引系统的构建方法,其特征在于,将数据分布式入库到各个数据节点上,每个数据节点分别对该节点上的数据独立的建立索引,具体方法为:
对数据设定1个或多个关键字字段,针对各个关键字字段分别建立索引,每张索引分别生成一张独立的B+树结构,各个关键字字段的索引被分布式存储在不同的数据节点上,查询索引的过程是一个同步的查询过程,每一台数据节点的机器都去查找各自索引的内容,检索出相关源文件记录后再过滤汇总,形成完整的结果;
多个B+树结构堆叠在一起,与数据存储形成一个完整的数据立方结构。
3.根据权利要求2所述的大数据分布式存储及并行索引系统的构建方法,其特征在于,每一条新的记录只需要插入到B+树结构中;
当B+树结构的插入仅在叶节点上进行,为各个数据节点中的子树棵树设定上限值,每插入一个索引项后都要判断数据节点中的子树棵数是否超出范围,当大于上限值时,需要将叶节点分裂为两个,它们的双亲节点中同时包含这两个节点的最大关键码和节点地址;
在非叶结点插入时,为非叶节点中的子树棵数设定上限值,当大于上限值时,进行节点分裂,在做根节点分裂时,创建新的双亲结点,作为树的新根。
4.根据权利要求3所述的大数据分布式存储及并行索引系统的构建方法,其特征在于,当新的记录到来时,将新的数据记录对应的一条索引记录插入到所有的字段索引中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510438030.5A CN105005621A (zh) | 2015-07-23 | 2015-07-23 | 一种大数据分布式存储及并行索引系统的构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510438030.5A CN105005621A (zh) | 2015-07-23 | 2015-07-23 | 一种大数据分布式存储及并行索引系统的构建方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105005621A true CN105005621A (zh) | 2015-10-28 |
Family
ID=54378297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510438030.5A Pending CN105005621A (zh) | 2015-07-23 | 2015-07-23 | 一种大数据分布式存储及并行索引系统的构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105005621A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109815225A (zh) * | 2018-12-11 | 2019-05-28 | 中国科学院计算技术研究所 | 基于前缀树结构的并行化前缀数据检索方法和系统 |
CN111352860A (zh) * | 2019-12-26 | 2020-06-30 | 天津中科曙光存储科技有限公司 | 一种Linux Bcache中的垃圾回收方法及系统 |
CN111581205A (zh) * | 2019-03-15 | 2020-08-25 | 北京忆芯科技有限公司 | 具有节点索引的b+树操作装置及其方法 |
CN112231400A (zh) * | 2020-09-27 | 2021-01-15 | 北京金山云网络技术有限公司 | 分布式数据库的访问方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101060402A (zh) * | 2006-04-21 | 2007-10-24 | 盛趣信息技术(上海)有限公司 | 基于Hash-map的多点缓存装置 |
CN102508913A (zh) * | 2011-11-17 | 2012-06-20 | 张真 | 一种带有数据立方存储索引结构的云计算系统 |
US20130097170A1 (en) * | 2011-10-18 | 2013-04-18 | Ubiterra Corporation | Apparatus, system and method for the efficient storage and retrieval of 3-dimensionally organized data in cloud-based computing architectures |
-
2015
- 2015-07-23 CN CN201510438030.5A patent/CN105005621A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101060402A (zh) * | 2006-04-21 | 2007-10-24 | 盛趣信息技术(上海)有限公司 | 基于Hash-map的多点缓存装置 |
US20130097170A1 (en) * | 2011-10-18 | 2013-04-18 | Ubiterra Corporation | Apparatus, system and method for the efficient storage and retrieval of 3-dimensionally organized data in cloud-based computing architectures |
CN102508913A (zh) * | 2011-11-17 | 2012-06-20 | 张真 | 一种带有数据立方存储索引结构的云计算系统 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109815225A (zh) * | 2018-12-11 | 2019-05-28 | 中国科学院计算技术研究所 | 基于前缀树结构的并行化前缀数据检索方法和系统 |
CN111581205A (zh) * | 2019-03-15 | 2020-08-25 | 北京忆芯科技有限公司 | 具有节点索引的b+树操作装置及其方法 |
CN111581205B (zh) * | 2019-03-15 | 2021-06-08 | 北京忆芯科技有限公司 | 具有节点索引的b+树操作装置及其方法 |
CN113157706A (zh) * | 2019-03-15 | 2021-07-23 | 北京忆芯科技有限公司 | 具有节点索引的b+树操作装置及其方法 |
CN111352860A (zh) * | 2019-12-26 | 2020-06-30 | 天津中科曙光存储科技有限公司 | 一种Linux Bcache中的垃圾回收方法及系统 |
CN111352860B (zh) * | 2019-12-26 | 2022-05-13 | 天津中科曙光存储科技有限公司 | 一种Linux Bcache中的垃圾回收方法及系统 |
CN112231400A (zh) * | 2020-09-27 | 2021-01-15 | 北京金山云网络技术有限公司 | 分布式数据库的访问方法、装置、设备及存储介质 |
CN112231400B (zh) * | 2020-09-27 | 2024-07-23 | 北京金山云网络技术有限公司 | 分布式数据库的访问方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105117417B (zh) | 一种读优化的内存数据库Trie树索引方法 | |
CN102508913A (zh) | 一种带有数据立方存储索引结构的云计算系统 | |
CN104679778B (zh) | 一种搜索结果的生成方法及装置 | |
CN109683811B (zh) | 一种混合内存键值对存储系统的请求处理方法 | |
CN102163218B (zh) | 基于图索引的图数据库关键词邻近搜索方法 | |
CN110674154B (zh) | 一种基于Spark的对Hive中数据进行插入、更新和删除的方法 | |
CN102521405B (zh) | 支持高速加载的海量结构化数据存储、查询方法和系统 | |
Mai et al. | Cloud databases for internet-of-things data | |
CN105138661A (zh) | 一种基于Hadoop的网络安全日志k-means聚类分析系统及方法 | |
Nyati et al. | Performance evaluation of unstructured NoSQL data over distributed framework | |
CN103678491A (zh) | 一种基于Hadoop中小文件优化和倒排索引的方法 | |
CN105005621A (zh) | 一种大数据分布式存储及并行索引系统的构建方法 | |
CN109582677B (zh) | 基于孩子节点的多粒度分布式读写锁的r树索引优化方法 | |
CN103399945A (zh) | 一种基于云计算数据库系统的数据结构 | |
CN104063384A (zh) | 一种数据检索方法及装置 | |
CN106599091B (zh) | 基于键值存储的rdf图结构存储和索引方法 | |
CN103440246A (zh) | 用于MapReduce的中间结果数据排序方法及系统 | |
CN109582678B (zh) | 基于叶子节点的多粒度分布式读写锁的r树索引优化方法 | |
Challa et al. | DD-Rtree: A dynamic distributed data structure for efficient data distribution among cluster nodes for spatial data mining algorithms | |
CN104268158A (zh) | 一种结构化数据分布式索引及检索方法 | |
Iyer et al. | A scalable distributed spatial index for the internet-of-things | |
CN114372097B (zh) | 一种数据集列序列化的高效连接比对实现方法及装置 | |
Wu et al. | Cloud-based connected component algorithm | |
CN104699815A (zh) | 数据处理方法和系统 | |
CN107506394A (zh) | 一种消除大数据规范关系连接冗余的优化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151028 |