分布式数据库系统中的表连接方法及分布式数据库系统技术方案

技术编号:16483020 阅读:36 留言:0更新日期:2017-10-31 15:36
本发明专利技术公开了一种分布式数据库中的表连接方法及系统,属于信息技术领域。包括:将协调节点发送的第一数据表中第一目标列的数据存储在本地存储器;接收表连接请求;当第一目标列上的第一数据与第二目标列上的第二数据相同时,将第一数据所在行的数据与第二数据所在行的数据进行连接;向协调节点发送连接结果。本发明专利技术中数据节点通过存储第一数据表的第一目标列的数据,在接收到将第一数据表的第一目标列和第二数据表的第二目标列作连接的表连接请求后,直接在本地作连接,无需将节点上存储的数据发送至协调节点,不仅减少了数据传输量,缩短了网络响应时间,提高了业务性能,而且减少对协调节点和数据节点存储资源的占用,节省了存储空间。

Table join method and distributed database system in distributed database system

The invention discloses a table connection method and system in a distributed database, belonging to the field of information technology. Including: the first coordination node sends data of the first target column in the table data is stored in the local memory; receiving table connection request; when the second data of the first column and the first target second targets on the column at the same time, the first row of data and the second data row data link connection; results to the coordinator node sent. The first goal of storing the first data table columns of data nodes in the invention, upon receipt of the first data table of the first column and the second target data table second target column as a connection table connection request, directly connected to the local, no node storage data sent to the coordinator node. Not only reduce the amount of data transmission and reduce the network response time, improve business performance, but also reduce the occupancy of the coordinator node and data node storage resources, saving storage space.

