CN105512268B - 一种数据查询方法及装置 - Google Patents

一种数据查询方法及装置 Download PDF

Info

Publication number
CN105512268B
CN105512268B CN201510882085.5A CN201510882085A CN105512268B CN 105512268 B CN105512268 B CN 105512268B CN 201510882085 A CN201510882085 A CN 201510882085A CN 105512268 B CN105512268 B CN 105512268B
Authority
CN
China
Prior art keywords
section
back end
cost
partition table
mobile
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.)
Active
Application number
CN201510882085.5A
Other languages
English (en)
Other versions
CN105512268A (zh
Inventor
刘泽树
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dawning Information Industry Beijing Co Ltd
Dawning Information Industry Co Ltd
Original Assignee
Dawning Information Industry Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Dawning Information Industry Beijing Co Ltd filed Critical Dawning Information Industry Beijing Co Ltd
Priority to CN201510882085.5A priority Critical patent/CN105512268B/zh
Publication of CN105512268A publication Critical patent/CN105512268A/zh
Application granted granted Critical
Publication of CN105512268B publication Critical patent/CN105512268B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24532Query optimisation of parallel queries

Abstract

本申请提供了一种数据查询方法及装置,包括:接收数据查询请求,确定待查询的分区表;根据所述分区表的分区信息将待查询的分区表取并集,计算并集后区间的移动代价;根据所述移动代价为所述区间重新确定数据节点;在数据节点中进行数据查询。由于本申请所提供的技术方案,在接收到数据查询请求后,并不是直接在待查询的分区表中进行查询,而是根据分区表的分区信息取并集计算每个区间的移动代价,并根据移动代价为每个区间重新确定数据节点,即重新划分了区间,从而可以极大地减少数据迁移量,节约网络带宽和输入输出IO资源,提高分区表查询效率。

Description

一种数据查询方法及装置
技术领域
本申请涉及计算机存储技术领域,尤其涉及一种数据查询方法及装置。
背景技术
现有数据库大多提供了分区技术,分区表通过对分区列的判断,把分区列中不同的记录放到不同的分区中,分区表的类型包括范围(range)分区、哈希(hash)分区、列表(list)分区等,range分区表是以数据记录中列值的范围作为分区的划分条件,将数据记录存放到其列值所在的分区中。
分区表虽然支持海量数据存储,可以进行并行查询并降低节点故障的损失,但对关系查询的操作并不能很好地支持。例如:进行连接、聚集等操作时,数据涉及多个数据表,而分区表数据被切分在多个数据库中。
目前,对于多个range分区表的连接查询和聚集操作生成查询计划,常规的处理方法为,先对不同range分区表在各个节点中进行除连接之外的操作,并将结果汇总到某个节点,然后对中间结果进行连接操作。采用这种方式查询过于简单,未充分利用不同分区表存在分布重合的情况,造成数据迁移量和查询工作量较大,占用大量的网络及IO资源,查询效率较低。
现有技术不足在于:
range分区表的关系查询操作造成数据迁移量和查询工作量较大,查询效率低下。
发明内容
本申请实施例提出了一种数据查询方法及装置,以解决现有技术中range分区表的关系查询操作造成数据迁移量和查询工作量较大,查询效率低下的技术问题。
本申请实施例提供了一种数据查询方法,包括如下步骤:
接收数据查询请求,确定待查询的分区表;
根据所述分区表的分区信息将待查询的分区表取并集,计算并集后区间的移动代价;
根据所述移动代价为所述区间重新确定数据节点;
在数据节点中进行数据查询。
本申请实施例提供了一种数据查询装置,包括:
接收模块,用于接收数据查询请求,确定待查询的分区表;
计算模块,用于根据所述分区表的分区信息将待查询的分区表取并集,计算并集后区间的移动代价;
重划分模块,用于根据所述移动代价为所述区间重新确定数据节点;
查询模块,用于在数据节点中进行数据查询。
有益效果如下:
本申请实施例所提供的数据查询方法及装置,在接收到数据查询请求、确定待查询的分区表后,根据所述分区表的分区信息将待查询的分区表取并集,计算并集后区间的移动代价,根据所述移动代价为所述区间重新确定数据节点,在数据节点中进行数据查询。由于本申请实施例所提供的技术方案,在接收到数据查询请求后,并不是直接在待查询的分区表中进行查询,而是根据分区表的分区信息取并集计算每个区间的移动代价,并根据移动代价为每个区间重新确定数据节点,即重新划分了区间,从而可以极大地减少数据迁移量,节约网络带宽和输入输出IO资源,提高分区表查询效率。
附图说明
下面将参照附图描述本申请的具体实施例,其中:
图1示出了本申请实施例中数据查询方法实施的流程示意图;
图2示出了本申请实施例中状态树的结构示意图;
图3示出了本申请实施例中range分区表的重划分方法实施的流程示意图;
图4示出了本申请实施例中分区表区间示意图;
图5示出了本申请实施例中表A与表B并集状态树的结构示意图;
图6示出了本申请实施例中数据查询装置的结构示意图。
具体实施方式
为了使本申请的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。并且在不冲突的情况下,本说明中的实施例及实施例中的特征可以互相结合。
针对现有技术的不足,本申请实施例提出了一种数据查询方法及装置,下面进行说明。
图1示出了本申请实施例中数据查询方法实施的流程示意图,如图所示,所述数据查询方法可以包括如下步骤:
步骤101、接收数据查询请求,确定待查询的分区表;
步骤102、根据所述分区表的分区信息将待查询的分区表取并集,计算并集后区间的移动代价;
步骤103、根据所述移动代价为所述区间重新确定数据节点;
步骤104、在数据节点中进行数据查询。
具体实施中,用户可以输入查询条件进行数据查询,系统接收到用户发送的数据查询请求之后,可以根据数据查询请求中所要查询的数据确定待查询的分区表,涉及的待查询的分区表可能为多个,查询结果可能为多个分区表中相应数据的并集。
本申请实施例中,可以根据各个分区表的分区信息将待查询的分区表取并集,分区信息可以包括区间和区间对应的数据节点,计算取并集之后的所有区间的移动代价,根据计算出的移动代价重新确定每个区间存储的数据节点,将该区间的数据迁移至重新确定的数据节点上,最终数据查询时即可在重新分区后的数据节点中进行查询。
本申请实施例所提供的数据查询方法及装置,在接收到数据查询请求、确定待查询的分区表后,根据所述分区表的分区信息将待查询的分区表取并集,计算并集后区间的移动代价,根据所述移动代价为所述区间确定数据节点,在所述数据节点中进行数据查询。
由于本申请实施例所提供的技术方案,在接收到数据查询请求后,并不是直接在待查询的分区表中进行查询,而是根据分区表的分区信息取并集计算每个区间的移动代价,并根据移动代价为每个区间重新确定数据节点,即重新划分了数据节点上的区间,从而可以极大地减少数据迁移量,节约网络带宽和输入输出(IO,Input Output)资源,提高分区表查询效率。
实施中,所述根据所述移动代价为所述区间重新确定数据节点,具体可以为:
从并集后的区间中选出预设数量的移动代价最大的区间;
为所述预设数量的移动代价最大的区间重新确定数据节点;
将剩余的区间合并至已确定数据节点的区间。
具体实施中,根据移动代价为每个区间确定其对应的数据节点,可以首先从并集后的所有区间中选出一定数量的移动代价最大的区间,并为这些区间重新确定数据节点,然后将剩余的区间合并至这些区间中。
本申请实施例中,首先为那些移动代价最大的区间重新确定数据节点,再将剩余的区间与那些移动代价最大的区间合并,从而可以最大限度地降低数据迁移量,提高数据查询效率。
实施中,所述从并集后的区间中选出预设数量移动代价最大的区间,为所述预设数量的移动代价最大的区间确定数据节点,具体可以为:
将所述并集后的区间按照移动代价从大到小排序;
依次以待确定数据节点的区间作为节点,每个节点以所述区间在分区表中的数据节点作为分枝,构建状态树;
如果所述数据节点不可用,执行剪枝操作;
深度优先遍历(DFS,Depth-First-Search)所述状态树,确定所述预设数量的移动代价最大的区间及其数据节点。
本申请实施例中,为那些移动代价最大的区间确定数据节点时可以利用状态树的方式确定,具体实施时,可以首先以第一个被选择的区间作为根节点,以该区间在各分区表中的数据节点作为分枝,该区间有几个数据节点就可以有几个分枝;然后以第二个被选择的区间作为子节点,...以此类推,最终构建出一颗完整的状态树。
在构建状态树的过程中,如果某个区间的数据节点不可用,则将该分枝剪去,即剪枝操作。具体实施中,数据节点不可用可能是该数据节点故障、数据已满等。
本申请实施例中,从N个区间中选取M个与数据节点一一对应的区间,区间选取方法可以如下:
range分区表两侧分区包括的数据区域较广(无穷大和无穷小),可以优先为其选择单独的数据节点;
剩余区间可以根据移动代价cost进行从大到小排序;
将区间选择过程构建一颗状态树,第一个选择节点的区间可以作为树的根节点,每次选择都可以生成两个叶子节点;通过深度优先遍历(DFS)和剪枝,得到M个区间的节点的最优选择策略,使得节点间的数据迁移最小。
图2示出了本申请实施例中状态树的结构示意图,如图所示,
区间1对应节点a、d;
区间2对应节点b、d;
……
构成的状态树可以为:
区间1有两个叶子节点a、d,到区间2;
区间2有两个叶子节点b、d,到区间3;
……
区间2选择数据节点时,由于区间1已经占用数据节点d,则d节点不可用,因此,进行剪枝。
在构建完状态树之后,可以通过深度优先遍历所述状态树,确定所述状态树的叶子节点(区间)的数据节点,即,根据最深的那条路径确定该路径上的节点为选出的区间,该节点的分枝为该区间的数据节点。
实施中,所述将剩余的区间合并至已确定数据节点的区间,具体可以为:将所述剩余的区间合并至与所述区间最近且数据量最小的区间。
具体实施中,将剩余的区间合并至已确定数据节点的区间(即,移动代价最大的区间)中,可以首先选择与该剩余区间最近的区间,以提高迁移效率,进一步还可以在最近的区间中选择数据量最小的区间,由于数据节点的数据量越小IO资源越充裕,查询效率越高。
实施中,所述计算并集后区间的移动代价,具体可以为:
如果所述区间在分区表中的数据节点不一致且至少一个数据节点可用,所述区间的移动代价cost=max-min;
如果所述区间在分区表中的数据节点不可用,所述区间的移动代价cost=2*(max-min);
其中,max为所述区间的最大值,min为所述区间的最小值。
具体实施时,在计算每个区间的移动代价时,如果该区间在各个分区表中的数据节点不一致且至少一个数据节点可用,则所述区间的移动代价为所述区间的范围值,即cost=max-min;如果所述区间在分区表中的数据节点不可用,所述区间的移动代价cost=2*(max-min)。
本申请实施例中区间移动代价的计算方法可以如下:
如果所述区间的两表节点一致,假设为node1,且node1节点未被占用,则该区间数据节点不变,移动代价cost为0;
如果所述区间的两表节点不一致,假设为node1和node2,
1)如果节点node1可用,该区间重划分后所述区间对应的节点为node1,将node2中该区间移动到node1,移动代价cost=max-min;
2)如果节点node2可用,该区间重划分后所述区间对应的节点为node2,将node1中该区间移动到node2,移动代价cost=max-min;
如果所述区间对应的数据节点均不可用,该区间重划分后对应的节点为其他节点,移动代价为cost=2*(max-min)。
其中,max为区间的最大值,min为区间的最小值。
本申请实施例所提供的技术方案具有如下优点:
1、数据迁移量小
对各个分区数据量进行近似度量,生成的重划分策略使得数据迁移量最小,当数据分布较为均匀时,分区跨度可以近似代表该分区的数据量。
2、数据迁移次数少
由于节点间网络资源有限,数据迁移次数与占用的网络资源成正比,本申请实施例使用较少的数据迁移次数完成数据迁移,降低了网络资源的占用。
3、避免了数据倾斜
采用本申请实施例生成的重划分策略避免了分区表的数据倾斜,确保各节点负载均衡。
本申请实施例中重划分可以指对分区表的分区条件进行变更,重新划分数据的过程,数据倾斜可以指不同分区的数据量差距较大、数据分布不均匀。
图3示出了本申请实施例中range分区表的重划分方法实施的流程示意图,如图所示,本申请实施例中range分区表的重划分方法可以包括如下步骤:
步骤301、获取表的分区信息,统计两张表构成的区间状态,得到节点数M、区间数N;
步骤302、计算每个区间的移动代价cost;
步骤303、按照移动代价从大到小进行区间排序,从N个区间中选出M个移动代价最大的区间;
步骤304、为选出的区间指定数据节点,并重新计算移动代价,确保数据迁移量及迁移次数最少;
步骤305、将剩余区间合并到已选区间(即,将剩余区间中的数据迁移至已选区间的数据节点中),选取最近的区间中数据量较小的进行合并。
本申请实施例充分利用了不同分区表存在分布重合的情况,将各个区间重新分布到相应的数据节点中,去除了冗余数据,从而减少了数据迁移量、降低了查询工作量,提高了查询效率。
为了便于本申请的实施,下面以实例进行说明。
图4示出了本申请实施例中分区表区间示意图,如图所示,可以包括表A和表B两张表,表A可以包括5个分区并对应5个数据节点(a、b、c、d、e),表B可以包括5个分区并对应5个数据节点(d、e、c、f、a)。
统计两张表构成的区间状态,两张表的分区取并集,可以得到9个区间、6个节点{a、b、c、d、e、f},即节点数M=6、区间数N=9。
区间1(a、d节点):-∞~10;
区间2(b、d节点):10~14;
区间3(b、e节点):14~25;
区间4(c、e节点):25~28;
区间5(c、c节点):28~32;
区间6(c、f节点):32~40;
区间7(d、f节点):40~50;
区间8(e、f节点):50~55;
区间9(e、a节点):55~+∞;
计算每个区间的移动代价cost:
区间1和区间9的cost为∞;
区间2的cost为14-10=4;
区间3的cost为25-14=11;
区间4的cost为28-25=3;
区间5的cost为35-28=7;
区间6的cost为40-35=5;
区间7的cost为50-40=10;
区间8的cost为56-50=6;
可以为区间1和区间9优先选择单独的数据节点,区间1的数据节点为a、d,区间9的数据节点为a、e,那么区间1和区间9的数据节点选择可以有四种情况,即将数据节点a、d、a、e进行组合后得到ae、de、da、aa;但由于aa使得不相邻的两个区间占用同一数据节点、不符合要求,所以剩下三种情况可以选择,即ae、de、da。
1、本申请实施例首先可以以第一种情况ae进行计算。即,假设为区间1指定数据节点为a,区间9指定数据节点为e;
然后将剩余的区间按照cost从大到小排序,构建状态树。
按照cost从大到小排序为:区间3(cost=11)、区间7(cost=10)、区间5(cost=7)、区间8(cost=6)、区间6(cost=5)、区间2(cost=4)、区间4(cost=3)。
图5示出了本申请实施例中表A与表B并集状态树的结构示意图,如图所示,
区间3的两条选择为b、e,到达区间7;
区间7的两条选择为d、f,到达区间5;
区间5的两条选择为c、c,到达区间8;
区间8的两条选择为e、f,到达区间6;
区间6的两条选择为c、f,到达区间2;
其中,有部分节点由于上面的区间已将该数据节点占用,从而执行了剪枝操作。
最终,通过深度优先遍历,确定最优的路径为:区间3→b→区间7→d→区间5→c→区间8→e→区间6→f→区间2。
因此,可以确定:
区间3的数据节点为b;将数据节点e中的区间3数据迁移到数据节点b中,移动代价cost=11;
区间7的数据节点为d;将数据节点f中的区间7数据迁移到数据节点d中,移动代价cost=10;
区间5的数据节点为c;由于区间5的两表节点一致,均为数据节点c,且c未被占用,则区间5的数据节点不变,移动代价cost为0;
区间8的数据节点为e;将数据节点f中的区间8数据迁移到数据节点e中,移动代价cost=6
区间6的数据节点为f;将数据节点c中的区间6数据迁移到数据节点f中,移动代价cost=5。
2、本申请实施例还可以以第二种情况de进行计算。即,假设为区间1指定数据节点为d,区间9指定数据节点为e。
按照上述计算方式进行计算,可以得到各个区间的cost值,本申请在此不做赘述。
3、本申请实施例还可以以第三种情况da进行计算。即,假设为区间1指定数据节点为d,为区间9指定数据节点为a。
依然按照上述计算方式进行计算,可以得到各个区间的cost值,本申请在此不做赘述。
最终,将三种情况分别计算后,可以确定哪一种情况的移动代价最小,则可以选择移动代价最小的那种情况。
这里,本申请实施例假设第一种情况(ae情况,即,假设区间1指定数据节点a、区间9指定数据节点e)计算的移动代价最小,那么,接下来可以按照计算出来的结果将剩余区间进行合并,具体过程可以如下所示。
剩余区间为区间2、区间4,将这两个区间合并至上述区间中,具体合并可以为:
与区间2最近的区间为区间1和区间3,区间3的数据量(11)小于区间1的数据量(∞),因此,将区间2合并至区间3(数据节点b)中;
与区间4最近的区间为区间3和区间5,区间5的数据量(7)小于区间3的数据量(11),因此,将区间4合并至区间5(数据节点c)中;
本申请实施例中,重新分区后的数据节点对应的分区分别为:
数据节点a为-∞~10;
数据节点b为10~25;
数据节点c为25~35;
数据节点d为40~50;
数据节点e为50~+∞;
数据节点f为35~40;
最终,在重新分区后的数据节点中进行数据查询。
本申请实施例所提供的技术方案与现有技术相比,在处理数据量较大的情况下,可以极大地减少数据迁移量,尤其对于range分区差别很小(例如:表C的id为0-9、表D的id为0-10)的分区表,节约网络带宽和IO资源,提高了集群环境下分区表查询的效率。
基于同一发明构思,本申请实施例中还提供了一种数据查询装置,由于这些设备解决问题的原理与一种数据查询方法相似,因此这些设备的实施可以参见方法的实施,重复之处不再赘述。
图6示出了本申请实施例中数据查询装置的结构示意图,如图所示,所述数据查询装置可以包括:
接收模块601,用于接收数据查询请求,确定待查询的分区表;
计算模块602,用于根据所述分区表的分区信息将待查询的分区表取并集,计算并集后区间的移动代价;
重划分模块603,用于根据所述移动代价为所述区间重新确定数据节点;
查询模块604,用于在数据节点中进行数据查询。
实施中,所述重划分模块具体可以包括:
区间选择单元,用于从并集后的区间中选出预设数量移动代价最大的区间;
第一重划分单元,用于为所述预设数量的移动代价最大的区间重新确定数据节点;
第二重划分单元,用于将剩余的区间合并至已确定数据节点的区间。
实施中,所述第一重划分单元具体可以包括:
排序子单元,用于将所述并集后的区间按照移动代价从大到小排序;
状态树构建子单元,用于依次以待确定数据节点的区间作为节点,每个节点以所述区间在分区表中的数据节点作为分枝,构建状态树;
剪枝子单元,用于如果所述数据节点不可用,执行剪枝操作;
确定子单元,用于深度优先遍历DFS所述状态树,确定所述预设数量的移动代价最大的区间及其数据节点。
实施中,所述第二重划分单元具体可以用于将所述剩余的区间合并至与所述区间最近且数据量最小的区间。
实施中,所述计算模块具体可以用于如果所述区间在分区表中的数据节点不一致且至少一个数据节点可用,所述区间的移动代价cost=max-min;如果所述区间在分区表中的数据节点不可用,所述区间的移动代价cost=2*(max-min);其中,max为所述区间的最大值,min为所述区间的最小值。
上述实施例中,均可以采用现有的功能元器件模块来实施。例如,接收模块,则是任意一个具备信号传输功能的设备都具备的元器件;计算模块进行的取并集、计算移动代价等可以采用现有技术,本领域技术人员经过相应的设计开发即可实现;至于重划分模块可以采用现有的数据分区元器件,至少,现有分区技术中采用的服务器上便具备实现该功能元器件;同时,查询模块则是任意一个具备数据查询功能的设备都具备的元器件。
为了描述的方便,以上所述装置的各部分以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各模块或单元的功能在同一个或多个软件或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

