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

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

Info

Publication number
CN103488778A
CN103488778A CN201310459279.5A CN201310459279A CN103488778A CN 103488778 A CN103488778 A CN 103488778A CN 201310459279 A CN201310459279 A CN 201310459279A CN 103488778 A CN103488778 A CN 103488778A
Authority
CN
China
Prior art keywords
node
hashed value
slicing files
data
tables
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.)
Granted
Application number
CN201310459279.5A
Other languages
English (en)
Other versions
CN103488778B (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201310459279.5A priority Critical patent/CN103488778B/zh
Priority claimed from CN201310459279.5A external-priority patent/CN103488778B/zh
Publication of CN103488778A publication Critical patent/CN103488778A/zh
Application granted granted Critical
Publication of CN103488778B publication Critical patent/CN103488778B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/2455Query execution

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)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种数据查询方法及装置,包括:接收数据查询请求;确定需要进行散列拆分的两个数据表;将数据表的信息发送给各个从节点;接收从节点发送的散列值和表分片文件的对应关系;对散列值进行分段得到散列值段,确定各个散列值段对应的从节点;根据散列值和表分片文件的对应关系,控制各个从节点进行表分片文件迁移;接收各个从节点发送的各个散列值对应的连接结果,并根据连接结果确定所述数据查询请求的结果。本发明能够在MPP分布式数据库系统使用左外连接或右外连接实现数据查询处理时,得到正确的左外连接或右外连接结果,进而得到正确的数据查询结果。

Description