【技术实现步骤摘要】
分布式数据库系统中的表连接方法及分布式数据库系统
本专利技术涉及信息
,特别涉及一种分布式数据库系统中的表连接方法及分布式数据库系统。
技术介绍
在分布式数据库系统中,节点按照功能可分为协调节点和数据节点,其中,数据节点用于存储数据表中的数据,协调节点作为客户端和数据节点之间通信的桥梁,用于临时性存储客户端和数据节点所发送的数据,并在客户端和数据节点之间传递数据。在分布式数据库系统中,数据的存储通常采用非共享体系(sharenothing)的数据结构,在非共享体系的数据结构下,数据表中的数据以行为单位分布在各个数据节点中,在各个数据节点中数据表中的数据可以以行为单位进行存储,还可以以列为单位进行存储。基于分布式数据库系统中非共享体系的数据结构,分布式数据库所采用的将两张数据表中的数据进行连接的方法,由于数据表分布在不同的数据节点,协调节点需要从数据节点中将两张表的数据都收集到本地,再在本地进行连接,由于传输的数据量较大故网络响应时间长,使得协调节点处理数据的连接较慢,并且要占用大量的协调节点的资源,业务性能较差。
技术实现思路
为了解决采用现有的数据表连接方法所导致的网络响应时间长、资源占用率较大、业务性能差的问题,本专利技术实施例提供了一种分布式数据库系统中的表连接方法及系统。所述技术方案如下:第一方面,本专利技术实施例提供了一种分布式数据库系统中的数据表连接方法,该分布式数据库系统包括数据节点和协调节点,该方法用于数据节点,包括:将协调节点发送的第一数据表中第一目标列的数据存储在本地存储器,该第一目标列为第一数据表中与其他数据表连接次数超过预设次数的列;接收协调节点发送的表连接请求,该表连接请求包括第一数据表的标识、第一目标列的标识、第二数据表的标识以及第二数据表的第二目标列的标识;根据表连接请求,从本地存储器中获取第一目标列及位于第二目标列上的第二数据;将第一目标列上的第一数据所在行的数据与第二数据所在行的数据进行连接,以得到连接结果,其中,第一数据为第一目标列上的任一数据,且第一数据与第二数据相同;向协调节点发送连接结果。在该过程中,每个数据节点无需将本地所存储的数据发送至协调节点,根据第一目标列及第二目标列上的数据,在本地即可对第一数据表中的数据和第二数据表中的数据进行连接,不仅减少了数据传输量从而缩短了网络响应时间,因而业务性能较佳,而且能减少对数据节点存储资源的占用。结合第一方面,在第一方面的第一种可能的实现方式中,该方法还包括:在第一数据表的分布列与第一目标列相异的情况下,数据节点接收协调节点发送的分布列的数据,该分布列为第一数据表的行标识所在的列;将分布列的数据存储在本地存储器。由于数据节点将分布列的数据与连接结果一同发送至协调节点,从而使得协调节点在对连接结果进行处理时,可根据该分布列查找到空洞行标识所在的数据节点,进而获取到空洞行标识所在行上的数据,以提高连接后的数据表的准确性。结合第一方面或第一方面的第一种实现方式,在第一方面的第二种可能的实现方式中,该方法还包括:接收协调节点发送的数据获取请求,该数据获取请求表示协调节点的整合数据表中存在空洞行,该整合数据表由协调节点对至少一个数据节点发送的连接结果整合得到,该数据获取请求包括空洞行标识;获取空洞行标识所在行上的数据;向协调节点发送空洞行标识所在行上的数据。数据节点通过将空洞行标识所在行上的数据发送至协调节点,使得协调节点可对整合数据表中空洞行进行填补,从而提高了连接后的数据表中的数据更加完整。第二方面,提供了一种分布式数据库系统中的表连接方法,该分布式数据库系统包括数据节点和协调节点,该方法用于协调节点,包括:从第一数据表中获取第一目标列,该第一目标列为与其他数据表连接次数超过预设次数的列;向数据节点发送第一目标列的数据;向数据节点发送表连接请求,该表连接请求包括第一数据表的标识、第一目标列的标识、第二数据表的标识以及第二数据表的第二目标列标识,该表连接请求用于触发数据节点返回对第一数据表和第二数据表中数据的连接结果;接收数据节点发送的连接结果。在该过程中,协调节点无需接收各个数据节点发送的数据,且无需对各个节点上的数据进行存储,不仅减少了数据传输量从而缩短了网络响应时间,因而业务性能较佳,而且能减少对协调节点存储资源的占用。结合第二方面,在第二方面的第一种可能的实现方式中,该方法还包括:在第一数据表的分布列与第一目标列相异的情况下,向数据节点发送分布列的数据,该分布列为第一数据表的行标识所在的列。通过向数据节点发送分布列的数据,从而在对连接结果进行处理时,可根据该分布列查找到空洞行标识所在的数据节点,进而获取到空洞行标识所在行上的数据,以提高连接后的数据表的准确性。结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第三种可能的实现方式中,该方法还包括:对至少一个数据节点发送的连接结果进行整合,以得到整合数据表;在整合数据表中存在空洞行的情况下,向空洞行对应的数据节点发送数据获取请求,该数据获取请求包括空洞行标识,空洞行标识是根据第一数据表的分布列确定的;接收空洞行对应的数据节点发送的空洞行标识所在行上的数据;将空洞行标识所在行上的数据添加到整合数据表中空洞行标识对应的行上,以得到新的数据表。通过接收数据节点发送的空洞行标识所在行的数据,可对整合数据表中空洞行进行填补,从而提高了连接后的数据表中的数据更加完整。第三方面,提供了一种分布式数据库系统中的表连接方法,该分布式数据库系统包括数据节点和协调节点,该方法用于数据节点,包括:将协调节点发送的第一数据表中第一目标行的数据存储在本地存储器,该第一目标行为第一数据表中与其他数据表连接次数超过预设次数的行;接收协调节点发送的表连接请求,该表连接请求包括第一数据表的标识、第一目标行的标识、第二数据表的标识以及第二数据表的第二目标行的标识;根据表连接请求,从本地存储存储器中获取第一目标行及位于第二目标行上的第二数据;将第一目标行上的第一数据所在列的数据与第二数据所在列的数据进行连接,以得到连接结果,其中,第一数据为第一目标行上的任一数据,且第一数据与第二数据相同;向协调节点发送连接结果。在该过程中,每个数据节点无需将本地所存储的数据发送至协调节点,根据第一目标行及第二目标行上的数据,在本地即可对第一数据表中的数据和第二数据表中的数据进行连接,不仅减少了数据传输量从而缩短了网络响应时间,因而业务性能较佳,而且能减少对数据节点存储资源的占用。结合第三方面,在第三方面的第一种可能的实现方式中,该方法还包括:在第一数据表的分布行与第一目标行相异的情况下,接收协调节点发送的分布行的数据,该分布行为第一数据表的列标识所在的行;将分布行的数据存储在本地存储器。由于分布行也与连接结果一同发送至协调节点,从而使得协调节点在对连接结果进行处理时,可根据该分布行查找到空洞列标识所在的数据节点,进而获取到空洞列标识所在列上的数据,以提高连接后的数据表的准确性。结合第三方面或第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,该方法还包括:接收协调节点发送的数据获取请求,该数据获取请求表示协调节点的整合数据表中存在空洞列,该整合数据表由协调节点对至少一个数据本文档来自技高网...
分布式数据库系统中的表连接方法及分布式数据库系统