Claims (6)

1.一种数据查询方法,其特征在于,包括如下步骤:
接收数据查询请求,确定待查询的分区表;
根据所述分区表的分区信息将待查询的分区表取并集,计算并集后区间的移动代价;
根据所选择的区间的移动代价为所选择的区间重新确定数据节点;
在所述重新确定的数据节点中进行数据查询;
所述计算并集后区间的移动代价,具体为:
如果所述区间在分区表中的数据节点不一致且至少一个数据节点可用,所述区间的移动代价cost=max-min;
如果所述区间在分区表中的数据节点不可用,所述区间的移动代价cost=2*(max-min);
其中,max为所述区间的最大值,min为所述区间的最小值;
所述根据所选择的区间的移动代价为所选择的区间重新确定数据节点,具体为:
从并集后的区间中选出预设数量的移动代价最大的区间;
为所述预设数量的移动代价最大的区间重新确定数据节点;
将剩余的区间合并至已确定数据节点的区间。
2.如权利要求1所述的方法,其特征在于,所述从并集后的区间中选出预设数量移动代价最大的区间,为所述预设数量的移动代价最大的区间确定数据节点,具体为:
将所述并集后的区间按照移动代价从大到小排序;
依次以待确定数据节点的区间作为节点,每个节点以所述区间在分区表中的数据节点作为分枝,构建状态树;所述待确定数据节点的区间为除移动代价为无穷大的区间以外剩余的区间;
如果所述数据节点不可用,执行剪枝操作;
深度优先遍历DFS所述状态树,确定所述预设数量的移动代价最大的区间及其数据节点。
3.如权利要求1所述的方法,其特征在于,所述将剩余的区间合并至已确定数据节点的区间,具体为:将所述剩余的区间合并至与所述区间最近且数据量最小的区间。
4.一种数据查询装置,其特征在于,包括:
接收模块,用于接收数据查询请求,确定待查询的分区表;
计算模块,用于根据所述分区表的分区信息将待查询的分区表取并集,计算并集后区间的移动代价;
重划分模块,用于根据所选择的区间的移动代价为所选择的区间重新确定数据节点;
查询模块,用于在所述重新确定的数据节点中进行数据查询;
所述重划分模块具体包括:
区间选择单元,用于从并集后的区间中选出预设数量的移动代价最大的区间;
第一重划分单元,用于为所述预设数量的移动代价最大的区间重新确定数据节点;
第二重划分单元,用于将剩余的区间合并至已确定数据节点的区间;
所述计算模块具体用于如果所述区间在分区表中的数据节点不一致且至少一个数据节点可用,所述区间的移动代价cost=max-min;如果所述区间在分区表中的数据节点不可用,所述区间的移动代价cost=2*(max-min);其中,max为所述区间的最大值,min为所述区间的最小值。
5.如权利要求4所述的装置,其特征在于,所述第一重划分单元具体包括:
排序子单元,用于将所述并集后的区间按照移动代价从大到小排序;
状态树构建子单元,用于依次以待确定数据节点的区间作为节点,每个节点以所述区间在分区表中的数据节点作为分枝,构建状态树;所述待确定数据节点的区间为除移动代价为无穷大的区间以外剩余的区间;
剪枝子单元,用于如果所述数据节点不可用,执行剪枝操作;
确定子单元,用于深度优先遍历DFS所述状态树,确定所述预设数量的移动代价最大的区间及其数据节点。
6.如权利要求5所述的装置,其特征在于,所述第二重划分单元具体用于将所述剩余的区间合并至与所述区间最近且数据量最小的区间。
CN201510882085.5A 2015-12-03 2015-12-03 一种数据查询方法及装置 Active CN105512268B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510882085.5A CN105512268B (zh) 2015-12-03 2015-12-03 一种数据查询方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510882085.5A CN105512268B (zh) 2015-12-03 2015-12-03 一种数据查询方法及装置

