实时数据存储与查询方法

文档序号:8472995阅读:1013来源:国知局
实时数据存储与查询方法
【技术领域】
[0001]本发明涉及计算机技术领域,尤其涉及一种实时数据存储与查询方法。
【背景技术】
[0002]近几年来,随着计算机和信息技术的迅猛发展和普及应用,行业应用系统的规模迅速扩大,行业应用所产生的数据呈爆炸性增长。由于数据的价值与实时性成正相关,即越新的数据越具有价值,因此,如何有效的存储、分析、处理日益增加的大规模实时数据是现在研宄的一个热点。
[0003]目前,传统方法主要采用数据库和数据仓库或者基于Hadoop/Spark的分布式文件系统的方式来完成大规模实时数据的存储和读取,进而实现对实时数据的分析和处理。具体的,采用数据库和数据仓库进行存储和读取实时数据的方式,主要是通过传统数据库构建B+树或者建立位图索引完成,但是这种方法在存储实时数据时占据的数据库内存空间比较大,并且在对实时数据查询时耗费的时间比较长,难以满足大规模实时数据存储和查询的性能要求。而基于Hadoop/Spark的分布式文件系统进行数据存储的方法则是直接堆放待存储数据,并且直接将堆放形成的数据块存储到节点中去,这样存储的数据缺乏索引的支持,在数据查询时,并不能快速查到需要的结果,难以满足实时性的要求。
[0004]因此,传统数据库和数据仓库以及基于Hadoop/Spark的分布式文件系统在进行实时数据存储与查询时都存在不足,都无法满足高实时性分析处理的要求。

【发明内容】