【技术保护点】
一种分布式数据库系统中的表连接方法,所述分布式数据库系统包括数据节点和协调节点,其特征在于,所述方法用于所述数据节点,所述方法包括:将所述协调节点发送的第一数据表中第一目标列的数据存储在本地存储器,所述第一目标列为所述第一数据表中与其他数据表连接次数超过预设次数的列;接收所述协调节点发送的表连接请求,所述表连接请求包括所述第一数据表的标识、所述第一目标列的标识、第二数据表的标识以及第二数据表的第二目标列的标识;根据所述表连接请求,从所述本地存储器中获取所述第一目标列及位于所述第二目标列上的第二数据;将第一目标列上的第一数据所在行的数据与所述第二数据所在行的数据进行连接,以得到连接结果,其中,所述第一数据为所述第一目标列上的任一数据,且所述第一数据与所述第二数据相同;向所述协调节点发送所述连接结果。

【技术特征摘要】
1.一种分布式数据库系统中的表连接方法,所述分布式数据库系统包括数据节点和协调节点,其特征在于,所述方法用于所述数据节点,所述方法包括:将所述协调节点发送的第一数据表中第一目标列的数据存储在本地存储器,所述第一目标列为所述第一数据表中与其他数据表连接次数超过预设次数的列;接收所述协调节点发送的表连接请求,所述表连接请求包括所述第一数据表的标识、所述第一目标列的标识、第二数据表的标识以及第二数据表的第二目标列的标识;根据所述表连接请求,从所述本地存储器中获取所述第一目标列及位于所述第二目标列上的第二数据;将第一目标列上的第一数据所在行的数据与所述第二数据所在行的数据进行连接,以得到连接结果,其中,所述第一数据为所述第一目标列上的任一数据,且所述第一数据与所述第二数据相同;向所述协调节点发送所述连接结果。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在第一数据表的分布列与所述第一目标列相异的情况下,接收所述协调节点发送的所述分布列的数据,所述分布列为所述第一数据表的行标识所在的列;将所述分布列的数据存储在本地存储器。3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:接收所述协调节点发送的数据获取请求,所述数据获取请求表示所述协调节点的整合数据表中存在空洞行,所述整合数据表由所述协调节点对至少一个数据节点发送的连接结果整合得到,所述数据获取请求包括空洞行标识;获取所述空洞行标识所在行上的数据;向所述协调节点发送所述空洞行标识所在行上的数据。4.一种分布式数据库系统中的表连接方法,所述分布式数据库系统包括数据节点和协调节点,其特征在于,所述方法用于所述协调节点,所述方法包括:从第一数据表中获取第一目标列,所述第一目标列为与其他数据表连接次数超过预设次数的列;向所述数据节点发送所述第一目标列的数据;向所述数据节点发送表连接请求,所述表连接请求包括所述第一数据表的标识、所述第一目标列的标识、第二数据表的标识以及第二数据表的第二目标列标识,所述表连接请求用于触发所述数据节点返回对所述第一数据表和所述第二数据表中数据的连接结果;接收所述数据节点发送的所述连接结果。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:在第一数据表的分布列与所述第一目标列相异的情况下,向所述数据节点发送所述分布列的数据,所述分布列为所述第一数据表的行标识所在的列。6.根据权利要求4或5所述的方法,其特征在于,所述方法还包括:对至少一个数据节点发送的连接结果进行整合,以得到整合数据表;在所述整合数据表中存在空洞行的情况下,向所述空洞行对应的数据节点发送数据获取请求,所述数据获取请求包括空洞行标识,所述空洞行标识是根据所述第一数据表的分布列确定的;接收所述空洞行对应的数据节点发送的所述空洞行标识所在行上的数据;将所述空洞行标识所在行上的数据添加到所述整合数据表中所述空洞行标识对应的行上,以得到新的数据表。7.一种分布式数据库系统中的表连接方法,所述分布式数据库系统包括数据节点和协调节点,其特征在于,所述方法用于所述数据节点,所述方法包括:将所述协调节点发送的第一数据表中第一目标行的数据存储在本地存储器,所述第一目标行为所述第一数据表中与其他数据表连接次数超过预设次数的行;接收所述协调节点发送的表连接请求,所述表连接请求包括所述第一数据表的标识、所述第一目标行的标识、第二数据表的标识以及第二数据表的第二目标行的标识;根据所述表连接请求,从所述本地存储存储器中获取所述第一目标行及位于所述第二目标行上的第二数据;将第一目标行上的第一数据所在列的数据与所述第二数据所在列的数据进行连接,以得到连接结果,其中,所述第一数据为所述第一目标行上的任一数据,且所述第一数据与所述第二数据相同;向所述协调节点发送所述连接结果。8.根据权利要求7所述的方法,其特征在于,所述方法还包括:在第一数据表的分布行与所述第一目标行相异的情况下,接收所述协调节点发送的所述分布行的数据,所述分布行为所述第一数据表的行标识所在的行;将所述分布行的数据存储在本地存储器。9.根据权利要求7或8所述的方法,其特征在于,所述方法还包括:接收所述协调节点发送的数据获取请求,所述数据获取请求表示所述协调节点的整合数据表中存在空洞列,所述整合数据表由所述协调节点对至少一个数据节点发送的连接结果整合得到,所述数据获取请求包括空洞列标识;获取所述空洞列标识所在列上的数据;向所述协调节点发送所述空洞列标识所在列上的数据。10.一种数据节点,所述数据节点位于分布式数据库系统中,所述分布式数据库系统包括所述数据节点和协调节点,其特征在于,所述数据节点包括:存储模块,用于将所述协调节点发送的第一数据表中第一目标列的数据存储在本地存储器,所述第一目标列为所述第一数据表中与其他数据表连接次数超过预设次数的列;接收模块,用于接收所述协调节点发送的表连接请求,所述表连接请求包括所述第一数据表的标识、所述第一目标列的标识、第二数据表的标识以及第二数据表的第二目标列的标识;获取模块,用于根据所述表连接请求,从本地存储器中获取所述第一目标列及位于所述第二目标列上的数据;连接模块,用于将第一目标列上的第一数据所在行的数据与所述第二数据所在行的数据进行连接,以得到连接结果,其中,所述第一数据为所述第一目标列上的任一数据,且所述第一数据与所述第二数据相同;发送模块,用于向所述协调节点发送所述连接结果。11.根据权利要求10所述的数据节点,其特征在于,所述接收模块,还用于在第一数据表的分布列与所述第一目标列相异的情况下,接收所述协调节点发送的所述分布列的数据,所述分布列为所述第一数据表的行标识所在的列;相应的,所述存储模块,还用于将所述分布列的数据存储在本地存储器。12.根据权利要求10或11所述的数据节点,其特征在于,所述接收模块,还用于接收所述协调节点发送的数据获取请求,所述数据获取请求表示所述协调节点的整合数据表中存在空洞行,所述整合数据表由所述协调节点对至少一个数据节点发送的连接结果整合得到,所述数据获取请求包括空洞行标识;所述获取模块,还用于获取所述空洞行标识所在行上的数据;所述发送模块,还用于向所述协调节点发送所述空洞行标识所在行上的数据。13.一种协调节点,所述协调节点位于分布式数据库系统中,所述分布式数据库系统包括数据节点和所述协调节点,其特征在于,所述协调节点包括:获取模块,用于从第一数据表中获取第一目标列,所述第一目标列为与其他数据表连接次数超过预设次数的列;发送模块,用于向所述数据节点发送所述第一目标列的数据;向所述数据节点发送表连接请求,所述表连接请求包括所述第一数据表的标识、所述第一目标列的标识、第二数据表的标识、第二数据表的第二目标列的标识,所述表连接请求用于触发所述数据节点返回对所述第一数据表和所述第二数据表中数据的连接结果;接收模块,用于接收所述数据节点发送的所述连接结果。14.根据权利要求13所述的协调节点,其特征在于,所述发送模块,还用于在第一数据表的分布列与所述第一目标列相异的情况下,向所述数据节点发送所述分布列的数据,所述分布列为所述第一数据表的行标识所在的列。15.根据权利要求13或14所述的协调节点,其特征在于,所述协调节点还包括:整合模块,用于对至少一个数据节点发送的连接结果进行整合,以得到整合数据表;所述发送模块,还用于在所述整合数据表中存在空洞行的情况下,向所述数据节点发送数据获取请求,所述数据获取请求包括空洞行标识,所述空洞行标识是根据所述第一数据表的分布列确定的;所述接收模块,还用于接收所述数据节点发送的所述空洞行标识所在行上的数据;添加模块,用于将所述空洞行标识所在行上的数据添加到所述整合数据表中所述空洞行标识对应的行上,以得到新的数据表。16.一种数据节点,所述数据节点位于分布式数据库系统中,所述分布式数据库系统包括所述数据节点和协调节点,其特征在于,所述数据节点包括:存储模块,用于将所述协调节点发送的第一数据表中第一目标行的数据存储在本地存储器,所述第一目标行为所述第一数据表中与其他数据表连接次数超过预设次数的行;接收模块,用于接收所述协调节点发送的表连接请求,所述表连接请求包括所述第一数据表的标识、所述第一目标行的标识、第二数据表的标识以及第二数据表的第二目标行的标识;获取模块,用于根据所述表连接请求,从所述本地存储器中获取所述第一目标行及位于所述第二目标行上的数据;连接模块,用于将第一目标行上的第一数据所在列的数据与所述第二数据所在列的数据进行连接,以得到连接结果,其中,所述第一数据为所述第一目标行上的任一数据,且所述第一数据与所述第二数据相同;发送模块,用于向所述协调节点发送所述连接结果。17.根据权利要求16所述的数据节点,其特征在于,所述接收模块,还用于在第一数据表的分布行与所述第一目标行相异的情况下,接收所述协调节点发送的所述分布行的数据,所述分布行为所述第一数据表的行标识所在的行;所述存储模块,还用于将所述分布行的数据存储在本地存储器。18.根据权利要求16或17所述的数据节点,其特征在于,所述接收模块,还用于接收所述协调节点发送的数据获取请求,所述数据获取请求表示所述协调节点的整合数据表中存在空洞列,所述整合数据表由所述协调节点对至少一个数据节点发送的连接结果整合得到,所述数据获取请求包括空洞列标识;所述获取模块,还用于获取所述空洞列标识所在列上的数据;所述发送模块...

【专利技术属性】
技术研发人员:张国强黄琳孙东旺
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1