一种数据查询方法及装置
技术领域
本发明涉及存储技术,尤其涉及一种数据查询方法及装置。
背景技术
目前,一般使用数据库进行数据的存储。当用户通过客户端进行数据查询时,客户端将用户输入的查询关键字发送至数据库,数据库根据所述查询关键字进行数据查询,将查询结果反馈给客户端,再由客户端将查询结果显示给用户。
在目前通常使用的单机版数据库中,数据查询时经常使用左外连接、右外连接等处理方法,进而以所述左外连接、右外连接等的处理结果为基础,确定数据查询的结果。其中,左外连接和右外连接的处理对象是两个表,分别称为左表和右表,通过左外连接或右外连接可以确定两个表之间的连接关系。其中,左外连接的结果集包含:与右表某一行满足连接条件的左表中的所有行,与右表任意一行都不满足连接条件的左表中的所有行。对于左表中不满足连接条件的所有行,用空值填充来自右表的属性。而右外连接的概念与左外连接相对称,右外连接的结果集包含:与左表某一行满足连接条件的右表中的所有行,与左表任意一行都不满足连接条件的右表中的所有行。对于右表中不满足连接条件的行,用空值填充来自左表的属性。
单机版数据库中对左表和右表进行左外连接的传统方法是:根据连接属性对左表和右表的所有数据进行散列拆分,然后,每个散列值对应的左表数据与右表数据分别进行左外连接,最后把各个散列值的左外连接的结果合并到一起。
所谓散列(Hash)是指,把任意范围的输入通过某个函数变换成固定范围的输出,或者,把任意长度的输入通过某个函数变换成固定长度的输出。所述输出就是散列值,所述函数就是散列函数。散列是一种压缩映射,散列值的空间通常远小于输入的空间,不同的输入经过散列可能得到相同的输出。换句话说,散列值相同是输入相同的必要非充分条件。散列拆分是指把散列值不同的输入分开,把散列值相同的输入汇总到一起。
但是,随着数据库技术的不断发展,基于大规模并行处理(MPP,Massive parallelprocessing)和无共享(shared-nothing)架构的MPP分布式数据库越来越广泛地应用于海量数据的存储和查询。MPP分布式数据库相比于单机版数据库,通过在多个节点上并行执行数据导入、数据查询等数据库任务,提高了数据库的性能和可用性。
在使用上述MPP分布式数据库进行数据查询时,一般由主节点把单个数据查询任务拆分成可以在多个从节点上并发执行的多个小数据查询任务,然后把所有小数据查询任务的查询结果汇总得到最终的查询结果。
然而,如果MPP分布式数据库的数据查询中需要使用上述左外连接或右外连接,例如需要使用左外连接,那么,在数据库接收到用户的数据查询请求时,主节点将所述数据查询请求拆分成多个包括左外连接的小数据查询任务,各个从节点分别根据所述小数据查询任务进行左外连接,然后主节点将各个从节点的左外连接结果合并将无法得到正确的左外连接结果,进而也无法得到正确的数据查询结果。
发明内容
本发明实施例中提供了一种数据查询方法及装置,能够在MPP分布式数据库系统使用左外连接或右外连接实现数据查询处理时,得到正确的左外连接或右外连接结果,进而得到正确的数据查询结果。
第一方面,提供一种数据查询方法,包括:
接收数据查询请求;
根据所述数据查询请求确定需要进行散列拆分的两个数据表;
将所述数据表的信息发送给各个从节点;
接收各个从节点发送的散列值和表分片文件的对应关系,所述散列值和表分片文件的对应关系是由所述从节点对所述数据表的信息所指示的数据表进行散列拆分得到的;
对所述散列值进行分段得到散列值段,确定各个散列值段对应的从节点;
根据所述散列值和表分片文件的对应关系,控制各个从节点进行表分片文件迁移,使得各个散列值段对应的表分片文件迁移至所述各个散列值段对应的从节点中,以便各个从节点将所述两个数据表中一个数据表的表分片文件按照散列值进行合并、按照散列值对合并后的表分片文件和所述两个数据表中另一个数据表的表分片文件进行第一外连接得到各个散列值对应的连接结果;
接收各个从节点发送的各个散列值对应的连接结果,并根据所述连接结果确定所述数据查询请求的结果。
结合第一方面,在第一方面第一种可能的实现方式中,还包括:
根据所述数据查询请求确定作为散列拆分依据和第一外连接依据的表字段;
将所述表字段的信息发送给各个从节点。
结合第一方面,和/或第一方面第一种可能的实现方式,在第一方面第二种可能的实现方式中,根据所述连接结果确定所述数据查询请求的结果包括:
将各个散列值对应的连接结果合并,得到第一外连接结果;
根据所述第一外连接结果确定数据查询请求的结果。
结合第一方面,和/或第一方面第一种可能的实现方式,和/或第一方面第二种可能的实现方式,在第一方面第三种可能的实现方式中,控制各个从节点进行表分片文件迁移包括:
向各个从节点发送第一迁移命令,所述第一迁移命令中包括:从节点对应的散列值段中各个散列值所对应的表分片文件以及表分片文件所在从节点的信息;所述第一迁移命令用于指示从节点从所述表分片文件所在从节点获取所述表分片文件。
结合第一方面,和/或第一方面第一种可能的实现方式,和/或第一方面第二种可能的实现方式,在第一方面第四种可能的实现方式中,控制各个从节点进行表分片文件迁移包括:
向各个从节点发送第二迁移命令,所述第二迁移命令中包括:各个散列值段对应的从节点的信息;所述第二迁移命令用于指示从节点将从节点本地表分片文件发送至表分片文件对应的从节点;所述表分片文件对应的从节点是表分片文件对应的散列值所在散列值段对应的从节点。
第二方面,提供一种数据查询方法,包括:
接收主节点发送的两个数据表的信息;
对所述从节点本地的所述信息指示的两个数据表分别进行散列拆分,得到散列值对应的表分片文件;
将散列值和表分片文件的对应关系发送至主节点;
在所述主节点控制下进行表分片文件迁移,使得各个散列值段对应的表分片文件迁移至所述各个散列值段对应的从节点中;所述散列值段由主节点对散列值分段得到,各个散列值段对应的从节点由主节点确定;所述控制由所述主节点根据散列值和表分片文件的对应关系进行;
将所述两个数据表中一个数据表的表分片文件按照散列值进行合并,得到散列值对应的表分片合并文件;
按照散列值对所述表分片合并文件和所述两个数据表中另一个数据表的表分片文件进行第一外连接,得到各个散列值对应的连接结果;
将散列值对应的连接结果发送给主节点,以便主节点根据所述连接结果确定数据查询请求的结果。
结合第二方面,在第二方面第一种可能的实现方式中,还包括:
接收主节点发送的作为散列拆分依据和第一外连接依据的表字段的信息。
结合第二方面,和/或第二方面第一种可能的实现方式,在第二方面第二种可能的实现方式中,在所述主节点控制下进行表分片文件迁移包括:
接收所述主节点发送的第一迁移命令,所述第一迁移命令中包括:从节点对应的散列值段中各个散列值所对应的表分片文件以及表分片文件所在从节点的信息;
从所述表分片文件所在从节点获取所述表分片文件。
结合第二方面,和/或第二方面第一种可能的实现方式,在第二方面第三种可能的实现方式中,在所述主节点控制下进行表分片文件迁移包括:
接收所述主节点发送的第二迁移命令,所述第二迁移命令中包括:各个散列值段对应的从节点的信息;
根据所述散列值段对应的从节点的信息,将从节点本地表分片文件发送至表分片文件对应的从节点;所述表分片文件对应的从节点是表分片文件对应的散列值所在散列值段对应的从节点。
第三方面,提供一种数据查询装置,包括:
第一接收单元,用于接收数据查询请求;
第一确定单元,用于根据所述第一接收单元接收的所述数据查询请求确定需要进行散列拆分的两个数据表;
第一发送单元,用于将第一确定单元确定的所述数据表的信息发送给各个从节点;
所述第一接收单元还用于:接收各个从节点发送的散列值和表分片文件的对应关系,所述散列值和表分片文件的对应关系是由所述从节点对所述数据表的信息所指示的数据表进行散列拆分得到的;
分段单元,用于对所述第一接收单元接收到的所述散列值进行分段得到散列值段,确定各个散列值段对应的从节点;
控制单元,用于根据第一接收单元接收到的所述散列值和表分片文件的对应关系,控制各个从节点进行表分片文件迁移,使得各个散列值段对应的表分片文件迁移至所述各个散列值段对应的从节点中,以便各个从节点将所述两个数据表中一个数据表的表分片文件按照散列值进行合并、按照散列值对合并后的表分片文件和所述两个数据表中另一个数据表的表分片文件进行第一外连接得到各个散列值对应的连接结果;
所述第一接收单元还用于:接收各个从节点发送的各个散列值对应的连接结果;
查询单元,用于根据所述第一接收单元接收到的所述连接结果确定所述数据查询请求的结果。
结合第三方面,在第三方面第一种可能的实现方式中,所述第一确定单元还用于:根据所述第一接收单元接收的所述数据查询请求确定作为散列拆分依据和第一外连接依据的表字段;
所述第一发送单元还用于:将所述第一确定单元确定的所述表字段的信息发送给各个从节点。
结合第三方面,和/或第三方面第一种可能的实现方式,在第三方面第二种可能的实现方式中,查询单元具体用于:将各个散列值对应的连接结果合并,得到第一外连接结果;根据所述第一外连接结果确定数据查询请求的结果。
结合第三方面,和/或第三方面第一种可能的实现方式,和/或第三方面第二种可能的实现方式,在第三方面第三种可能的实现方式中,所述控制单元具体用于:
向各个从节点发送第一迁移命令,所述第一迁移命令中包括:从节点对应的散列值段中各个散列值所对应的表分片文件以及表分片文件所在从节点的信息;所述第一迁移命令用于指示从节点从所述表分片文件所在从节点获取所述表分片文件。
结合第三方面,和/或第三方面第一种可能的实现方式,和/或第三方面第二种可能的实现方式,在第三方面第四种可能的实现方式中,所述控制单元具体用于:
向各个从节点发送第二迁移命令,所述第二迁移命令中包括:各个散列值段对应的从节点的信息;所述第二迁移命令用于指示从节点将从节点本地表分片文件发送至表分片文件对应的从节点;所述表分片文件对应的从节点是表分片文件对应的散列值所在散列值段对应的从节点。
第四方面,提供一种数据查询装置,包括:
第二接收单元,用于接收主节点发送的两个数据表的信息;
拆分单元,用于对从节点本地的所述第二接收单元接收到的所述信息指示的两个数据表分别进行散列拆分,得到散列值对应的表分片文件;
第二发送单元,用于将拆分单元得到的散列值和表分片文件的对应关系发送至主节点;
被控单元,用于在所述主节点控制下进行表分片文件迁移,使得各个散列值段对应的表分片文件迁移至所述各个散列值段对应的从节点中;所述散列值段由主节点对散列值分段得到,各个散列值段对应的从节点由主节点确定;所述控制由所述主节点根据散列值和表分片文件的对应关系进行;
第二合并单元,用于将所述被控单元迁移后的所述两个数据表中一个数据表的表分片文件按照散列值进行合并,得到散列值对应的表分片合并文件;
连接单元,用于按照散列值对第二合并单元得到的所述表分片合并文件和所述两个数据表中另一个数据表的表分片文件进行第一外连接,得到各个散列值对应的连接结果;
所述第二发送单元还用于:将所述连接单元得到的散列值对应的连接结果发送给主节点,以便主节点根据所述连接结果确定数据查询请求的结果。
结合第四方面,在第四方面第一种可能的实现方式中,所述第二接收单元还用于:接收主节点发送的作为散列拆分依据和第一外连接依据的表字段的信息。
结合第四方面,和/或第四方面第一种可能的实现方式,在第四方面第二种可能的实现方式中,所述被控单元具体用于:
接收所述主节点发送的第一迁移命令,所述第一迁移命令中包括:从节点对应的散列值段中各个散列值所对应的表分片文件以及表分片文件所在从节点的信息;
从所述表分片文件所在从节点获取所述表分片文件。
结合第四方面,和/或第四方面第一种可能的实现方式,在第四方面第三种可能的实现方式中,所述被控单元具体用于:
接收所述主节点发送的第二迁移命令,所述第二迁移命令中包括:各个散列值段对应的从节点的信息;
根据所述散列值段对应的从节点的信息,将从节点本地表分片文件发送至表分片文件对应的从节点;所述表分片文件对应的从节点是表分片文件对应的散列值所在散列值段对应的从节点。
本实施例中,接收数据查询请求;根据所述数据查询请求确定需要进行散列拆分的两个数据表;将所述数据表的信息发送给各个从节点;接收各个从节点发送的散列值和表分片文件的对应关系,所述散列值和表分片文件的对应关系是由所述从节点对所述数据表的信息所指示的数据表进行散列拆分得到的;对所述散列值进行分段得到散列值段,确定各个散列值段对应的从节点;根据所述散列值和表分片文件的对应关系,控制各个从节点进行表分片文件迁移,使得各个散列值段对应的表分片文件迁移至所述各个散列值段对应的从节点中,以便各个从节点将所述两个数据表中一个数据表的表分片文件按照散列值进行合并、按照散列值对合并后的表分片文件和所述两个数据表中另一个数据表的表分片文件进行第一外连接得到各个散列值对应的连接结果;接收各个从节点发送的各个散列值对应的连接结果,并根据所述连接结果确定所述数据查询请求的结果。从而实现了MPP分布式数据库下使用左外连接或右外连接进行数据查询处理时,能够得到正确的左外连接或右外连接结果,进而可以根据所述左外连接或右外连接结果得到正确的数据查询结果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为MPP分布式数据库的组网结构实例;
图2为本发明数据查询方法第一实施例示意图;
图3为本发明数据查询方法第二实施例示意图;
图4为本发明数据查询方法第三实施例示意图;
图5为本发明数据查询装置第一实施例示意图;
图6为本发明数据查询装置第二实施例示意图;
图7为本发明主节点结构示意图;
图8为本发明从节点结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,为MPP分布式数据库的组网结构实例,其中,客户端所在的客户端110与主节点120连接,主节点120通过以太网与至少1个从节点130连接,且从节点130之间也通过以太网连接。其中,MPP分布式数据库中的节点,例如主节点、从节点等,可以是一个物理设备例如个人计算机(PC)等,也可以是多个物理设备例如PC组成的局域网等。
参见图2,为本发明数据查询方法第一实施例示意图,该方法包括:
步骤201:主节点接收数据查询请求;
步骤202:主节点根据所述数据查询请求确定需要进行散列拆分的两个数据表;
步骤203:主节点将所述数据表的信息发送给各个从节点;
步骤204:主节点接收各个从节点发送的散列值和表分片文件的对应关系,所述散列值和表分片文件的对应关系是由所述从节点对所述数据表的信息所指示的数据表进行散列拆分得到的;
步骤205:主节点对所述散列值进行分段得到散列值段,确定各个散列值段对应的从节点;
步骤206:主节点根据所述散列值和表分片文件的对应关系,控制各个从节点进行表分片文件迁移,使得各个散列值段对应的表分片文件迁移至所述各个散列值段对应的从节点中,以便各个从节点将所述两个数据表中一个数据表的表分片文件按照散列值进行合并、按照散列值对合并后的表分片文件和所述两个数据表中另一个数据表的表分片文件进行第一外连接得到各个散列值对应的连接结果;
步骤207:主节点接收各个从节点发送的各个散列值对应的连接结果,并根据所述连接结果确定所述数据查询请求的结果。
本实施例中,主节点根据所述散列值和表分片文件的对应关系,控制各个从节点进行表分片文件迁移,之后,由从节点将所述两个数据表中一个数据表的表分片文件按照散列值进行合并、按照散列值对合并后的表分片文件和所述两个数据表中另一个数据表的表分片文件进行第一外连接得到各个散列值对应的连接结果,主节点接收各个从节点发送的各个散列值对应的连接结果,并根据所述连接结果确定所述数据查询请求的结果。从而实现了MPP分布式数据库下使用左外连接或右外连接进行数据查询处理时,能够得到正确的左外连接或右外连接结果,进而可以根据所述左外连接或右外连接结果得到正确的数据查询结果。
参见图3,为本发明数据查询方法第二实施例示意图,该方法包括:
步骤301:从节点接收主节点发送的两个数据表的信息;
步骤302:从节点对所述从节点本地的所述信息指示的两个数据表分别进行散列拆分,得到散列值对应的表分片文件;
步骤303:从节点将散列值和表分片文件的对应关系发送至主节点;
步骤304:从节点在所述主节点控制下进行表分片文件迁移,使得各个散列值段对应的表分片文件迁移至所述各个散列值段对应的从节点中;所述散列值段由主节点对散列值分段得到,各个散列值段对应的从节点由主节点确定;所述控制由所述主节点根据散列值和表分片文件的对应关系进行;
步骤305:从节点将所述两个数据表中一个数据表的表分片文件按照散列值进行合并,得到散列值对应的表分片合并文件;
步骤306:从节点按照散列值对所述表分片合并文件和所述两个数据表中另一个数据表的表分片文件进行第一外连接,得到各个散列值对应的连接结果;
步骤307:从节点将散列值对应的连接结果发送给主节点,以便主节点根据所述连接结果确定数据查询请求的结果。
本实施例中,从节点在所述主节点控制下进行表分片文件迁移,使得各个散列值段对应的表分片文件迁移至所述各个散列值段对应的从节点中;所述散列值段由主节点对散列值分段得到,各个散列值段对应的从节点由主节点确定;所述控制由所述主节点根据散列值和表分片文件的对应关系进行;将所述两个数据表中一个数据表的表分片文件按照散列值进行合并,得到散列值对应的表分片合并文件;按照散列值对所述表分片合并文件和所述两个数据表中另一个数据表的表分片文件进行第一外连接,得到各个散列值对应的连接结果;将散列值对应的连接结果发送给主节点,以便主节点根据所述连接结果确定数据查询请求的结果。从而从节点与主节点配合实现了MPP分布式数据库中使用左外连接或右外连接进行数据查询处理时,能够得到正确的左外连接或右外连接结果,进而能够得到正确的数据查询结果。
参见图4,为本发明数据查询方法第三实施例示意图,该方法包括:
步骤401:客户端接收用户输入的查询关键字,生成查询请求发送至主节点。
在实际应用中,客户端可以为用户提供输入查询关键字的界面,在界面中为列出各种表字段名称,每个表字段名称后设置输入框,由用户在输入框中输入具体的字段内容,客户端将用户输入字段内容的表字段名称以及用户输入的字段内容作为所述查询关键字。
步骤402:主节点根据所述数据查询请求确定进行第一外连接,并且,需要进行散列拆分的第一数据表和第二数据表、作为拆分依据的表字段。
主节点对客户端发送过来的数据查询请求进行解析,根据解析的结果可以确定在查询中是使用左外连接还是右外连接;并且,根据解析的结果可以确定进行左外连接或右外连接的数据表,也即所述第一数据表和第二数据表;并且,根据解析的结果还可以确定作为拆分依据和第一外连接依据的表字段等信息。
其中,如何对数据查询请求进行解析在数据库管理系统中普遍存在,这里不赘述。
步骤403:主节点将所述第一数据表、第二数据表和表字段的信息发送给各个从节点。
其中,第一数据表和第二数据表的数据一般都存储于各个从节点中,因此,所述信息中可以包括:第一数据表的标识,例如第一数据表的表名;第二数据表的标识,例如第二数据表的表名;表字段标识,例如表字段名称;字段内容。
步骤404:对于每一个从节点,从节点根据所述表字段对从节点本地的第一数据表进行散列拆分,得到第一对应关系,所述第一对应关系是散列值与第一表分片文件之间的对应关系;并且,从节点根据所述表字段对从节点本地的第二数据表进行散列拆分,得到第二对应关系,所述第二对应关系是散列值与第二表分片文件之间的对应关系。
其中,所述第一表分片文件为第一数据表进行散列拆分得到的表分片文件;第二表分片文件为第二数据表进行散列拆分得到的表分片文件。其中,表分片文件一般只包含数据表的一部分数据。
步骤405:对于每一个从节点,从节点将所述第一对应关系、所述第二对应关系发送至主节点。
步骤406:主节点对所述散列值进行分段得到散列值段,确定每个散列值段对应的从节点。
其中,主节点具体如何对散列值进行分段,这里并不限定。不同散列值段的长度可以相同或不同。
在第一种可能的实现方式中,在确定每个散列值段对应的从节点时,可以按照某种预设规则为每个散列值段指定对应的从节点;所述预设规则可以为随机指定、按照某种从节点的预设顺序依次为每个散列值段指定等;例如,
散列值划分为散列值段1、散列值段2、散列值段3…,则可以随机为散列值段1指定对应的从节点为从节点3,为散列值段2指定对应的从节点为从节点4,为散列值段3指定对应的从节点为从节点7等;或者,预设从节点的顺序为从节点1、从节点2、…、从节点n,n为自然数,则可以按照该顺序为散列值段1指定对应的从节点为从节点1,为散列值段2指定对应的从节点为从节点2,为散列值段3指定对应的从节点为从节点3等。
在第二种可能的实现方式中,在确定每个散列值段对应的从节点时,可以根据各个从节点发送的所述第一对应关系和第二对应关系,尽量将包含散列值段中散列值最多的从节点作为散列值段对应的从节点,具体的实现方法这里不限制。例如,假设散列值划分为散列值段1、散列值段2、散列值段3…,从节点1~从节点n中,从节点m(1<m<n)中包含的散列值段1中的散列值最多,则可以为散列值段1指定对应的从节点为从节点m。
以上确定每个散列值段对应的从节点的方法仅为示例,在实际应用中可以使用其他方法确定每个散列值段对应的从节点,本发明并不限定。
步骤407:主节点根据各个从节点发来的所述第一对应关系和第二对应关系,控制各个从节点进行表分片文件迁移;所述表分片文件迁移包括:将散列值段中的散列值所对应的第一表分片文件和第二表分片文件迁移至散列值段对应的从节点中。
在第一种可能的实现方式中,主节点控制各个从节点进行表分片文件迁移可以包括:
主节点向各个从节点发送第一迁移命令,所述第一迁移命令中包括:从节点对应的散列值段中各个散列值所对应的第一表分片文件以及文件所在从节点的信息,从节点对应的散列值段中各个散列值所对应的第二表分片文件以及文件所在从节点的信息;所述第一迁移命令用于指示从节点从所述文件所在从节点获取所述第一表分片文件和第二表分片文件。
在第二种可能的实现方式中,主节点控制各个从节点进行表分片文件迁移可以包括:
主节点向各个从节点发送第二迁移命令,所述第二迁移命令中包括:各个散列值段对应的从节点的信息;所述第二迁移命令用于指示从节点将从节点本地第一表分片文件发送至第一表分片文件对应的从节点,将从节点本地第二表分片文件发送至第二表分片文件对应的从节点;所述第一表分片文件对应的从节点是第一表分片文件对应的散列值所在散列值段对应的从节点;所述第二表分片文件对应的从节点是第二表分片文件对应的散列值所在散列值段对应的从节点。
步骤408:对于每一从节点,从节点将本地同一散列值对应的第一表分片文件合并,得到各个散列值对应的第一表分片合并文件。
这里的合并是表分片文件中的数据的合并。一般的,表分片文件中的数据由许多行记录(也叫元组)构成。比如,第一表分片文件A中含有两条记录,分别是Wu和Wang;第一表分片文件B中含有1条记录,为Zhang,那么,合并后的第一表分片合并文件中含有3条记录,分别为Wu、Wang和Zhang。合并的方法通常是将一个表分片文件的数据追加到另一个表分片文件中,比如第一表分片文件B中所有记录都添加到第一表分片文件A中,当然也可以反过来将第一表分片文件A中所有记录添加到第一表分片文件B中。通常,可以将记录数较少的第一表分片文件中的数据添加到记录数较多的第一表分片文件中,这样合并处理的性能较高。合并后的第一表分片合并文件中的各条记录的先后顺序对于本发明实施例的左外连接或右外连接没有影响。
步骤409:主节点指示各个从节点进行第一外连接;从节点根据所述表字段,对各个散列值对应的第一表分片合并文件以及第二表分片文件进行所述第一外连接,得到各个散列值对应的连接结果。
其中,主节点指示各个从节点进行第一外连接这一过程可以在步骤402~步骤409之间执行,与步骤403~步骤408之间的执行顺序不限制。
其中,第一数据表可以作为左表,第二数据表可以作为右表,此时所述第一外连接可以为右外连接;或者,第一数据表可以作为右表,第二数据表可以作为左表,此时所述第一外连接可以为左外连接。
其中,同一从节点上每个散列值对应的第一表分片合并文件与该散列值对应的各个第二表分片文件进行第一外连接可以并发进行;例如,从节点1上的散列值A对应第一表分片合并文件X1,对应第二表分片文件Y1、Y2、Y3,那么,第一表分片合并文件X1与第二表分片文件Y1进行第一外连接、第一表分片合并文件X1与第二表分片文件Y2进行第一外连接、第一表分片合并文件X1与第二表分片文件Y3进行第一外连接这三个第一外连接处理可以并发进行;
并且,同一节点上不同散列值对应的第一表分片合并文件与该散列值对应的各个第二表分片文件进行第一外连接可以并发进行;例如,从节点1上有散列值A、B、C,则散列值A对应的第一表分片合并文件与该散列值对应的各个第二表分片文件进行第一外连接、散列值B对应的第一表分片合并文件与该散列值对应的各个第二表分片文件进行第一外连接、散列值C对应的第一表分片合并文件与该散列值对应的各个第二表分片文件进行第一外连接这三个第一外连接处理可以并发进行;
并且,各个节点上分别进行的第一外连接也可以并发进行;例如,从节点1、2、3均需要分别进行第一外连接处理,则这三个从节点上进行的第一外连接处理可以并发进行。
步骤410:对于每一从节点,从节点将散列值对应的连接结果发送给主节点。
步骤411:主节点将各个散列值对应的连接结果合并得到第一外连接结果,根据所述第一外连接结果确定数据查询结果。
其中,主节点如何以第一外连接结果为依据确定数据查询结果这里不赘述,例如可以根据用户输入的所述查询关键字对所述第一外连接结果进行搜索,将包括所述查询关键字的记录作为查询结果等。
步骤412:主节点将所述数据查询结果发送给客户端。
步骤413:客户端将所述数据查询结果显示给用户。
其中,客户端具体如何向用户显示所述数据查询结果,本发明实施例并不限定。
本实施例中,主节点根据所述第一对应关系和第二对应关系,控制各个从节点进行表分片文件迁移,之后,由从节点将所述从节点本地的同一散列值的第一表分片文件合并得到散列值对应的第一表分片合并文件、根据所述表字段对各个散列值对应的第一表分片合并文件以及第二表分片文件进行第一外连接得到各个散列值对应的连接结果,主节点接收各个从节点发送的各个散列值对应的连接结果,将各个散列值对应的连接结果合并,得到数据查询结果。从而实现了MPP分布式数据库下使用左外连接或右外连接进行数据查询处理时,能够得到正确的左外连接或右外连接结果,进而能够得到正确的数据查询结果。
参见图5,为本发明数据查询装置第一实施例示意图,该装置可以应用于主节点,该装置500包括:
第一接收单元510,用于接收数据查询请求;
第一确定单元520,用于根据所述第一接收单元510接收的所述数据查询请求确定需要进行散列拆分的两个数据表;
第一发送单元530,用于将第一确定单元520确定的所述数据表的信息发送给各个从节点;
所述第一接收单元510还用于:接收各个从节点发送的散列值和表分片文件的对应关系,所述散列值和表分片文件的对应关系是由所述从节点对所述数据表的信息所指示的数据表进行散列拆分得到的;
分段单元540,用于对所述第一接收单元510接收到的所述散列值进行分段得到散列值段,确定各个散列值段对应的从节点;
控制单元550,用于根据第一接收单元510接收到的所述散列值和表分片文件的对应关系,控制各个从节点进行表分片文件迁移,使得各个散列值段对应的表分片文件迁移至所述各个散列值段对应的从节点中,以便各个从节点将所述两个数据表中一个数据表的表分片文件按照散列值进行合并、按照散列值对合并后的表分片文件和所述两个数据表中另一个数据表的表分片文件进行第一外连接得到各个散列值对应的连接结果;
所述第一接收单元510还用于:接收各个从节点发送的各个散列值对应的连接结果;
查询单元560,用于根据所述第一接收单元510接收到的所述连接结果确定所述数据查询请求的结果。
其中,所述第一确定单元520还可以用于:根据所述第一接收单元510接收的所述数据查询请求确定作为散列拆分依据和第一外连接依据的表字段;
所述第一发送单元530还可以用于:将所述第一确定单元520确定的所述表字段的信息发送给各个从节点。
其中,查询单元560具体可以用于:将各个散列值对应的连接结果合并,得到第一外连接结果;根据所述第一外连接结果确定数据查询请求的结果。
其中,所述控制单元550具体可以用于:
向各个从节点发送第一迁移命令,所述第一迁移命令中包括:从节点对应的散列值段中各个散列值所对应的表分片文件以及表分片文件所在从节点的信息;所述第一迁移命令用于指示从节点从所述表分片文件所在从节点获取所述表分片文件。
其中,所述控制单元550具体可以用于:
向各个从节点发送第二迁移命令,所述第二迁移命令中包括:各个散列值段对应的从节点的信息;所述第二迁移命令用于指示从节点将从节点本地表分片文件发送至表分片文件对应的从节点;所述表分片文件对应的从节点是表分片文件对应的散列值所在散列值段对应的从节点。
本实施例中,根据所述散列值和表分片文件的对应关系,控制各个从节点进行表分片文件迁移,之后,由从节点将所述两个数据表中一个数据表的表分片文件按照散列值进行合并、按照散列值对合并后的表分片文件和所述两个数据表中另一个数据表的表分片文件进行第一外连接得到各个散列值对应的连接结果,主节点接收各个从节点发送的各个散列值对应的连接结果,并根据所述连接结果确定所述数据查询请求的结果。从而实现了MPP分布式数据库下使用左外连接或右外连接进行数据查询处理时,能够得到正确的左外连接或右外连接结果,进而能够得到正确的数据查询结果。
参见图6,为本发明数据查询装置第二实施例示意图,该装置可以设置于从节点,该装置600包括:
第二接收单元610,用于接收主节点发送的两个数据表的信息;
拆分单元620,用于对从节点本地的所述第二接收单元610接收到的所述信息指示的两个数据表分别进行散列拆分,得到散列值对应的表分片文件;
第二发送单元630,用于将拆分单元620得到的散列值和表分片文件的对应关系发送至主节点;
被控单元640,用于在所述主节点控制下对表分片文件进行表分片文件迁移,使得各个散列值段对应的表分片文件迁移至所述各个散列值段对应的从节点中;所述散列值段由主节点对散列值分段得到,各个散列值段对应的从节点由主节点确定;所述控制由所述主节点根据散列值和表分片文件的对应关系进行;
第二合并单元650,用于将被控单元640迁移后的所述两个数据表中一个数据表的表分片文件按照散列值进行合并,得到散列值对应的表分片合并文件;
连接单元660,用于按照散列值对第二合并单元650得到的所述表分片合并文件和所述两个数据表中另一个数据表的表分片文件进行第一外连接,得到各个散列值对应的连接结果;
第二发送单元630还用于:将所述连接单元660得到的散列值对应的连接结果发送给主节点,以便主节点根据所述连接结果确定数据查询请求的结果。
其中,所述第二接收单元610还可以用于:接收主节点发送的作为散列拆分依据和第一外连接依据的表字段的信息。
其中,被控单元640具体用于:
接收所述主节点发送的第一迁移命令,所述第一迁移命令中包括:从节点对应的散列值段中各个散列值所对应的表分片文件以及表分片文件所在从节点的信息;
从所述表分片文件所在从节点获取所述表分片文件。
其中,被控单元640具体用于:
接收所述主节点发送的第二迁移命令,所述第二迁移命令中包括:各个散列值段对应的从节点的信息;
根据所述散列值段对应的从节点的信息,将从节点本地表分片文件发送至表分片文件对应的从节点;所述表分片文件对应的从节点是表分片文件对应的散列值所在散列值段对应的从节点。
本实施例中,在所述主节点控制下进行表分片文件迁移,使得各个散列值段对应的表分片文件迁移至所述各个散列值段对应的从节点中;所述散列值段由主节点对散列值分段得到,各个散列值段对应的从节点由主节点确定;所述控制由所述主节点根据散列值和表分片文件的对应关系进行;将所述两个数据表中一个数据表的表分片文件按照散列值进行合并,得到散列值对应的表分片合并文件;按照散列值对所述表分片合并文件和所述两个数据表中另一个数据表的表分片文件进行第一外连接,得到各个散列值对应的连接结果;将散列值对应的连接结果发送给主节点,以便主节点根据所述连接结果确定数据查询请求的结果。从而与主节点配合实现了MPP分布式数据库中使用左外连接或右外连接进行数据查询处理时,能够得到正确的左外连接或右外连接结果,进而能够得到正确的数据查询结果。
参见图7,为本发明实施例主节点结构图,该主节点700包括:处理器710、存储器720、收发器730和总线740;
处理器710、存储器720、收发器730通过总线740相互连接;总线740可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器720,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器720可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
收发器730用于连接其他设备,并与其他设备进行通信。收发器730用于:接收数据查询请求;将所述数据表的信息发送给各个从节点;接收各个从节点发送的散列值和表分片文件的对应关系,所述散列值和表分片文件的对应关系是由所述从节点对所述数据表的信息所指示的数据表进行散列拆分得到的;接收各个从节点发送的各个散列值对应的连接结果;
所述处理器710执行所述程序代码,用于根据收发器730接收到的所述数据查询请求确定需要进行散列拆分的两个数据表;对收发器730接收到的所述散列值进行分段得到散列值段,确定各个所述散列值段对应的从节点;根据所述散列值和表分片文件的对应关系,控制各个从节点进行表分片文件迁移,使得各个散列值段对应的表分片文件迁移至所述各个散列值段对应的从节点中,以便各个从节点将所述两个数据表中一个数据表的表分片文件按照散列值进行合并、按照散列值对合并后的表分片文件和所述两个数据表中另一个数据表的表分片文件进行第一外连接得到各个散列值对应的连接结果;根据所述连接结果确定所述数据查询请求的结果。
其中,所述处理器710还可以用于:根据收发器730接收到的所述数据查询请求确定作为散列拆分依据和第一外连接依据的表字段;
所述收发器730还可以用于:将所述处理器710确定的所述表字段的信息发送给各个从节点。
其中,所述处理器710具体可以用于:将各个散列值对应的连接结果合并,得到第一外连接结果;根据所述第一外连接结果确定数据查询请求的结果。
其中,所述处理器710具体可以用于:控制收发器730向各个从节点发送第一迁移命令,所述第一迁移命令中包括:从节点对应的散列值段中各个散列值所对应的表分片文件以及表分片文件所在从节点的信息;所述第一迁移命令用于指示从节点从所述表分片文件所在从节点获取所述表分片文件;
所述收发器730还可以用于:向各个从节点发送第一迁移命令。
其中,所述处理器710具体可以用于:控制收发器730向各个从节点发送第二迁移命令,所述第二迁移命令中包括:各个散列值段对应的从节点的信息;所述第二迁移命令用于指示从节点将从节点本地表分片文件发送至表分片文件对应的从节点;所述表分片文件对应的从节点是表分片文件对应的散列值所在散列值段对应的从节点;
收发器730还可以用于:向各个从节点发送第二迁移命令。
本实施例中,主节点根据所述散列值和表分片文件的对应关系,控制各个从节点进行表分片文件迁移,之后,由从节点将所述两个数据表中一个数据表的表分片文件按照散列值进行合并、按照散列值对合并后的表分片文件和所述两个数据表中另一个数据表的表分片文件进行第一外连接得到各个散列值对应的连接结果,主节点接收各个从节点发送的各个散列值对应的连接结果,并根据所述连接结果确定所述数据查询请求的结果。从而实现了MPP分布式数据库下使用左外连接或右外连接进行数据查询处理时,能够得到正确的左外连接或右外连接结果,进而可以根据所述左外连接或右外连接结果得到正确的数据查询结果。
参见图8,为本发明实施例主节点结构图,该主节点800包括:处理器810、存储器820、收发器830和总线840;
处理器810、存储器820、收发器830通过总线840相互连接;总线840可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器820,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器820可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
收发器830用于连接其他设备,并与其他设备进行通信。收发器830用于:接收主节点发送的两个数据表的信息;将散列值和表分片文件的对应关系发送至主节点;将散列值对应的连接结果发送给主节点,以便主节点根据所述连接结果确定数据查询请求的结果。
所述处理器810执行所述程序代码,用于对所述从节点本地的所述信息指示的两个数据表分别进行散列拆分,得到散列值对应的表分片文件;在所述主节点控制下通过收发器830进行表分片文件迁移,使得各个散列值段对应的表分片文件迁移至所述各个散列值段对应的从节点中;所述散列值段由主节点对散列值分段得到,各个散列值段对应的从节点由主节点确定;所述控制由所述主节点根据散列值和表分片文件的对应关系进行;将所述两个数据表中一个数据表的表分片文件按照散列值进行合并,得到散列值对应的表分片合并文件;按照散列值对所述表分片合并文件和所述两个数据表中另一个数据表的表分片文件进行第一外连接,得到各个散列值对应的连接结果。
其中,所述收发器830还可以用于:接收主节点发送的作为散列拆分依据和第一外连接依据的表字段的信息。
其中,所述处理器810用于:根据收发器830接收到的所述第一迁移命令中所包括的从节点对应的散列值段中各个散列值所对应的表分片文件以及表分片文件所在从节点的信息,通过收发器830从所述表分片文件所在从节点获取所述表分片文件;
所述收发器830具体可以用于:接收所述主节点发送的第一迁移命令,所述第一迁移命令中包括:从节点对应的散列值段中各个散列值所对应的表分片文件以及表分片文件所在从节点的信息;从所述表分片文件所在从节点获取所述表分片文件。
其中,所述处理器810具体可以用于:根据收发器830接收到的所述第二迁移命令中包括的所述散列值段对应的从节点的信息,通过收发器830将从节点本地表分片文件发送至表分片文件对应的从节点;
所述收发器830具体可以用于:接收所述主节点发送的第二迁移命令,所述第二迁移命令中包括:各个散列值段对应的从节点的信息;将从节点本地表分片文件发送至表分片文件对应的从节点;所述表分片文件对应的从节点是表分片文件对应的散列值所在散列值段对应的从节点。
本实施例中,从节点在所述主节点控制下进行表分片文件迁移,使得各个散列值段对应的表分片文件迁移至所述各个散列值段对应的从节点中;所述散列值段由主节点对散列值分段得到,各个散列值段对应的从节点由主节点确定;所述控制由所述主节点根据散列值和表分片文件的对应关系进行;将所述两个数据表中一个数据表的表分片文件按照散列值进行合并,得到散列值对应的表分片合并文件;按照散列值对所述表分片合并文件和所述两个数据表中另一个数据表的表分片文件进行第一外连接,得到各个散列值对应的连接结果;将散列值对应的连接结果发送给主节点,以便主节点根据所述连接结果确定数据查询请求的结果。从而与主节点配合实现了MPP分布式数据库中使用左外连接或右外连接进行数据查询处理时,能够得到正确的左外连接或右外连接结果,进而根据所述左外连接或右外连接结果得到正确的数据查询结果。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (18)