Publications (2)

Publication Number Publication Date
CN105512268A CN105512268A (zh) 2016-04-20
CN105512268B true CN105512268B (zh) 2019-05-10

Family

ID=55720250

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510882085.5A Active CN105512268B (zh) 2015-12-03 2015-12-03 一种数据查询方法及装置

Country Status (1)

Country Link
CN (1) CN105512268B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108959510B (zh) * 2018-06-27 2022-04-19 北京奥星贝斯科技有限公司 一种分布式数据库的分区级连接方法和装置
CN109815241B (zh) * 2019-01-31 2021-05-11 上海达梦数据库有限公司 数据查询方法、装置、设备和存储介质
CN112632116B (zh) * 2020-12-24 2022-06-24 苏州浪潮智能科技有限公司 一种k-db数据库多节点集群调度的方法、系统、设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101866358A (zh) * 2010-06-12 2010-10-20 中国科学院计算技术研究所 一种多维区间查询方法及系统
CN102831139A (zh) * 2011-03-25 2012-12-19 微软公司 用于查询计划优化以及数据并行编程模型的共同范围分区
CN103207835A (zh) * 2013-04-15 2013-07-17 东莞市公安局 一种通过自适应的Range分区存储海量数据的方法
CN103399944A (zh) * 2013-08-14 2013-11-20 曙光信息产业(北京)有限公司 数据去重查询的实现方法和实现装置
CN103412897A (zh) * 2013-07-25 2013-11-27 中国科学院软件研究所 一种基于分布式结构的并行数据处理方法
CN103544258A (zh) * 2013-10-16 2014-01-29 国家计算机网络与信息安全管理中心 一种大数据多区间查询条件下的基数估计方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9116953B2 (en) * 2013-05-17 2015-08-25 Sap Se Calculation engine with dynamic partitioning of intermediate results

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101866358A (zh) * 2010-06-12 2010-10-20 中国科学院计算技术研究所 一种多维区间查询方法及系统
CN102831139A (zh) * 2011-03-25 2012-12-19 微软公司 用于查询计划优化以及数据并行编程模型的共同范围分区
CN103207835A (zh) * 2013-04-15 2013-07-17 东莞市公安局 一种通过自适应的Range分区存储海量数据的方法
CN103412897A (zh) * 2013-07-25 2013-11-27 中国科学院软件研究所 一种基于分布式结构的并行数据处理方法
CN103399944A (zh) * 2013-08-14 2013-11-20 曙光信息产业(北京)有限公司 数据去重查询的实现方法和实现装置
CN103544258A (zh) * 2013-10-16 2014-01-29 国家计算机网络与信息安全管理中心 一种大数据多区间查询条件下的基数估计方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于关系的并行数据仓库的数据划分和操作;吕成 等;《计算机应用研究》;20060831(第08期);212-215
基于分区的部分最值查询优化算法;尹洪 等;《系统工程理论与实践》;20140630;第34卷(第S1期);203-209