[0005]本发明提供了一种实时数据存储与查询方法,通过对待存储数据建立一致性哈希分片索引信息和聚簇索引信息,大大提高了大数据存储和查询的实时性,满足了大数据高实时性分析处理的要求。
[0006]本发明提供的一种实时数据存储方法,包括:
[0007]通过一致性哈希分片将待存储数据划分到分布式存储系统的至少一个分布式节点中,得到与所述至少一个分布式节点分别对应的一级索引数据;其中,所述一级索引数据为被划分到所述至少一个分布式节点中的、携带有一致性哈希分片索引信息的部分待存储数据;
[0008]将与所述至少一个分布式节点分别对应的所述一级索引数据存储到数据缓冲系统中;所述数据缓存系统位于内存中;
[0009]通过对与所述至少一个分布式节点分别对应的至少两个所述一级索引数据进行归并处理,得到与所述至少一个分布式节点对应的至少一个分布式文件块;所述归并处理是指对同一分布式节点中至少两个所述一级索引数据进行归并、排序以及组装的过程;
[0010]通过对与所述至少一个分布式节点对应的至少一个分布式文件块内的、经过归并处理后的至少两个所述一级索引数据建立聚簇索引,得到与所述至少一个分布式节点分别对应的二级索引数据;其中,所述二级索引数据为与所述至少一个分布式节点分别对应的、位于所述至少一个分布式文件块内的、携带有聚簇索引信息的至少两个所述一级索引数据;
[0011]将与所述至少一个分布式节点分别对应的所述二级索引数据分别写入所述至少一个分布式节点所在的磁盘上。
[0012]本发明提供的实时数据存储方法,通过良好的一致性哈希分片对待存储数据进行划分,保证了大数据划分的均衡性,并在分布式节点动态增加和减少的情况下,仍然能够保证大数据划分的均衡性。进一步地,分别对待存储数据进行建立一致性哈希分片索引信息和聚簇索引信息,在很大程度上提高了大数据存储的实时性,为后续查询系统高效率的检索到大数据奠定了基础,满足了大数据高实时性分析处理的要求。
[0013]本发明提供的一种实时数据查询方法,包括:
[0014]通过对查询语句进行解析,得到待查询数据的查询参数;
[0015]根据所述待查询数据分片时建立的一致性哈希分片索引信息定位到所述待查询数据对应的至少两个一级索引数据所属的至少一个分布式节点所在的磁盘,以及所述至少一个分布式节点所对应的至少一个分布式文件块;其中,所述一级索引数据为被划分到所述至少一个分布式节点中的、携带有所述一致性哈希分片索引信息的部分待查询数据;
[0016]在所述至少一个分布式文件块内,根据所述至少一个分布式文件块内的至少两个所述一级索引数据存储时建立的聚簇索引信息定位到与所述至少一个分布式节点分别对应的、所述至少一个分布式文件块内的至少两个二级索引数据所处的位置;与所述至少一个分布式节点分别对应的、所述至少一个分布式文件块内的至少两个所述二级索引数据为位于所述至少一个分布式文件块内的、携带有所述聚簇索引信息的至少两个所述一级索引数据;
[0017]根据所述查询参数,对与所述至少一个分布式节点分别对应的、所述至少一个分布式文件块内的至少两个所述二级索引数据进行过滤、归并,得到待查询磁盘数据。
[0018]本发明提供的实时数据查询方法,通过待查询数据存储时建立的一致性哈希分片索引信息和在分布式文件块内建立的聚簇索引信息,能够准确、快速的定位到需要的结果,并且上述索引算法简单轻便,索引组织结构新颖高效,极大地提高了实时数据的查询性能。
【附图说明】
[0019]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0020]图1为发明提供的实时数据存储方法实施例一的流程示意图;
[0021]图2为发明提供的实时数据存储方法实施例二的流程示意图;
[0022]图3为发明分布式文件块内聚簇索引信息的结构示意图;
[0023]图4为发明提供的实时数据查询方法实施例一的流程示意图;
[0024]图5为发明提供的实时数据查询方法实施例二的流程示意图。
【具体实施方式】
[0025]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0026]随着互联网信息技术的飞速发展和普及应用,行业应用系统的规模迅速扩大,出现了无法使用传统的软件技术和工具在一定时间内完成获取、管理和处理的数据集,具备该特征的数据集统称为大数据。近年来,大数据行业应用需求日益增长,必须使用大数据并行计算技术才能实现对大数据的处理,大数据技术将逐步渗透到越来越多的研宄和应用领域。
[0027]针对【背景技术】中提到的采用数据库和数据仓库或者基于Hadoop/Spark的分布式文件系统对实时数据进行存储和查询的方法都无法满足高实时性分析处理要求的问题,本发明提供了一种实时数据存储与查询方法,克服了现有实时数据存储和查询方法的不足,能够满足大数据的实时性性能要求。
[0028]本发明提供的实时数据存储和查询方法,基于分布式存储系统实现,数据存储时,首先将待存储数据按照一致性哈希算法分片后分到分布式存储系统的至少一个分布式节点中,产生的一级索引数据存储在各个分布式节点中,随后,对每个分布式节点中的一级索引数据进行归并处理,形成对应的分布式文件块,最后,在分布式文件块内对一级索引数据建立聚簇索引,生成二级索引数据。数据查询时,根据哈希算法能够直接定位到待查询数据对应的分布式节点和分布式文件块,在分布式文件块内,根据存储时建立的聚簇索引信息可快速定位到需要的结果。
[0029]下面,首先简要介绍分布式存储系统和哈希算法的概念。
[0030]分布式存储系统是建立在网络上的软件系统,其具有高度的内聚性和透明性,也即,每一个分布式节点都高度自治,有属于自己的数据库管理系统,并且,每一个分布式节点的数据库对用户的应用来说都是透明的,因此,采用分布式存储系统能够大大的提高大数据存储和查询的能力。
[0031]由于哈希算法能够将任意长度的二进制值映射为较短的固定长度的二进制值,也即为哈希值,其是一段数据唯一且极其紧凑的数值表示形式,因此,数据的哈希值可以检验数据的完整性,一般用于数据的快速查找和加密。本发明借助于一致性哈希算法,基于分布式存储系统实现数据的存储和查询,大大提高了数据的实时性能。
[0032]图1为发明提供的实时数据存储方法实施例一的流程示意图。如图1所示,本发明提供的一种实时数据存储方法,包括:
[0033]步骤101:通过一致性哈希分片将待存储数据划分到分布式存储系统的至少一个分布式节点中,得到与所述至少一个分布式节点分别对应的一级索引数据;
[0034]具体的,对大数据进行存储,首先根据待存储数据的数据模式,采用一致性哈希分片改变待存储数据的原始分布,将经过一致性哈希分片的待存储数据分别划分到分布式存储系统的至少一个分布式节点中,在每一个分布式节点处都能够得到与之对应的一级索引数据。通常来说,良好的一致性哈希分片能够保证各个分布式节点之间分到的部分待存储数据平衡。
[0035]值得说明的是,所述一级索引数据为被划分到分布式存储系统的至少一个分布式节点处的、携带有一致性哈希分片索引信息的部分待存储数据,也即,与每个分布式节点分别对应的一级索引数据共同组成了携带有一致性哈希分片索引信息
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1