1.一种数据查询方法,其特征在于,包括:
接收数据查询请求;
根据所述数据查询请求确定需要进行散列拆分的两个数据表;
将所述数据表的信息发送给各个从节点;
接收各个从节点发送的散列值和表分片文件的对应关系,所述散列值和表分片文件的对应关系是由所述从节点对所述数据表的信息所指示的数据表进行散列拆分得到的;
对所述散列值进行分段得到散列值段,确定各个散列值段对应的从节点;
根据所述散列值和表分片文件的对应关系,控制各个从节点进行表分片文件迁移,使得各个散列值段对应的表分片文件迁移至所述各个散列值段对应的从节点中,以便各个从节点将所述两个数据表中一个数据表的表分片文件按照散列值进行合并、按照散列值对合并后的表分片文件和所述两个数据表中另一个数据表的表分片文件进行第一外连接得到各个散列值对应的连接结果;
接收各个从节点发送的各个散列值对应的连接结果,并根据所述连接结果确定所述数据查询请求的结果。
2.根据权利要求1所述的方法,其特征在于,还包括:
根据所述数据查询请求确定作为散列拆分依据和第一外连接依据的表字段;
将所述表字段的信息发送给各个从节点。
3.根据权利要求1或2所述的方法,其特征在于,根据所述连接结果确定所述数据查询请求的结果包括:
将各个散列值对应的连接结果合并,得到第一外连接结果;
根据所述第一外连接结果确定数据查询请求的结果。
4.根据权利要求1至3任一项所述的方法,其特征在于,控制各个从节点进行表分片文件迁移包括:
向各个从节点发送第一迁移命令,所述第一迁移命令中包括:从节点对应的散列值段中各个散列值所对应的表分片文件以及表分片文件所在从节点的信息;所述第一迁移命令用于指示从节点从所述表分片文件所在从节点获取所述表分片文件。
5.根据权利要求1至3任一项所述的方法,其特征在于,控制各个从节点进行表分片文件迁移包括:
向各个从节点发送第二迁移命令,所述第二迁移命令中包括:各个散列值段对应的从节点的信息;所述第二迁移命令用于指示从节点将从节点本地表分片文件发送至表分片文件对应的从节点;所述表分片文件对应的从节点是表分片文件对应的散列值所在散列值段对应的从节点。
6.一种数据查询方法,其特征在于,包括:
接收主节点发送的两个数据表的信息;
对所述从节点本地的所述信息指示的两个数据表分别进行散列拆分,得到散列值对应的表分片文件;
将散列值和表分片文件的对应关系发送至主节点;
在所述主节点控制下进行表分片文件迁移,使得各个散列值段对应的表分片文件迁移至所述各个散列值段对应的从节点中;所述散列值段由主节点对散列值分段得到,各个散列值段对应的从节点由主节点确定;所述控制由所述主节点根据散列值和表分片文件的对应关系进行;
将所述两个数据表中一个数据表的表分片文件按照散列值进行合并,得到散列值对应的表分片合并文件;
按照散列值对所述表分片合并文件和所述两个数据表中另一个数据表的表分片文件进行第一外连接,得到各个散列值对应的连接结果;
将散列值对应的连接结果发送给主节点,以便主节点根据所述连接结果确定数据查询请求的结果。
7.根据权利要求6所述的方法,其特征在于,还包括:
接收主节点发送的作为散列拆分依据和第一外连接依据的表字段的信息。
8.根据权利要求6或7所述的方法,其特征在于,在所述主节点控制下进行表分片文件迁移包括:
接收所述主节点发送的第一迁移命令,所述第一迁移命令中包括:从节点对应的散列值段中各个散列值所对应的表分片文件以及表分片文件所在从节点的信息;
从所述表分片文件所在从节点获取所述表分片文件。
9.根据权利要求6或7所述的方法,其特征在于,在所述主节点控制下进行表分片文件迁移包括:
接收所述主节点发送的第二迁移命令,所述第二迁移命令中包括:各个散列值段对应的从节点的信息;
根据所述散列值段对应的从节点的信息,将从节点本地表分片文件发送至表分片文件对应的从节点;所述表分片文件对应的从节点是表分片文件对应的散列值所在散列值段对应的从节点。
10.一种数据查询装置,其特征在于,包括:
第一接收单元,用于接收数据查询请求;
第一确定单元,用于根据所述第一接收单元接收的所述数据查询请求确定需要进行散列拆分的两个数据表;
第一发送单元,用于将第一确定单元确定的所述数据表的信息发送给各个从节点;
所述第一接收单元还用于:接收各个从节点发送的散列值和表分片文件的对应关系,所述散列值和表分片文件的对应关系是由所述从节点对所述数据表的信息所指示的数据表进行散列拆分得到的;
分段单元,用于对所述第一接收单元接收到的所述散列值进行分段得到散列值段,确定各个散列值段对应的从节点;
控制单元,用于根据第一接收单元接收到的所述散列值和表分片文件的对应关系,控制各个从节点进行表分片文件迁移,使得各个散列值段对应的表分片文件迁移至所述各个散列值段对应的从节点中,以便各个从节点将所述两个数据表中一个数据表的表分片文件按照散列值进行合并、按照散列值对合并后的表分片文件和所述两个数据表中另一个数据表的表分片文件进行第一外连接得到各个散列值对应的连接结果;
所述第一接收单元还用于:接收各个从节点发送的各个散列值对应的连接结果;
查询单元,用于根据所述第一接收单元接收到的所述连接结果确定所述数据查询请求的结果。
11.根据权利要求10所述的装置,其特征在于,所述第一确定单元还用于:根据所述第一接收单元接收的所述数据查询请求确定作为散列拆分依据和第一外连接依据的表字段;
所述第一发送单元还用于:将所述第一确定单元确定的所述表字段的信息发送给各个从节点。
12.根据权利要求9或10所述的装置,其特征在于,查询单元具体用于:将各个散列值对应的连接结果合并,得到第一外连接结果;根据所述第一外连接结果确定数据查询请求的结果。
13.根据权利要求9至12任一项所述的装置,其特征在于,所述控制单元具体用于:
向各个从节点发送第一迁移命令,所述第一迁移命令中包括:从节点对应的散列值段中各个散列值所对应的表分片文件以及表分片文件所在从节点的信息;所述第一迁移命令用于指示从节点从所述表分片文件所在从节点获取所述表分片文件。
14.根据权利要求9至12任一项所述的装置,其特征在于,所述控制单元具体用于:
向各个从节点发送第二迁移命令,所述第二迁移命令中包括:各个散列值段对应的从节点的信息;所述第二迁移命令用于指示从节点将从节点本地表分片文件发送至表分片文件对应的从节点;所述表分片文件对应的从节点是表分片文件对应的散列值所在散列值段对应的从节点。
15.一种数据查询装置,其特征在于,包括:
第二接收单元,用于接收主节点发送的两个数据表的信息;
拆分单元,用于对从节点本地的所述第二接收单元接收到的所述信息指示的两个数据表分别进行散列拆分,得到散列值对应的表分片文件;
第二发送单元,用于将拆分单元得到的散列值和表分片文件的对应关系发送至主节点;
被控单元,用于在所述主节点控制下进行表分片文件迁移,使得各个散列值段对应的表分片文件迁移至所述各个散列值段对应的从节点中;所述散列值段由主节点对散列值分段得到,各个散列值段对应的从节点由主节点确定;所述控制由所述主节点根据散列值和表分片文件的对应关系进行;
第二合并单元,用于将所述被控单元迁移后的所述两个数据表中一个数据表的表分片文件按照散列值进行合并,得到散列值对应的表分片合并文件;
连接单元,用于按照散列值对第二合并单元得到的所述表分片合并文件和所述两个数据表中另一个数据表的表分片文件进行第一外连接,得到各个散列值对应的连接结果;
所述第二发送单元还用于:将所述连接单元得到的散列值对应的连接结果发送给主节点,以便主节点根据所述连接结果确定数据查询请求的结果。
16.根据权利要求15所述的装置,其特征在于,所述第二接收单元还用于:接收主节点发送的作为散列拆分依据和第一外连接依据的表字段的信息。
17.根据权利要求15或16所述的装置,其特征在于,所述被控单元具体用于:
接收所述主节点发送的第一迁移命令,所述第一迁移命令中包括:从节点对应的散列值段中各个散列值所对应的表分片文件以及表分片文件所在从节点的信息;
从所述表分片文件所在从节点获取所述表分片文件。
18.根据权利要求15或16所述的装置,其特征在于,所述被控单元具体用于:
接收所述主节点发送的第二迁移命令,所述第二迁移命令中包括:各个散列值段对应的从节点的信息;
根据所述散列值段对应的从节点的信息,将从节点本地表分片文件发送至表分片文件对应的从节点;所述表分片文件对应的从节点是表分片文件对应的散列值所在散列值段对应的从节点。
CN201310459279.5A 2013-09-27 一种数据查询方法及装置 Active CN103488778B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310459279.5A CN103488778B (zh) 2013-09-27 一种数据查询方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310459279.5A CN103488778B (zh) 2013-09-27 一种数据查询方法及装置