Also Published As

Publication number Publication date
CN105512268A (zh) 2016-04-20

Similar Documents

Publication Publication Date Title
CN110168516B (zh) 用于大规模并行处理的动态计算节点分组方法及系统
CN104885078B (zh) 用于大规模并行处理数据库集群中的两阶段查询优化的方法
CN107710193A (zh) 分布式计算环境的数据放置控制
CN103678520B (zh) 一种基于云计算的多维区间查询方法及其系统
CN102930062B (zh) 一种数据库快速水平扩展的方法
CN109582667A (zh) 一种基于电力调控大数据的多数据库混合存储方法及系统
US20140358977A1 (en) Management of Intermediate Data Spills during the Shuffle Phase of a Map-Reduce Job
CN105677836A (zh) 一种同时支持离线数据和实时在线数据的大数据处理解决系统
CN105512268B (zh) 一种数据查询方法及装置
CN107077513B (zh) 用于数据的高效重新分区的通信
US20160253402A1 (en) Adaptive data repartitioning and adaptive data replication
CN103345514A (zh) 大数据环境下的流式数据处理方法
CN103473334A (zh) 数据存储、查询方法及系统
CN105550274A (zh) 双副本并行数据库的查询方法和装置
CN104683488A (zh) 流式计算系统及其调度方法和装置
CN105608228B (zh) 一种高效的分布式的rdf数据存储方法
CN103473325A (zh) 一种实现生成测试案例数据的系统及方法
WO2015116088A1 (en) Optimizing window joins over data streams
CN106202092A (zh) 数据处理的方法及系统
CN102779183B (zh) 数据查询的方法、设备及系统
CN107408126A (zh) 用于集群中的基于联接的查询处理的工作负载感知的数据放置
CN104731969A (zh) 分布式环境下海量数据连接聚集查询方法、装置和系统
CN106250566A (zh) 一种分布式数据库及其数据运算的管理方法
CN109815294A (zh) 一种无主节点分布并行数据存储方法和系统
CN108270621A (zh) 一种基于mas的多云服务管理技术架构及模型

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220801

Address after: 100089 building 36, courtyard 8, Dongbeiwang West Road, Haidian District, Beijing

Patentee after: Dawning Information Industry (Beijing) Co.,Ltd.

Patentee after: DAWNING INFORMATION INDUSTRY Co.,Ltd.

Address before: 100193 building 36, Zhongguancun Software Park, 8 North East West Road, Haidian District, Beijing.

Patentee before: Dawning Information Industry (Beijing) Co.,Ltd.