实时数据存储与查询方法_3

文档序号:8472995阅读:来源:国知局
个分布式节点分别对应的、位于至少一个分布式文件块内的、携带有聚簇索引信息的至少两个所述一级索引数据。图3为发明分布式文件块内聚簇索引信息的结构示意图。如图3所示,所述聚簇索引信息中的每项由索引字段起始值和在分布式文件块中的偏移量构成,聚簇索引信息中的每项对应所述至少一个分布式文件块中的一段内容。
[0066]可选的,聚簇索引信息的项数是可配置的,通常聚簇索引信息的项数不需要太多,因为数据在磁盘上是按磁盘块(页)存储,读取时通常也是以磁盘块(页)为单位读取,索引项对应数据段的大小略小于磁盘块的大小即可,上述一致性哈希分片索引信息和聚簇索弓I信息保存在系统表中,系统表存储在内存中。
[0067]更进一步地,本发明上述实施例一和实施例二提供的实时数据存储方法,在分布式存储系统的至少一个分布式节点中,上述对待存储数据进行一致性哈希分片得到与至少一个分布式节点分别对应的一级索引数据、对与至少一个分布式节点分别对应的至少一个分布式文件块内的、经过归并处理后的至少两个一级索引数据建立聚簇索引得到与所述至少一个分布式节点分别对应的至少两个二级索引数据的处理过程,并行执行;
[0068]在分布式存储系统的同一个分布式节点中,上述对待存储数据进行一致性哈希分片得到与该分布式节点分别对应的一级索引数据、对与至少一个分布式节点分别对应的至少一个分布式文件块内的、经过归并处理后的至少两个一级索引数据建立聚簇索引得到与该分布式节点分别对应的、至少一个分布式文件块内的至少两个二级索引数据的处理过程,按顺序执行。
[0069]本发明实施例提供的实时数据存储方法,将待存储数据均匀的划分到分布式存储系统的至少一个分布式节点中,并且在每个分布式节点处进行的对待存储数据进行一致性哈希分片得到一级索引数据、对所述一级索引数据进行归并处理得到相应分布式文件块,以及在该分布式文件块内对一级索引数据建立聚簇索引得到二级索引数据的处理过程,上述至少一个分布式节点中进行的上述处理过程,同时并行执行,上述同一个分布式节点中的进行的上述处理过程,按照顺序依次执行。
[0070]本发明采用的上述处理方案,最大可能地提高了数据导入的吞吐量,提高了数据的导入速度,突破了性能瓶颈。
[0071]下面介绍的实时数据查询方法,介绍的是如何将存储在磁盘或分布式存储系统内存中的数据读取出来。本发明提出的实时数据查询方法,根据数据存储时建立的一致性哈希分片索引信息和聚簇索引信息,能够快速的定位到对应的分布式节点和分布式文件块,满足了大数据的实时性要求。
[0072]图4为发明提供的实时数据查询方法实施例一的流程示意图。如图4所述,本发明提供的一种实时数据查询方法,包括:
[0073]步骤401:通过对查询语句进行解析,得到待查询数据的查询参数;
[0074]查询引擎首先根据用户的实际需要,解析查询语句,得到符合待查询数据要求的查询参数。
[0075]步骤402:根据待查询数据分片时建立的一致性哈希分片索引信息定位到该待查询数据对应的至少两个一级索引数据所属的至少一个分布式节点所在的磁盘,以及上述至少一个分布式节点所对应的至少一个分布式文件块;
[0076]其中,上述一级索引数据为被划分到上述至少一个分布式节点中的、携带有一致性哈希分片索引信息的部分待查询数据。
[0077]具体的,通过待查询数据存储时建立的一致性哈希分片索引信息可快速的定位到一级索引数据所属的至少一个分布式节点所在的磁盘,并且通过记录的该一致性哈希分片索引信息可快速定位到所述至少一个分布式节点以及相应的至少一个分布式文件块。
[0078]步骤403:在上述至少一个分布式文件块内,根据所述至少一个分布式文件块内的至少两个所述一级索引数据存储时建立的聚簇索引信息定位到与上述至少一个分布式节点分别对应的、所述至少一个分布式文件块内的至少两个二级索引数据所处的位置;
[0079]其中,所述二级索引数据为与上述至少一个分布式节点分别对应的、所述至少一个分布式文件块内的、携带有聚簇索引信息的至少两个一级索引数据。由于分布式文件块内的一级索引数据是按照聚簇索引存放的,因此,通过聚簇索引信息便可在分布式文件块内实现快速查询二级索引数据。
[0080]步骤404:根据上述查询参数,对上述查询到的、与至少一个分布式节点分别对应的、至少一个分布式文件块内的至少两个二级索引数据进行过滤、归并,得到待查询磁盘数据。
[0081]本发明实施例提供的实时数据查询方法,首先通过一致性哈希分片查找到具体的至少一个分布式节点以及至少一个数据桶队列,再通过具体的查询参数定位到至少一个分布式文件块,这样将系统查询响应时间提高了 20毫秒到100毫秒。另一方面,保证了数据缓冲系统中的零散数据不会被写入磁盘,不但保证了数据的实时性要求,而且提高了数据的导入速度和查询性能。
[0082]本发明实施例提供的实时数据查询方法,通过对待查询数据存储时建立的一致性哈希分片索引信息和在分布式文件块内建立的聚簇索引信息,能够准确、快速的定位到需要的结果。本发明采用的上述索引算法简单轻便,索引组织结构新颖高效,极大地提高了实时数据的查询性能。
[0083]图5为发明提供的实时数据查询方法实施例二的流程示意图。本发明实时数据查询方法实施例二是对上述实施例一的补充,如图5所示,当数据的实时性要求大于数据内存最小时间戳时,上述实施例一提供的实时数据查询方法,还包括:
[0084]步骤501:在数据缓冲系统中,根据待查询数据分片时建立的一致性哈希分片索引信息定位到与上述部分待查询数据分别对应的至少两个一级索引数据所在的至少一个数据桶;
[0085]其中,上述至少一个数据桶分别用于存储与所述部分待查询数据分别对应的至少两个一级索引数据。
[0086]由于一个数据桶对应于一个分布式文件块,因此,根据待查询数据存储时建立的一致性哈希分片索引信息可以快速、准确的定位到与分片后的部分待查询数据分别对应的至少两个一级索引数据所在的至少一个数据桶。
[0087]步骤502:根据上述查询参数,对上述至少一个数据桶中的至少两个所述一级索引数据进行过滤、归并,得到待查询缓存数据;
[0088]具体的,该查询参数是在实施例三中经过解析查询语句得到的,根据所述查询参数,对上述至少一个数据桶中的至少两个一级索引数据进行过滤查找,就可以得到仍然存储于数据缓存系统中的待查询数据,统称为待查询缓存数据。
[0089]步骤503:将所述待查询磁盘数据与所述待查询缓存数据进行合并,得到所述待查询数据。
[0090]最后,将实施例三中的待查询磁盘数据和本实施例中的待查询缓存数据进行合并处理,得到的待查询数据就是需要查询的结果。
[0091]本发明实施例提供的实时数据查询方法,由于数据的实时性要求大于数据内存最小时间戳,这说明用户要求的数据实时性强,该数据在存储时,只有部分数据存储到了磁盘上,仍有一部分数据还存储在数据缓存系统中,因此,本发明为了突出实时性,查询系统也将查询参数提交到数据缓存系统中,根据查询参数,在分布式节点和数据缓存系统中进行同步查找,并将同步查找到的结果进行合并,即是要查询的结果。
[0092]进一步地,本发明上述实施例提供的实时数据查询方法,存储在至少一个分布式文件块内的二级索引数据是携带有聚簇索引信息的至少两个一级索引数据,所述聚簇索引信息中的每项由索引字段起始值和在所述分布式文件块中的偏移量构成,所述聚簇索引信息中的每项对应所述至少一个分布式文件块中的一段内容。
[0093]可选的,聚簇索引信息的项数是可配置的,通常聚簇索引信息的项数不需要太多,因为数据在磁盘上是按磁盘块(页)存储,读取时通常也是以磁盘块为单位读取,索引项对应数据段的大小略小于磁盘块大小即可。值得说明的是,上述一致性哈希分片索引信息和聚簇索引信息保存在系统表中,系统表存储在内存中。
[0094]更进一步地,本发明实施例一和实施例二提供的实时数据查询方法,在分布式存储系统的至少一个分布式节点中,上述根据一致性哈希分片索引信息定位与待查询数据分别对应的至少两个一级索引数据所属的至少一个分布式节点所在的磁盘、根据上述聚簇索引信息定位与上述至少一个分布式节点分别对应的、至少一个分布式文件块内的至少两个二级索引数据所处位置的处理过程,并行执行;
[0095]在分布式存储系统的同一个分布式节点中,上述根据一致性哈希分片索引信息定位与待查询数据分别对应的至少两个一级索引数据所属的该分布式节点所在的磁盘、根据聚簇索引信息定位与该分布式节点分别对应的、所述至少一个分布式文件块内的至少两个二级索引数据所处位置的处理过程,按顺序执行。
[0096]本发明实施例提供的实时数据查询方法,定位待查询数据所在的磁盘、待查询数据所属的至少一个分布式节点、待查询数据所在的至少一个分布式文件块,以及在所述分布式文件块内定位待查询数据所处位置,在分布式存储系统的不同分布式节点之间进行的上述处理过程,同时并行执行,而在同一个分布式节点中进行的上述处理过程,按照顺序依次执行。
[0097]本发明采用的上述处理方案,最大可能地提高了数据导入的吞吐量,提高了数据的导入速度,突破了性能瓶颈。
[0098]值得说明的是,本发明提供的实时数据存储和查询方法,为了保证数据查询时的正确性和完整性,待存储数据在
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1