一种能够保证分布式数据库全表查询语句结果集顺序的方法和装置制造方法及图纸

技术编号:24456026 阅读:30 留言:0更新日期:2020-06-10 15:34
本发明专利技术公开了一种能够保证分布式数据库全表查询语句结果集顺序的方法和装置,属于分布式数据库查询技术领域,该方法中数据以Range为基本存储单元,网关节点根据从元数据解析的Range信息,并根据Range的StartKey的顺序生成执行计划,然后按照顺序将执行计划发送到对应节点执行,并对返回结果按照执行计划发送的顺序进行组合;所述Range为分布式数据库数据存储单元,Range中存储的数据按照表中数据行的编号进行排序。装置包括基本存储单元、网关节点以及执行模块,基本存储单元由若干条有序数据组成,存储在节点上。本发明专利技术能够实现分布式数据库管理系统下保证多次查询操作返回的结果集中的顺序一致。

A method and device to ensure the order of result set of full table query in distributed database

【技术实现步骤摘要】
一种能够保证分布式数据库全表查询语句结果集顺序的方法和装置
本专利技术涉及分布式数据库查询
,具体地说是一种能够保证分布式数据库全表查询语句结果集顺序的方法和装置。
技术介绍
查询操作是数据库核心的操作,数据库中其他的操作均或多或少的依赖于查询操作返回的结果集。分布式数据库将计算和存储分布在不同的节点上。数据被分割开来,存储在不同的数据库服务器上,随着数据量的增加服务器的数目也随之增加。分布式技术支持硬件以水平扩展的方式来获得线性增长的性能和存储,同时对硬件的性能要求也较为宽松。在分布式数据库中,每个服务器节点只存储数据的一部分,节点之间是彼此信任的,这些节点组合成一个完整的分布式数据库。在分布式数据库进行相关操作时,会将总的工作任务分解成若干个小的任务,通过分布式并行执行的方式将其完成。因此,在对一个分布式数据库进行数据查询操作时,会将一个查询操作分解为若干个执行计划,由各个节点执行具体的查询操作,从而能够得到若干个结果集,最后将这些结果集整合起来形成一个总的结果集返回给用户。通过分析上述的流程,由于网络带宽不同,各个节点性能存在差异,各个节点形成返回结果集所用的时间存在较大差异。当多次执行不加排序约束的SELECT语句时,会使得最终结果集中的数据的顺序不一致。
技术实现思路
本专利技术的技术任务是针对以上不足之处,提供一种能够保证分布式数据库全表查询语句结果集顺序的方法和装置,能够实现分布式数据库管理系统下保证多次查询操作返回的结果集中的顺序一致。本专利技术解决其技术问题所采用的技术方案是:一种能够保证分布式数据库全表查询语句结果集顺序的方法,该方法基于分布式数据库,数据以Range为基本存储单元,网关节点根据从元数据解析的Range信息,并根据Range的StartKey的顺序生成执行计划,然后按照顺序将执行计划发送到对应节点执行,并对返回结果按照执行计划发送的顺序进行组合;所述Range为分布式数据库数据存储单元,Range中存储的数据按照表中数据行的编号进行排序。由于各个Range中存储的数据已经按照表中数据行编号进行排序,所以各个节点返回的查询结果中的数据是排好的,网关节点在对返回结果进行组合的过程中,无论各个执行计划返回结果的顺序如何,只要对返回结果按照执行计划发送的顺序进行组合,就可以保证多次查询操作返回结果的顺序。该方法可以在不需要对返回结果集进行全量排序的情况下,实现结果集顺序的一致,并且不影响原有功能,排序性能高,解决在现有分布式数据库中存在的进行多次全表查询时出现的返回的结果集中数据的顺序不一致的问题。优选的,Range是分布式数据库数据存储的基本单元,在分布式数据库中,若干条有序数据组成一个Range,存储在节点上,一个节点可以存储一个或多个Range。进一步的,Range的数据结构中包含RangeID、Node信息、StartKey和EndKey,其中,RangeID用于标记自身,当一个节点中存储多个Range时,通过RangeID来进行区分;Node信息包括所在节点的地址和端口信息;StartKey是Range存储数据的起始值,EndKey是Range存储数据的结束值,存储范围的表示是左闭右开的[StartKey,EndKey)。网关节点根据从元数据解析的Range信息,所述元数据是描述其它数据的数据,描述数据的属性信息,其使用目的在于识别资源,实现简单高效地管理大量网络化数据;实现信息资源的有效发现、查找。元数据一经建立,便可共享。Range中存储的数据按照表中数据行的编号进行排序,表中数据行的编号表示为rowid,分布式数据库的表中的每一行数据都有一个唯一的标识符称为rowid,可以使用它来进行数据访问。表中每增加一条数据时,rowid便会自动加一。所述Node信息包括Range所在节点的地址和端口信息,Node即节点,分布式数据库的组成单元,通常指一台物理机或虚拟服务器。进一步的,所述网关节点为用户客户端访问的节点,分布式数据库中,各网关节点对等,两两之间能够相互通信,用户通过链接任意一个网关节点进行操作,由该节点将操作具体化,并下发给其余各个节点执行,并将返回的结果进行组合,返回给用户。优选的,该方法中生成执行计划的具体方式如下:当查询语句到达网关节点时,记该网关节点为Node1,首先从该节点中获取元数据metadata,从元数据metadata中解析出t1表中数据存储的相关Range信息,Node1根据Range信息,按照StartKey生成执行计划,并将执行计划按照顺序分发给对应的节点执行。该方案的优化之处在于:制定的执行计划是有序的,其次序与t1表的Range存储时生成的元数据中的StartKey的次序有关。每个计划负责查询特定范围的数据,取Range上[StartKey,EndKey)范围内的数据。进一步的,返回结果的具体方式如下:执行计划之后,将得到的结果集返回给Node1,Node1对结果集进行整合:当全部结果集返回时,按照执行计划下发的顺序对各个结果集进行重新排列,使其有序,将最终的结果集返回给用户。该方案的优化之处是:执行计划和返回的结果集是一一对应的,执行计划的下发顺序代表了期待的返回的结果集的顺序。当返回结果集的顺序与期待的顺序不一致时,则对其按照执行计划的顺序进行调整,以保证多次查询数据得到的数据顺序一致。为证明该方法的效果,多次执行全表查询语句,返回结果的顺序一致,在数据库中创建表t,在表t中新增带有ID的数据,如ID为1,2,3的数据,使具有不同ID的数据分布在不同的Range中,对表t执行多次“SELECT*FROMt;”统计出现的结果及出现的次数,校验返回结果集顺序一致性。本专利技术还要求保护一种能够保证分布式数据库全表查询语句结果集顺序的装置,该装置包括基本存储单元、网关节点以及执行模块,基本存储单元由若干条有序数据组成,存储在节点上;网关节点根据基本存储单元的数据顺序生成执行计划,然后按照该顺序将执行计划发送至基本存储单元对应的节点进行执行;网关节点对返回的结果按照执行计划发送的顺序进行组合,实现结果集顺序的一致。一个节点可以存储一个或多个所述的基本存储单元。进一步的,所述基本存储单元为Range,Range包含RangeID、Node信息、StartKey和EndKey,其中,RangeID用于标记自身,当一个节点中存储多个Range时,通过RangeID来进行区分;Node信息包括所在节点的地址和端口;StartKey是Range存储数据的起始值,EndKey是Range存储数据的结束值,存储范围的表示是左闭右开的[StartKey,EndKey);所述网关节点根据从元数据解析的Range信息,根据Range的StartKey的顺序生成执行计划;Range中存储的数据按照表中数据行的编号进行排序,表中每增本文档来自技高网...