Publications (2)

Publication Number Publication Date
CN103488778A true CN103488778A (zh) 2014-01-01
CN103488778B CN103488778B (zh) 2016-11-30

Family

ID=

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104111992A (zh) * 2014-07-03 2014-10-22 北京思特奇信息技术股份有限公司 一种分布式数据库的代理结果合并方法及系统
CN104881466A (zh) * 2015-05-25 2015-09-02 百度在线网络技术(北京)有限公司 数据分片的处理以及垃圾文件的删除方法和装置
WO2015149710A1 (en) * 2014-04-02 2015-10-08 Huawei Technologies Co., Ltd. System and method for massively parallel processing database
CN105183901A (zh) * 2015-09-30 2015-12-23 北京京东尚科信息技术有限公司 一种数据查询引擎读取数据库表的方法及装置
WO2018014613A1 (en) * 2016-07-19 2018-01-25 Zhejiang Dahua Technology Co., Ltd. Systems and methods for migrating data
CN108009019A (zh) * 2016-10-29 2018-05-08 网宿科技股份有限公司 分布式数据定位实例的方法、客户端及分布式计算系统
WO2018103520A1 (en) * 2016-12-09 2018-06-14 Huawei Technologies Co., Ltd. Dynamic computation node grouping with cost based optimization for massively parallel processing
CN109165262A (zh) * 2018-10-16 2019-01-08 成都索贝数码科技股份有限公司 一种关系型大表的分片集群系统及其分片方法
CN110019092A (zh) * 2017-12-27 2019-07-16 杭州华为数字技术有限公司 数据存储的方法、控制器和系统
CN110083658A (zh) * 2019-03-11 2019-08-02 北京达佳互联信息技术有限公司 数据同步方法、装置、电子设备及存储介质
CN110708375A (zh) * 2019-09-30 2020-01-17 恩亿科(北京)数据科技有限公司 一种数据处理方法、装置及系统
CN110825816A (zh) * 2020-01-09 2020-02-21 四川新网银行股份有限公司 对分片数据库数据采集的系统和方法
CN112948382A (zh) * 2021-02-26 2021-06-11 平安科技(深圳)有限公司 基于大数据的信息处理方法、装置及相关设备

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6567806B1 (en) * 1993-01-20 2003-05-20 Hitachi, Ltd. System and method for implementing hash-based load-balancing query processing in a multiprocessor database system
CN1514976A (zh) * 1998-07-24 2004-07-21 �ָ��� 用于进行对象检索的分布式计算机数据库系统和方法
US20080097971A1 (en) * 2006-10-18 2008-04-24 Telcordia Applied Research Center Taiwan Company Peer-to-peer based secondary key search method and system for cluster database
US20090271509A1 (en) * 2008-04-28 2009-10-29 Lucent Technologies Inc. Probabilistic aggregation over distributed data streams
CN101719155A (zh) * 2009-12-29 2010-06-02 北京航空航天大学 一种支持分布式多集群计算环境的多维属性范围查询的方法
CN102467570A (zh) * 2010-11-17 2012-05-23 日电(中国)有限公司 用于分布式数据仓库的连接查询系统和方法
CN102831120A (zh) * 2011-06-15 2012-12-19 腾讯科技(深圳)有限公司 一种数据处理方法及系统
US20130124467A1 (en) * 2011-11-14 2013-05-16 Siddartha Naidu Data Processing Service
CN103246659A (zh) * 2012-02-06 2013-08-14 阿里巴巴集团控股有限公司 键值数据查询的方法和装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6567806B1 (en) * 1993-01-20 2003-05-20 Hitachi, Ltd. System and method for implementing hash-based load-balancing query processing in a multiprocessor database system
CN1514976A (zh) * 1998-07-24 2004-07-21 �ָ��� 用于进行对象检索的分布式计算机数据库系统和方法
US20080097971A1 (en) * 2006-10-18 2008-04-24 Telcordia Applied Research Center Taiwan Company Peer-to-peer based secondary key search method and system for cluster database
US20090271509A1 (en) * 2008-04-28 2009-10-29 Lucent Technologies Inc. Probabilistic aggregation over distributed data streams
CN101719155A (zh) * 2009-12-29 2010-06-02 北京航空航天大学 一种支持分布式多集群计算环境的多维属性范围查询的方法
CN102467570A (zh) * 2010-11-17 2012-05-23 日电(中国)有限公司 用于分布式数据仓库的连接查询系统和方法
CN102831120A (zh) * 2011-06-15 2012-12-19 腾讯科技(深圳)有限公司 一种数据处理方法及系统
US20130124467A1 (en) * 2011-11-14 2013-05-16 Siddartha Naidu Data Processing Service
CN103246659A (zh) * 2012-02-06 2013-08-14 阿里巴巴集团控股有限公司 键值数据查询的方法和装置

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015149710A1 (en) * 2014-04-02 2015-10-08 Huawei Technologies Co., Ltd. System and method for massively parallel processing database
US9348865B2 (en) 2014-04-02 2016-05-24 Futurewei Technologies, Inc. System and method for massively parallel processing database
CN106462593A (zh) * 2014-04-02 2017-02-22 华为技术有限公司 大规模并行处理数据库的系统和方法
CN104111992B (zh) * 2014-07-03 2017-05-17 北京思特奇信息技术股份有限公司 一种分布式数据库的代理结果合并方法及系统
CN104111992A (zh) * 2014-07-03 2014-10-22 北京思特奇信息技术股份有限公司 一种分布式数据库的代理结果合并方法及系统
CN104881466A (zh) * 2015-05-25 2015-09-02 百度在线网络技术(北京)有限公司 数据分片的处理以及垃圾文件的删除方法和装置
CN105183901A (zh) * 2015-09-30 2015-12-23 北京京东尚科信息技术有限公司 一种数据查询引擎读取数据库表的方法及装置
WO2018014613A1 (en) * 2016-07-19 2018-01-25 Zhejiang Dahua Technology Co., Ltd. Systems and methods for migrating data
US11620067B2 (en) 2016-07-19 2023-04-04 Zhejiang Dahua Technology Co., Ltd. Systems and methods for migrating data
US10922004B2 (en) 2016-07-19 2021-02-16 Zhejiang Dahua Technology Co., Ltd. Systems and methods for migrating data records
CN108009019A (zh) * 2016-10-29 2018-05-08 网宿科技股份有限公司 分布式数据定位实例的方法、客户端及分布式计算系统
WO2018103520A1 (en) * 2016-12-09 2018-06-14 Huawei Technologies Co., Ltd. Dynamic computation node grouping with cost based optimization for massively parallel processing
US10649996B2 (en) 2016-12-09 2020-05-12 Futurewei Technologies, Inc. Dynamic computation node grouping with cost based optimization for massively parallel processing
CN110019092A (zh) * 2017-12-27 2019-07-16 杭州华为数字技术有限公司 数据存储的方法、控制器和系统
CN110019092B (zh) * 2017-12-27 2021-07-09 华为技术有限公司 数据存储的方法、控制器和系统
CN109165262A (zh) * 2018-10-16 2019-01-08 成都索贝数码科技股份有限公司 一种关系型大表的分片集群系统及其分片方法
CN109165262B (zh) * 2018-10-16 2022-05-10 成都索贝数码科技股份有限公司 一种关系型大表的分片集群系统及其分片方法
CN110083658A (zh) * 2019-03-11 2019-08-02 北京达佳互联信息技术有限公司 数据同步方法、装置、电子设备及存储介质
CN110708375A (zh) * 2019-09-30 2020-01-17 恩亿科(北京)数据科技有限公司 一种数据处理方法、装置及系统
CN110825816B (zh) * 2020-01-09 2020-04-21 四川新网银行股份有限公司 对分片数据库数据采集的系统和方法
CN110825816A (zh) * 2020-01-09 2020-02-21 四川新网银行股份有限公司 对分片数据库数据采集的系统和方法
CN112948382A (zh) * 2021-02-26 2021-06-11 平安科技(深圳)有限公司 基于大数据的信息处理方法、装置及相关设备