【技术保护点】
1.一种能够保证分布式数据库全表查询语句结果集顺序的方法,其特征在于该方法中数据以Range为基本存储单元,网关节点根据从元数据解析的Range信息,并根据Range的StartKey的顺序生成执行计划,然后按照顺序将执行计划发送到对应节点执行,并对返回结果按照执行计划发送的顺序进行组合;/n所述Range为分布式数据库数据存储单元,Range中存储的数据按照表中数据行的编号进行排序。/n

【技术特征摘要】
1.一种能够保证分布式数据库全表查询语句结果集顺序的方法,其特征在于该方法中数据以Range为基本存储单元,网关节点根据从元数据解析的Range信息,并根据Range的StartKey的顺序生成执行计划,然后按照顺序将执行计划发送到对应节点执行,并对返回结果按照执行计划发送的顺序进行组合;
所述Range为分布式数据库数据存储单元,Range中存储的数据按照表中数据行的编号进行排序。


2.根据权利要求1所述的一种能够保证分布式数据库全表查询语句结果集顺序的方法,其特征在于若干条有序数据组成一个Range,存储在节点上,一个节点可以存储一个或多个Range。


3.根据权利要求2所述的一种能够保证分布式数据库全表查询语句结果集顺序的方法,其特征在于Range的数据结构包含RangeID、Node信息、StartKey和EndKey,其中,
RangeID用于标记自身,当一个节点中存储多个Range时,通过RangeID来进行区分;
Node信息包括所在节点的地址和端口;
StartKey是Range存储数据的起始值,EndKey是Range存储数据的结束值,存储范围的表示是左闭右开的[StartKey,EndKey)。


4.根据权利要求1所述的一种能够保证分布式数据库全表查询语句结果集顺序的方法,其特征在于所述网关节点为用户客户端访问的节点,分布式数据库中,各网关节点对等,两两之间能够相互通信,用户通过链接任意一个网关节点进行操作,由该节点将操作具体化,并下发给其余各个节点执行,并将返回的结果进行组合,返回给用户。


5.根据权利要求1或2或3或4所述的一种能够保证分布式数据库全表查询语句结果集顺序的方法,其特征在于生成执行计划的具体方式如下:
当查询语句到达网关节点时,记该网关节点为Node1,首先从该节点中获取元数据,从元数据中解析出t1表中数据存储的相关Range信息,Node1根据Range信息,按照StartKey生成执行计划,并将执行计划按照顺序分发给对应的节点执行。


6.根据权利要求5所述的一种能够保证分布式数据库全表查询语句结果集顺序的方法,其特征在于返回结果的具体方式如下:
执行计划之后,将得到...

【专利技术属性】
技术研发人员:江磊陈磊张乾坤樊文昌周恒高子奇史大义周正德
申请(专利权)人:山东汇贸电子口岸有限公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1