Similar Documents

Publication Publication Date Title
US11163957B2 (en) Performing semantic graph search
US10606897B2 (en) Aggregating personalized suggestions from multiple sources
US11580168B2 (en) Method and system for providing context based query suggestions
CN103902698B (zh) 一种数据存储系统和存储方法
Sehgal et al. Sentiment analysis of big data applications using Twitter Data with the help of HADOOP framework
JP2013545189A (ja) マルチステージを使用したカテゴリ情報の決定
CN103699700A (zh) 一种搜索引导的生成方法、系统及相关服务器
US9275156B2 (en) Trending topic identification from social communications
WO2014000578A1 (en) Method and apparatus for processing database data in distributed database system
CN106649412B (zh) 一种数据处理方法和设备
CN111858760B (zh) 一种异构数据库的数据处理方法及装置
CN106970929A (zh) 数据导入方法及装置
US9721000B2 (en) Generating and using a customized index
CN105468764A (zh) 一种数据处理方法、装置及集群服务系统
CN111008521A (zh) 生成宽表的方法、装置及计算机存储介质
WO2018052519A1 (en) N-way hash join
CN110716950A (zh) 一种口径系统建立方法、装置、设备及计算机存储介质
CN102207935A (zh) 用于创建索引的方法和系统
US10929447B2 (en) Systems and methods for customized data parsing and paraphrasing
US9390131B1 (en) Executing queries subject to different consistency requirements
US8825698B1 (en) Showing prominent users for information retrieval requests
US8407255B1 (en) Method and apparatus for exploiting master-detail data relationships to enhance searching operations
CN111400301A (zh) 一种数据查询方法、装置及设备
EP3193264A1 (en) Method and apparatus for processing big data
CN111290714B (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
C14 Grant of patent or utility model
GR01 Patent grant