CN110019360A - 一种数据处理方法及装置 - Google Patents

一种数据处理方法及装置 Download PDF

Info

Publication number
CN110019360A
CN110019360A CN201711025417.3A CN201711025417A CN110019360A CN 110019360 A CN110019360 A CN 110019360A CN 201711025417 A CN201711025417 A CN 201711025417A CN 110019360 A CN110019360 A CN 110019360A
Authority
CN
China
Prior art keywords
hash table
hash
full dose
data processing
data
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.)
Pending
Application number
CN201711025417.3A
Other languages
English (en)
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.)
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201711025417.3A priority Critical patent/CN110019360A/zh
Publication of CN110019360A publication Critical patent/CN110019360A/zh
Pending legal-status Critical Current

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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • 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
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • G06F16/2456Join operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本文提供一种数据处理方法及装置,所述数据处理方法可以包括:通过扫描内表数据生成第一哈希表;广播所述第一哈希表;获取全量哈希表,所述全量哈希表由所述第一哈希表合并得到;将所述全量哈希表与外表进行哈希连接。本申请能够在join key与分布键不一致且内表、外表都不是复制表的情况下,有效提高哈希连接的执行效率。

Description

一种数据处理方法及装置
技术领域
本发明涉及分布式计算领域,尤其涉及一种数据处理方法及装置。
背景技术
哈希连接(Hash Join)是一种连接(join)的执行方式,因为hash join的执行方式能最大程度的利用MPP架构的数据分布特点,使得在大多数情况下Hash join在大规模并行处理计算机(MPP,Massive Parallel Processor)架构数据库下的执行性能都优于其他两种Join执行方法(即,嵌套循环(Nest loop),排序合并(sort merge))。
目前,Hash join执行方法中,当join key与分布键不一致,且内表、外表都不是复制表的情况下,要保证连接结果的正确,需要将每个计算节点的数据按照连接谓词(joinkey)进行重分布,然后再执行哈希连接操作。这是Hash join最为普遍的一种执行场景。然而,通过多个计算节点并行的方式执行数据重分布,在网络上传输的数据总量必然会大幅增加,这不仅会降低哈希连接的执行效率,而且会造成网络带宽资源的需求量增加,进而占用大量网络带宽资源。
发明内容
本申请提供一种数据处理方法及装置,能够在join key与分布键不一致且内表、外表都不是复制表的情况下,有效提高哈希连接的执行效率。
本申请采用如下技术方案。
一种数据处理方法,包括:
通过扫描本地的内表数据生成第一哈希表;
广播所述第一哈希表,以便其他计算节点基于所述第一哈希表得到第二哈希表,所述第二哈希表至少由所述第一哈希表合并得到。
其中,所述方法还包括:将所述第一哈希表压缩;所述广播所述第一哈希表,包括:广播所述压缩后的第一哈希表。
其中,所述广播所述第一哈希表,包括如下之一:向除当前计算节点之外的计算节点广播所述第一哈希表;向目标计算节点广播所述第一哈希表。
另一种数据处理方法,包括:获取全量哈希表,所述全量哈希表至少由第一哈希表合并得到,所述第一哈希表通过扫描计算节点的本地内表数据生成;将所述全量哈希表与外表进行哈希连接。
其中,所述获取全量哈希表包括如下之一:接收来自其他计算节点的第一哈希表,将自身得到的第一哈希表与所述来自其他计算节点的第一哈希表合并,得到所述全量哈希表;接收来自目标计算节点的所述全量哈希表。
其中,所述方法还包括:在接收到来自其他计算节点的压缩的第一哈希表时,在所述合并之前将所述压缩的第一哈希表解压缩。
其中,所述将所述全量哈希表与外表进行哈希连接,包括:根据来自协调节点的通知,将所述外表的部分数据进行分发,以便通过其他计算节点执行所述外表的部分数据与所述全量哈希表的哈希连接操作。
其中,所述将所述全量哈希表与外表进行哈希连接,包括:接收来自其他计算节点的外表数据,并将所述外表数据与所述全量哈希表进行哈希连接操作。
又一种数据处理方法,包括:
通过扫描内表数据生成第一哈希表;
广播所述第一哈希表;
获取全量哈希表,所述全量哈希表由所述第一哈希表合并得到;
将所述全量哈希表与外表进行哈希连接。
其中,所述方法还包括:将所述第一哈希表压缩;所述广播所述第一哈希表,包括:广播所述压缩后的第一哈希表。
其中,所述广播所述第一哈希表,包括如下之一:
向除当前计算节点之外的计算节点广播所述第一哈希表;
向目标计算节点广播所述第一哈希表,以便所述目标计算节点基于所述第一哈希表得到所述全量哈希表或所述全量哈希表。
其中,所述获取全量哈希表,包括如下之一:
接收来自其他计算节点的第一哈希表,将本地的所述第一哈希表与所述来自其他计算节点的第一哈希表合并,得到所述全量哈希表;
接收来自目标计算节点的全量哈希表。
其中,所述方法还包括:在接收到来自其他计算节点的压缩的第一哈希表时,在所述合并之前将所述压缩的第一哈希表解压缩。
其中,所述将所述全量哈希表与外表进行哈希连接,包括:根据来自协调节点的通知,将所述外表的部分数据进行分发。
其中,所述根据来自协调节点的通知,将所述外表的部分数据进行分发,包括:接收来自协调节点的闲队列信息,所述闲队列信息包含当前处于闲状态的计算节点的地址;根据所述闲队列信息,将所述外表中的部分数据分发给所述当前处于闲状态的计算节点。
其中,所述根据来自协调节点的通知,将所述外表的部分数据进行分发,包括:接收来自所述协调节点的分配指令;将所述外表中的部分数据分发给所述分配指令指示的计算节点。
其中,所述方法还包括:实时向协调节点反馈用于指示当前忙闲状态的消息,所述消息为忙信号或闲信号,以便所述协调节点实时获知当前计算节点的忙闲状态。
其中,所述将所述全量哈希表与外表进行哈希连接,包括:接收来自其他计算节点的外表数据;将所述来自其他计算节点的外表数据与所述全量哈希表进行哈希连接操作。
一种数据处理装置,包括:
生成模块,通过扫描本地的内表数据生成第一哈希表;
广播模块,广播所述第一哈希表,以便其他计算节点基于所述第一哈希表得到第二哈希表,所述第二哈希表至少由所述第一哈希表合并得到。
一种数据处理装置,包括:
存储有计算机程序的存储器;
处理器,配置为读取所述计算机程序以执行上述一种数据处理方法的操作。
一种计算机存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述一种数据处理方法的步骤。
一种数据处理装置,包括:
获取模块,用于获取全量哈希表,所述全量哈希表由第一哈希表合并得到,所述第一哈希表通过扫描计算节点的本地内表数据生成;
操作模块,用于将所述全量哈希表与外表进行哈希连接。
一种数据处理装置,包括:
存储有计算机程序的存储器;
处理器,配置为读取所述计算机程序以执行上述另一种数据处理方法的操作。
一种计算机存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述另一种所述数据处理方法的步骤。
一种数据处理装置,包括:
生成模块,用于通过扫描内表数据生成第一哈希表;
广播模块,用于广播所述第一哈希表;
获取模块,用于获取全量哈希表,所述全量哈希表由第一哈希表合并得到;
操作模块,用于将所述全量哈希表与外表进行哈希连接。
一种数据处理装置,包括:
存储有计算机程序的存储器;
处理器,配置为读取所述计算机程序以执行上述又一种数据处理方法的操作。
一种计算机存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述又一种数据处理方法的步骤。
本申请包括以下优点:
本申请至少一个实施例中,传输的是各计算节点利用本地内表的数据生成的局部哈希表,不需要在各计算节点之间执行数据重分布,相对于相关技术的方案,大大减少了计算节点之间传输的数据总量,不仅对网络带宽的要求更低,而且能够提升计算节点之间的传输效率。
本申请至少一个实施例中,通过在广播之前对局部哈希表进行压缩,进一步减少了需在网络上传输数据的总量,从而进一步降低对网络带宽的要求,并同时提升各计算节点之间数据传输的效率。
本申请至少一个实施例中,各计算节点可以使用全量哈希表直接进行哈希连接操作,不需要做外表在join key上的数据重分布,从而大大减小系统开销,同时降低了网络传输数据的压力。
本申请至少一个实施例中,可以使用全量哈希表执行哈希连接操作,执行方式更加灵活,有数据倾斜存在时可以将数据量大的计算节点上的数据发送到其它计算节点执行,利用其他计算节点的冗余资源完成哈希连接操作,能够最大程度利用各计算节点的计算能力完成哈希连接的执行。
本实施例的方法,提升了计算节点之间数据的传输效率,并且能够最大程度利用各计算节点的计算能力并行完成哈希连接的执行,从而有效提高升哈希连接的执行效率,同时节省了计算资源和网络带宽资源。
当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
图1是实施例一的一种数据处理方法的流程图;
图2是实施例一的又一种数据处理方法的流程图;
图3是实施例一的再一种数据处理方法的流程图;
图4是实施例一的例子中MPP系统架构示意图;
图5是实施例一的例子中MPP系统架构下执行哈希连接的过程示意图;
图6是实施例一的例子中一个计算节点的哈希连接查询计划树的示例图;
图7是实施例一的例子中小范围树形全量哈希表生成方式的示例图;
图8是实施例一的例子中各计算节点向协调节点反馈消息的流程示意图;
图9是实施例一中的例子中协调节点监控各个计算节点工作状态的流程示意图;
图10是实施例二的一种数据处理装置的组成结构示意图;
图11是实施例二的又一种数据处理装置的组成结构示意图;
图12是实施例二的再一种数据处理装置的组成结构示意图;
图13是实施例三的数据处理装置的示例性结构图。
具体实施方式
下面将结合附图及实施例对本申请的技术方案进行更详细的说明。
需要说明的是,如果不冲突,本申请实施例以及实施例中的各个特征可以相互结合,均在本申请的保护范围之内。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在一种配置中,进行对象访问的计算设备可包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存(memory)。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。内存可能包括模块1,模块2,……,模块N(N为大于2的整数)。
计算机可读介质包括永久性和非永久性、可移动和非可移动存储介质,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM),快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本文术语含义如下:
MPP架构数据库:一种能够处理大规模数据的并行处理数据库架构;
协调节点(Coordinator):MPP架构数据库中的主控节点,负责将数据与任务分配给计算节点,并汇总计算节点的计算结果,最终返回结果给用户;
计算节点(Computing node):MPP架构数据库中真正执行计算任务的节点;
哈希连接(Hash join):一种使用哈希(Hash)方式执行关系代数中连接的方法;
分布键(Distribution key):用于指示数据库的表中数据(即数据记录)存储在哪个计算节点,即MPP架构数据库的表中数据(即数据记录)在实际存储时需要根据分布键来确定该数据(记录)最终存放在哪个计算节点上。
Join key:用来确定数据库中的两个表以哪一个或几个列进行连接。
外表:在哈希连接中被选中用来扫描取出每一条数据与由内表所生成的哈希表进行连接探测的数据表(数据来源)。
内表:在哈希连接中被选中用来扫描生成哈希表的数据表(数据来源)。
标准的哈希连接方法必须选择一个表(通常是包含记录少的小表)生成哈希表,这个表即为内表。例如:A哈希连接B,如果选择A来生成哈希表,则A便是这次哈希连接的内表,那么B中每一条记录就会探测由A生成的哈希表来确定是否有连接结果,这里B表即为外表。
相关技术中,当连接谓词(join key)与分布键不一致,且内表、外表都不是复制表时,需要将每个计算节点的数据按照join key进行重分布,然后再执行哈希连接操作。相关技术中,有两种方式来完成上述重分布:第一种,将内表的数据在集群中广播,这样所有计算节点上构建的哈希表都是全量的。第二种,内表数据与外表数据都按照join key在所有计算节点中重新分布,然后再执行Hash join。其中,内表与外表都需要按照join key将本地数据重新分发到集群的各个计算节点。
实际应用中,在内表相对较小时才可使用第一种广播内表数据的方式,否则对于网络带宽的冲击比较大。第二种方式相对第一种广播模式,虽然对网络带宽的要求相对较低,但仍需要对内表、外表都进行数据重分布,依然需要很大额外开销。上述两种方式下,计算节点之间需要发送的是具体的数据(记录),通过多个计算节点并行的方式执行数据重分布,需要在网络上传输的数据总量必然会大幅增加,而这不仅会降低哈希连接的执行效率,而且需要增强计算节点之间的网络连接,这样又会增加网络带宽需求的压力。
在执行重分布的过程中,需要把一个或一些join key相关的数据放在同一个计算节点上,如果这个或这些join key相关的数据量比较大,则很容易产生数据倾斜的问题。而即便join key与分布键一致,不需要数据重分布,用来过滤筛选所需数据的条件谓词的存在也会导致数据倾斜。
产生数据倾斜时,有些计算节点上数据量会比较大,有些计算节点数据量会比较小,而这必然会导致各个计算节点的执行时间不对等,数据量比较大的计算节点执行时间必然会长于其他计算节点,进而导致哈希连接的整体执行时间被延长,降低了哈希连接的执行效率;同时,由于重分布之后不能再转移数据,无法通过调用闲状态的计算节点来协助这些数据量比较大的计算节点执行哈希连接,换言之数据倾斜时无法利用冗余的计算资源进行加速。
本申请的数据处理方法,在join key与分布键不一致且内表、外表都不是复制表时,不需要执行数据的重分布,不仅对网络带宽的要求更低,而且能够避免数据倾斜,还能有效利用各个计算节点的冗余资源进行加速,从而有效提升了相应场景下哈希连接的执行效率,同时节省了计算资源和网络带宽资源。
实施例一
一种数据处理方法,如图1所示,可以包括步骤S110~S140。
S110,通过扫描内表数据生成第一哈希表;
S120,广播所述第一哈希表;
S130,获取全量哈希表,所述全量哈希表至少由所述第一哈希表合并得到;
S140,将所述全量哈希表与外表进行哈希连接。
本实施例的方法,各计算节点之间传输的是利用本地内表的数据生成的局部哈希表,不需要在各计算节点之间执行数据重分布,可大大减少计算节点之间传输的数据总量,不仅对网络带宽的要求更低,而且能够提升计算节点之间的传输效率。
一种实现方式中,所述方法还可以包括:将所述第一哈希表压缩;所述广播所述第一哈希表,包括:广播所述压缩后的第一哈希表。如此,通过将局部哈希表压缩之后再广播,可进一步减少需要在网络上传输数据的总量,从而进一步降低对网络带宽的要求,并同时提升各计算节点之间数据传输的效率。
本实施例中,所述广播所述第一哈希表,可以包括如下之一:
1)向除当前计算节点之外的计算节点广播所述第一哈希表;此方式可使各计算节点上都具有全部的第一哈希表,便于各计算节点自己生成全量哈希表,执行方式更灵活。
2)向目标计算节点广播所述第一哈希表,以便所述目标计算节点基于所述第一哈希表得到所述全量哈希表或所述全量哈希表。此方式下,可指定一个或几个计算节点上来收集全部的第一哈希表并得到全量哈希表,有利于进一步减少网络数据传输的总量。
本实施例中,基于第一哈希表形成全量哈希表的方式可以有多种。一种方式中,可以直接将各计算节点上的第一哈希表直接合并得到全量哈希表。另一种实现方式中,可以先将部分计算节点上的局部哈希表合并得到中量哈希表,再将各个中量哈希表合并得到全量哈希表,此方式有助于减小同一时间的网络数据传输量。这里,将第一哈希表合并的过程可以是:将第一哈希表拼接并重新计算hashkey。换言之,本实施例中,获得全量哈希表的方式可以有多种。
一种实现方式中,所述获取全量哈希表可以包括:接收来自其他计算节点的第一哈希表,将自身得到的第一哈希表与所述来自其他计算节点的第一哈希表合并,得到所述全量哈希表。采用该方式,一方面计算节点可以利用本地冗余的计算资源来执行全量哈希表的生成等操作,另一方面多个计算节点可并行加速执行,不仅可以减少网络数据传输的总量,在大规模集群下可以降低对网络带宽的冲击,而且可以执行效率更高。
另一种实现方式中,所述获取全量哈希表可以包括:接收来自目标计算节点的所述全量哈希表。具体来讲,各计算节点可向目标计算节点广播所述压缩后的局部哈希表,以便所述目标计算节点(比如,采用定点归并的方式)基于所述局部哈希表生成所述全量哈希表,目标计算节点得到全量哈希表之后将全量哈希表发送给各计算节点,各计算节点接收来自目标计算节点的所述全量哈希表即可获取到全量哈希表。采用该方式,不需要每个计算节点都自己生成全量哈希表,只需要由指定的一个或几个计算节点收集局部哈希表并生成全量哈希表再分发给各个计算节点即可,这样,可以减少网络数据传输的总量,在大规模集群下可以降低对网络带宽的冲击。
实际应用中,还可以采用其他方式来获得全量哈希表,对此,本文不作限制。
这里,在接收到来自其他计算节点的压缩的第一哈希表时,可以在所述合并之前将所述压缩的第一哈希表解压缩,以便利用这些第一哈希表得到全量哈希表。
本实施例中,各计算节点可直接使用全量哈希表执行哈希连接操作,哈希连接的执行方式更加灵活,数据倾斜存在时可以将数据量大的计算节点上的数据分发到其它计算节点,利用其他计算节点的冗余资源完成哈希连接操作,这样,可最大程度利用各计算节点的计算能力完成哈希连接的执行。
实际应用中,外表的数据量庞大,如果需要做外表在join key上的数据重分布,则必然需要相当大的额外开销,大量消耗系统资源,也会对网络带宽有更高的要求。本实施例中,各个计算节点使用全量哈希表,因而每个计算节点都可以直接进行哈希连接操作,不再需要做外表在join key上的数据重分布,从而大大减小了系统开销,同时降低了网络传输数据的压力。
本实施例中,在将所述全量哈希表与外表进行哈希连接的过程中,计算节点可以在自己的数据量偏大时将部分外表数据分给其他计算节点。换言之,所述将所述全量哈希表与外表进行哈希连接,可以包括:根据来自协调节点的通知,将所述外表的部分数据进行分发。
一种实现方式中,所述根据来自协调节点的通知,将所述外表的部分数据进行分发,可以包括:接收来自协调节点的闲队列信息,所述闲队列信息包含当前处于闲状态的计算节点的地址;根据所述闲队列信息,将所述外表中的部分数据分发给所述当前处于闲状态的计算节点。通过该方式,各个计算节点可以根据自身数据量,从闲队列中选出一个或多个其他计算节点,将外表部分数据分配给这些计算节点。选择计算节点时可以采用随机方式,也可以采用相对传输速率最高的计算节点,对此,本文不作限制。
这里,上述方法还可以包括:实时向协调节点反馈用于指示当前忙闲状态的消息,所述消息为忙信号或闲信号,以便所述协调节点实时获知当前计算节点的忙闲状态。这样,协调节点可以根据各个计算节点的忙闲状态实时调整各个计算节点上的数据量,使得各个计算节点上数据量相对均衡,避免数据倾斜,确保各个计算节点之间哈希连接的执行时长相当,从而提高整个哈希连接任务的执行效率。
另一种实现方式中,所述根据来自协调节点的通知,将所述外表的部分数据进行分发,可以包括:接收来自所述协调节点的分配指令;将所述外表中的部分数据分发给所述分配指令指示的计算节点。通过该方式,由协调节点根据各个计算节点的工作状态及其数据量,从闲队列中选出一个或多个其他计算节点并告知各个计算节点,计算节点按照协调节点的指示将外表部分数据分配给指定的计算节点。协调节点可以采用随机方式选择计算节点,也可以基于各计算节点之间的传输速率进行选择,对此,本文不作限制。
除了上述两种方式之外,计算节点还可以采用其他方式将自身的部分外表数据分配给正处于闲状态的其他计算节点,对此,本文不作限制。
本实施例中,在将所述全量哈希表与外表进行哈希连接之后,计算节点还可以在自身处于闲状态时继续之前其他计算节点上的哈希连接操作。换言之,本实施例中所述将所述全量哈希表与外表进行哈希连接,可以包括:接收来自其他计算节点的外表数据;将所述来自其他计算节点的外表数据与所述全量哈希表进行哈希连接操作。如此,计算节点可以利用本地冗余的计算资源来执行数据量较大的计算节点上部分外表数据的哈希连接操作,一方面提升了资源利用率,另一方面也有利于提高整个哈希连接任务的执行效率。
实际应用中,上述数据处理方法可通过MPP架构数据库实现。比如,上述数据处理方法中,步骤S110至步骤S140可在MPP架构数据库的各计算节点上分别执行。需要说明的是,上述数据处理方法中,基于第一哈希表得到全量哈希表的过程可以通过MPP架构数据库的某个或某些计算节点(比如,目标计算节点,该目标计算节点可收集其他计算节点上的第一哈希表来得到第二哈希表)执行。
本实施例还可提供如下两种数据处理方法。
一种数据处理方法,如图2所示,包括步骤S210~S220。
S210,通过扫描本地的内表数据生成第一哈希表;
S220,广播所述第一哈希表,以便其他计算节点基于所述第一哈希表得到第二哈希表,所述第二哈希表至少由所述第一哈希表合并得到。
一种实现方式中,还可以包括:将所述第一哈希表压缩;步骤S220中广播所述第一哈希表,可以包括:广播所述压缩后的第一哈希表。具体技术细节可参照上文,不再赘述。
一种实现方式中,所述广播所述第一哈希表,可以包括如下之一:1)向除当前计算节点之外的计算节点广播所述第一哈希表;2)向目标计算节点广播所述第一哈希表。这里,所述目标计算节点是指得到所述第二哈希表的计算节点。具体技术细节可参照上文,不再赘述。
另一种数据处理方法,如图3所示,可以包括步骤S310~S320。
S310,获取全量哈希表,所述全量哈希表至少由第一哈希表合并得到,所述第一哈希表通过扫描计算节点的本地内表数据生成;
S320,将所述全量哈希表与外表进行哈希连接。
一种实现方式中,步骤S310中所述获取全量哈希表可以包括如下之一:1)接收来自其他计算节点的第一哈希表,将自身生成的第一哈希表与所述来自其他计算节点的第一哈希表合并,得到所述全量哈希表;2)接收来自目标计算节点的全量哈希表。这里,还可以包括:在接收到来自其他计算节点的压缩的全量哈希表时,在所述合并之前将所述压缩的全量哈希表解压缩。具体技术细节可参照上文,不再赘述。
一种实现方式中,步骤S320中所述将所述全量哈希表与外表进行哈希连接,可以包括:根据来自协调节点的通知,将所述外表的部分数据进行分发,以便通过其他计算节点执行所述外表的部分数据与所述全量哈希表的哈希连接操作。具体技术细节可参照上文,不再赘述。
另一种实现方式中,步骤S320中所述将所述全量哈希表与外表进行哈希连接,可以包括:接收来自其他计算节点的外表数据,并将所述外表数据与所述全量哈希表进行哈希连接操作。具体技术细节可参照上文,不再赘述。
实际应用中,上述图2所示的数据处理方法可在MPP架构数据库中各计算节点分别执行,上述图3所示的数据处理方法可在MPP架构数据库中各计算节点分别执行。
需要说明的是,第一哈希表可以是局部哈希表,该局部哈希表是一个计算节点基于其本地的内表数据生成的,不需要与其他计算节点交换数据,使用计算节点的本地冗余计算资源即可实现。第二哈希表可以是全量哈希表,或者可以是多个局部哈希表合并得到的中量哈希表。这里,全量哈希表是基于所有计算节点的局部哈希表得到的哈希表,中量哈希表是指基于部分计算节点的局部哈希表合并得到的哈希表。比如,可以由一个计算节点收集所有计算节点的局部哈希表,再将所有计算节点的局部哈希表直接合并得到该全量哈希表;再比如,可以采用定点归并的方式将部分局部哈希表合并得到中量哈希表,再将中量哈希表合并得到全量哈希表。举例来说,可以将所有计算节点分成若干组,每个组包含至少两个计算节点,每个组中有一个计算节点收集该组中各计算节点的局部哈希表之后合并得到中量哈希表,再由一个计算节点收集各组的中量哈希表,将这些中量哈希表合并得到全量哈希表。除此之外,还可以采用其他方式形成第二哈希表,对此,本文不予限制。
下面用两个例子说明本实施例中各数据处理方法的具体实现方式。需要说明的是,下述各例子可相互结合,其他具体实现过程、执行流程中的步骤及其执行顺序可基于实际需要进行调整,本实施例方法的实现方式不限于此。
例子1
本例中,对本实施例数据处理方法的示例性执行环境进行说明。
本例中,本实施例数据处理方法可在如图4所示的大规模并行处理计算机(MPP,Massive Parallel Processor)系统中执行,完成该MPP系统的哈希连接执行操作,能最大程度的利用MPP系统架构的数据分布特点,大多数情况下本实施例数据处理方法在MPP系统架构下的哈希连接执行性能都优于其他连接(如,Nest loop、sort merge等)的执行方法。
如图4所示,MPP系统可以包含负责协调控制各个计算节点的协调节点、以及在协调节点的控制下完成计算任务的多个计算节点。其中,每个计算节点都包含有处理器(CPU)和内存,所述处理器可以通过读取所述内存中的数据及算法程序来执行计算任务,每个计算节点都连接有存储器,存储器负责存储数据。MPP系统在存贮数据时将数据尽可能的均匀分布到各个计算节点,在执行计算任务时,由协调节点根据数据分布情况协调控制各计算节点,由各个计算节点并行执行整个计算任务,因此具备高性能完成查询任务的能力。
例子2
本例中,对本实施例数据处理方法的示例性执行流程进行说明。
如图5所示,本例中数据处理方法的示例性执行过程可以包括:
步骤501,扫描内表;
步骤502,生成局部哈希表,并进行压缩;
这里,计算节点可以基于本地存储的数据生成所述局部哈希表。在生成局部哈希表的过程中,可以按照join key相似对数据进行排序,从而确保局部哈希表中数据尽可能按照join key分布,更便于哈希连接的执行。这里,生成局部哈希表的方式因数据库不同而不同,比如,可以通过数组方式、链表方式等生成局部哈希表。
这里,压缩是指将生成好的局部哈希表进行整体压缩。压缩的具体方式可以采用相关技术中常用的压缩方式,解压方式也可以采用相对应的解压方式,本文对于压缩的具体方式不作限制。
步骤503,广播压缩后的局部哈希表;
步骤504,获得全量哈希表;
步骤505,扫描外表,循环读入数据,对所述外表和全量哈希表做连接操作,直到所述外表中的数据全部处理完成。
图5中,虚线表示系统计算资源许可时的并行扫描。
例子3
本例中,对本实施例数据处理方法的另一示例性执行流程进行说明。
以如图6所示的哈希连接查询计划树为例,一个计算节点的哈希连接执行过程可以包括:
步骤1,开始执行哈希连接;
步骤2,开始扫描内表;
步骤3,扫描内表数据,返回内表中的一行数据;
步骤4,使用步骤3返回的数据,构建局部哈希表,并判断是否已经完成内表扫描?如果是,则继续步骤5,如果否,则返回步骤2;
步骤5,生成局部哈希表,并获得全量哈希表;
具体的,生成局部哈希表,对所述局部哈希表进行压缩后广播;接收其他计算节点广播的局部哈希表并解压;基于所有计算节点的局部哈希表,生成全量哈希表。这里,获得全量哈希表的具体方式可参照上文,不再赘述。
步骤6,开始扫描外表数据;
如果完成外表扫描则结束当前的哈希连接。
步骤7,读取一条外表数据;
步骤8,返回一条外表数据;
步骤9,在全量哈希表中匹配join key,进行连接操作,并重新进入步骤6;如果匹配成功,说明连接成功,返回该条外表数据;如果匹配失败,说明连接失败,丢弃该条外表数据。
例子4
本例子中,对本实施例数据处理方法中局部哈希表的生成过程进行说明。
本例中,计算节点可以基于本地存储的数据生成所述局部哈希表。在生成局部哈希表的过程中,可以按照join key相似对数据进行排序,从而确保局部哈希表中数据尽可能按照join key分布,更便于哈希连接的执行。这里,生成局部哈希表的方式因对应的数据库不同而不同,比如,可以通过数组方式、链表方式等生成局部哈希表。
一种实现方式中,计算节点可以按照连接字段将内表中的数据进行哈希连接以构建局部哈希表。MPP架构中每个计算节点都有具有同样的数据表名称和表结构,每个计算节点生成局部哈希表的方式相同。
比如,以MPP架构数据库中的计算节点1为例说明生成局部哈希表的过程。
计算节点1中存在如下两个内表:订单(order)表和顾客(Customer)表,分别如表1和表2所示。
表1
表2
假设,用户向MPP架构数据库提交了如下的查询请求A:
select
c_custkey,
o_orderdate,
o_shippriority
from
customer,
orders
where c_custkey=o_custkey;
MPP架构数据库的协调节点接收上述查询请求A,向MPP架构数据库中各计算节点下发相应的查询任务。计算节点1收到该查询任务之后,获知需要将订单表和顾客表按照custkey哈希连接,则计算节点1将上述订单表和顾客表按照custkey进行哈希连接构成如下表3所示的局部哈希表。其中,哈希键(hashkey)的值可通过相应的哈希算法计算得到,连接谓词即为订单表和顾客表中的custkey。
表3
MPP架构数据库中其他计算节点在收到上述查询任务之后也基于其内表构建相应的局部哈希表,其处理过程与上述计算节点1的处理过程类似。
例子5
本例中,对本实施例数据处理方法中全量哈希表的获得方式进行举例说明。
本例中,可以通过两种方式得到全量哈希表:1)每个计算节点都向其他计算节点广播自己的局部hash表,接收其他计算节点的局部hash表并生成全量hash表;2)定点归并(Merge)的方式:协调节点预先指定一个或一些计算节点来生成全量哈希表,向各个计算节点发送这些目标计算节点地址;各个计算节点根据协调节点的指令,向目标计算节点广播压缩后的局部哈希表,由指定的计算节点生成全量哈希表并返回给各个计算节点。
在一个实现方式中,对于局部hash表以广播方式生成全量hash表的模式,可以采取小范围树形全量hash生成的方式,来减少网络带宽的需要。如图7所示,实线代表归并方向,从下往上,虚线代表全量hash表分发方向。标号圆圈代表计算节点生成的局部哈希表,这里以9个计算节点为例,更大规模集群以此类推,以多少节点为单位进行归并,可以通过网络发送能力与计算节点的处理能力匹配来计算一个最佳值。如图7所示的示例中,全量哈希表生成的过程为:首先,计算节点1和计算节点2分别将自己的局部哈希表1、局部哈希表2发送给计算节点3,由计算节点3生成一个包含局部哈希表1、局部哈希表2、局部哈希表3的中量哈希表A;计算节点4、计算节点5、计算节点6同理归并到计算节点6,由计算节点6生成一个包含局部哈希表4、局部哈希表5、局部哈希表6的中量哈希表B;计算节点7、计算节点8、计算节点9归并到计算节点9,由计算节点9生成一个包含局部哈希表7、局部哈希表8、局部哈希表9的中量哈希表C;然后,计算节点3、计算节点6、计算节点9归并到计算节点9,由计算节点9生成一个包含中量哈希表A、中量哈希表B、中量哈希表C的全量哈希表D,那么全量哈希表D即为包含当前集群所有计算节点局部哈希表的全量哈希表;最后,计算节点9将全量哈希表D发送给计算节点3、计算节点6、计算节点7、计算节点8,计算节点3将全量哈希表D发送给计算节点1、计算节点2,计算节点6将全量哈希表D发送给计算节点4、计算节点5。这样,即可让每个计算节点上都能获得包含当前集群所有计算节点局部哈希表的全量哈希表,此方式图7所示的示例中,可以根据网络带宽,将局部哈希表广播的方式,改变为局部哈希表小范围分批次归并的方式,可以减少网络带宽即时的压力和网络数据传输总量。
例子6
本例子中,对MPP系统执行哈希连接的示例性实现方式进行说明。
本例中,MPP系统在哈希连接的执行过程中可以包括如图8和图9的并行处理过程。通过图8和图9所示的并行处理过程,协调节点可根据各个计算节点的忙闲状态实时调整各个计算节点上的数据量,一方面可避免数据倾斜,另一方面可加速MPP系统中整个哈希连接任务的执行过程。
如图8所示,各个计算节点向协调节点上报自身工作状态的过程可以包括:
步骤801,执行外表数据与全量哈希表的哈希连接操作;
步骤802,判断是否完成,即判断外表是否还有未执行哈希连接的数据?如果还有未执行哈希连接的数据,则返回步骤801,否则继续步骤803;
步骤803,启动网络接收数据,同时发送闲信号给协调节点;
步骤804,等待数据;
步骤805,是否收到来自协调节点的连接操作结束信号?如果是,则跳转至步骤809,否则继续步骤806;
步骤806,是否收到来自其他计算节点的外表数据?如果否,则返回步骤804,如果是则继续步骤807;
步骤807,判断接收的数据量是否达到接收上限值?如果否,则返回步骤801执行哈希连接操作;如果是,则继续步骤808;
步骤808,发送忙信号给协调节点,并返回步骤801。
这里,计算节点在网络接收只负责接收数据块,如果达到接收上限值,则可以停止接收,并发忙消息给协调节点。
本例中,协调节点可负责监控集群中各计算节点的忙闲状态,集群各计算节点在初始化时执行本地哈希连接操作时为工作状态,不是忙状态,也不是闲状态。协调节点一直运行,等待各个计算节点反馈消息,为每条查询的相应计算节点构建状态信息队列。
如图9所示,协调节点监控各个计算节点工作状态的流程可以包括:
步骤901,等待计算节点的消息;
步骤902,定时检查,是否收到消息?如果是,则继续步骤903,否则返回步骤901;
步骤903,判断收到的消息是否为计算节点发来的忙信号?如果是,则说明该计算节点当前已经拿到足够的数据正在处理,继续步骤904,
步骤904,将计算节点加入忙队列,从闲队列中移出,跳转至步骤909;
步骤905,判断收到的消息是否为计算节点发来的闲信号?如果是,则继续步骤907;否则,继续步骤906;
步骤906,消息错误,进行错误处理,并返回步骤901;
步骤907,将计算节点加入闲队列;
步骤908,判断是否所有计算节点均为闲状态?如果是,则继续步骤910,否则继续步骤909;
步骤909,发送更新后的闲队列消息给工作状态的计算节点;
步骤910,发送结束信号给所有计算节点,指示哈希连接操作执行完毕,并返回步骤901。
本实施例的方法,可以在集群中的每一个计算节点上都形成一份全量哈希表,使得外表(即探测表(Probe table))的扫描变得非常灵活,而且根据数据分布的特点,这种执行方式很容易解决数据倾斜的问题。
本实施例的方法,提升了计算节点之间数据的传输效率,并且能够最大程度利用各计算节点的计算能力并行完成哈希连接的执行,从而有效提高升哈希连接的执行效率,同时节省了计算资源和网络带宽资源。
实施例二
一种数据处理装置10,如图10所示,包括:
生成模块101,通过扫描本地的内表数据生成第一哈希表;
广播模块102,广播所述第一哈希表,以便其他计算节点基于所述第一哈希表得到第二哈希表,所述第二哈希表至少由所述第一哈希表合并得到。
一种实现方式中,数据处理装置10还可以包括:压缩模块103,用于将所述第一哈希表压缩;所述广播模块,具体可用于广播所述压缩后的第一哈希表。
另一种实现方式中,广播模块102具体可用于通过如下方式之一广播所述第一哈希表:1)向除当前计算节点之外的计算节点广播所述第一哈希表;2)向目标计算节点广播所述第一哈希表。
一种数据处理装置11,如图11所示,可以包括:
获取模块111,可用于获取全量哈希表,所述全量哈希表由第一哈希表合并得到,所述第一哈希表通过扫描计算节点的本地内表数据生成;
操作模块112,可用于将所述全量哈希表与外表进行哈希连接。
一种实现方式中,所述获取模块111,可用于采用如下之一的方式获取全量哈希表:1)接收来自其他计算节点的第一哈希表,将自身得到的第一哈希表与所述来自其他计算节点的第一哈希表合并,得到所述全量哈希表;2)接收来自目标计算节点的所述全量哈希表。
一种实现方式中,数据处理装置11还可包括:解压缩模块113,用于在所述获取模块111接收到来自其他计算节点的压缩的第一哈希表时,在合并之前将所述压缩的第一哈希表解压缩。
一种实现方式中,操作模块112,可用于将所述全量哈希表与外表进行哈希连接,包括:根据来自协调节点的通知,将所述外表的部分数据进行分发,以便通过其他计算节点执行所述外表的部分数据与所述全量哈希表的哈希连接操作。
一种实现方式中,操作模块112,可用于将所述全量哈希表与外表进行哈希连接,包括:接收来自其他计算节点的外表数据,并将所述外表数据与所述全量哈希表进行哈希连接操作。
一种实现方式中,上述数据处理装置11还可以包括:反馈模块114,用于实时向协调节点反馈用于指示当前忙闲状态的消息,所述消息为忙信号或闲信号,以便所述协调节点实时获知当前计算节点的忙闲状态。
如图12所示,本实施例还提供一种数据处理装置12,可以包括:上述的数据处理装置10和数据处理装置11。即,数据处理装置12可以包括:生成模块101、广播模块102、获取模块111以及操作模块112。
一种实现方式中,数据处理装置12还可以包括上述的压缩模块103、解压缩模块113。另一种实现方式中,数据处理装置12还可以包括上述的反馈模块114。
需要说明的是,本实施例的各数据处理装置中:
生成模块101负责基于计算节点本地的内部数据构建局部哈希表的部分,可以是软件、硬件或两者的结合。
压缩模块103负责对计算节点本地的局部哈希表进行压缩的部分,可以是软件、硬件或两者的结合。
广播模块102负责将局部哈希表发送给集群中所有其他计算节点或部分计算节点的部分,可以是软件、硬件或两者的结合。
获取模块111负责得到全量哈希表的部分,该全量哈希表是包含集群中所有计算节点上局部哈希表的全量哈希表,可以是软件、硬件或两者的结合。
操作模块112负责对将外表与全量哈希表进行哈希连接操作的部分,可以是软件、硬件或两者的结合。
解压缩模块113负责对计算节点本地的局部哈希表进行解压缩的部分,可以是软件、硬件或两者的结合。
反馈模块114负责将计算节点的忙闲状态上报至协调节点的部分,可以是软件、硬件或两者的结合。
本实施例的数据处理装置中各模块的操作分别对应于实施例一中方法的步骤,各模块操作的其它实现细节可参见实施例一。
实际应用中,上述各数据处理装置可设置于MPP架构数据库中的计算节点上或通过MPP架构数据库中的计算节点实现。
实施例三
一种数据处理装置,如图13所示,可包括:存储器131和处理器132;
存储有计算机程序的存储器131;
处理器132,配置为读取所述计算机程序以执行实施例一所述数据处理方法的操作。
一种实现方式中,处理器132,配置为读取所述计算机程序所执行的操作对应于实施例一中的步骤S110~S140;该程序所执行操作的其它细节可参见实施例一。
一种实现方式中,处理器132,配置为读取所述计算机程序所执行的操作对应于实施例一中的步骤S210~S220;该程序所执行操作的其它细节可参见实施例一。
一种实现方式中,处理器132,配置为读取所述计算机程序所执行的操作对应于实施例一中的步骤S310~S320;该程序所执行操作的其它细节可参见实施例一。
本实施例中,数据处理装置可通过MPP架构数据库中的计算节点实现。
实施例四
一种计算机存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现实施例一所述数据处理方法的步骤。
一种实现方式中,计算机程序在被处理器读取执行时,所执行的操作对应于实施例一中的步骤S110~S140;该程序所执行操作的其它细节可参见实施例一。
一种实现方式中,计算机程序在被处理器读取执行时,所执行的操作对应于实施例一中的步骤S210~S220;该程序所执行操作的其它细节可参见实施例一。
一种实现方式中,计算机程序在被处理器读取执行时,所执行的操作对应于实施例一中的步骤S310~S320;该程序所执行操作的其它细节可参见实施例一。
实际应用中,本实施例中的计算机存储介质可设置于MPP架构数据库的计算节点中,以实现实施例一所述方法。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请不限制于任何特定形式的硬件和软件的结合。
当然,本申请还可有其他多种实施例,在不背离本申请精神及其实质的情况下,熟悉本领域的技术人员当可根据本申请作出各种相应的改变和变形,但这些相应的改变和变形都应属于本申请的权利要求的保护范围。

Claims (27)

1.一种数据处理方法,包括:
通过扫描本地的内表数据生成第一哈希表;
广播所述第一哈希表,以便其他计算节点基于所述第一哈希表得到第二哈希表,所述第二哈希表至少由所述第一哈希表合并得到。
2.根据权利要求1所述的数据处理方法,其特征在于,
所述方法还包括:将所述第一哈希表压缩;
所述广播所述第一哈希表,包括:广播所述压缩后的第一哈希表。
3.根据权利要求1或2所述的数据处理方法,其特征在于,所述广播所述第一哈希表,包括如下之一:
向除当前计算节点之外的计算节点广播所述第一哈希表;
向目标计算节点广播所述第一哈希表。
4.一种数据处理方法,包括:
获取全量哈希表,所述全量哈希表至少由第一哈希表合并得到,所述第一哈希表通过扫描计算节点的本地内表数据生成;
将所述全量哈希表与外表进行哈希连接。
5.根据权利要求4所述的数据处理方法,其特征在于,所述获取全量哈希表包括如下之一:
接收来自其他计算节点的第一哈希表,将自身得到的第一哈希表与所述来自其他计算节点的第一哈希表合并,得到所述全量哈希表;
接收来自目标计算节点的所述全量哈希表。
6.根据权利要求5所述的数据处理方法,其特征在于,所述方法还包括:
在接收到来自其他计算节点的压缩的第一哈希表时,在所述合并之前将所述压缩的第一哈希表解压缩。
7.根据权利要求4所述的数据处理方法,其特征在于,所述将所述全量哈希表与外表进行哈希连接,包括:
根据来自协调节点的通知,将所述外表的部分数据进行分发,以便通过其他计算节点执行所述外表的部分数据与所述全量哈希表的哈希连接操作。
8.根据权利要求4所述数据处理方法,其特征在于,所述将所述全量哈希表与外表进行哈希连接,包括:
接收来自其他计算节点的外表数据,并将所述外表数据与所述全量哈希表进行哈希连接操作。
9.一种数据处理方法,包括:
通过扫描内表数据生成第一哈希表;
广播所述第一哈希表;
获取全量哈希表,所述全量哈希表由所述第一哈希表合并得到;
将所述全量哈希表与外表进行哈希连接。
10.根据权利要求9所述的数据处理方法,其特征在于,
所述方法还包括:将所述第一哈希表压缩;
所述广播所述第一哈希表,包括:广播所述压缩后的第一哈希表。
11.根据权利要求9或10所述的数据处理方法,其特征在于,所述广播所述第一哈希表,包括如下之一:
向除当前计算节点之外的计算节点广播所述第一哈希表;
向目标计算节点广播所述第一哈希表,以便所述目标计算节点基于所述第一哈希表得到所述全量哈希表或所述全量哈希表。
12.根据权利要求9或10所述的数据处理方法,其特征在于,所述获取全量哈希表,包括如下之一:
接收来自其他计算节点的第一哈希表,将本地的所述第一哈希表与所述来自其他计算节点的第一哈希表合并,得到所述全量哈希表;
接收来自目标计算节点的全量哈希表。
13.根据权利要求12所述的数据处理方法,其特征在于,所述方法还包括:
在接收到来自其他计算节点的压缩的第一哈希表时,在所述合并之前将所述压缩的第一哈希表解压缩。
14.根据权利要求9所述数据处理方法,其特征在于,所述将所述全量哈希表与外表进行哈希连接,包括:
根据来自协调节点的通知,将所述外表的部分数据进行分发。
15.根据权利要求14所述的数据处理方法,其特征在于,所述根据来自协调节点的通知,将所述外表的部分数据进行分发,包括:
接收来自协调节点的闲队列信息,所述闲队列信息包含当前处于闲状态的计算节点的地址;
根据所述闲队列信息,将所述外表中的部分数据分发给所述当前处于闲状态的计算节点。
16.根据权利要求14所述的数据处理方法,其特征在于,所述根据来自协调节点的通知,将所述外表的部分数据进行分发,包括:
接收来自所述协调节点的分配指令;
将所述外表中的部分数据分发给所述分配指令指示的计算节点。
17.根据权利要求9或15所述的数据处理方法,其特征在于,所述方法还包括:
实时向协调节点反馈用于指示当前忙闲状态的消息,所述消息为忙信号或闲信号,以便所述协调节点实时获知当前计算节点的忙闲状态。
18.根据权利要求9所述的数据处理方法,其特征在于,所述将所述全量哈希表与外表进行哈希连接,包括:
接收来自其他计算节点的外表数据;
将所述来自其他计算节点的外表数据与所述全量哈希表进行哈希连接操作。
19.一种数据处理装置,其特征在于,包括:
生成模块,通过扫描本地的内表数据生成第一哈希表;
广播模块,广播所述第一哈希表,以便其他计算节点基于所述第一哈希表得到第二哈希表,所述第二哈希表至少由所述第一哈希表合并得到。
20.一种数据处理装置,包括:
存储有计算机程序的存储器;
处理器,配置为读取所述计算机程序以执行如权利要求1至3任一项所述数据处理方法的操作。
21.一种计算机存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至3中任一项所述数据处理方法的步骤。
22.一种数据处理装置,其特征在于,包括:
获取模块,用于获取全量哈希表,所述全量哈希表由第一哈希表合并得到,所述第一哈希表通过扫描计算节点的本地内表数据生成;
操作模块,用于将所述全量哈希表与外表进行哈希连接。
23.一种数据处理装置,包括:
存储有计算机程序的存储器;
处理器,配置为读取所述计算机程序以执行如权利要求4至8任一项所述数据处理方法的操作。
24.一种计算机存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求4至8中任一项所述数据处理方法的步骤。
25.一种数据处理装置,其特征在于,包括:
生成模块,用于通过扫描内表数据生成第一哈希表;
广播模块,用于广播所述第一哈希表;
获取模块,用于获取全量哈希表,所述全量哈希表由第一哈希表合并得到;
操作模块,用于将所述全量哈希表与外表进行哈希连接。
26.一种数据处理装置,包括:
存储有计算机程序的存储器;
处理器,配置为读取所述计算机程序以执行如权利要求9至18任一项所述数据处理方法的操作。
27.一种计算机存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求9至18中任一项所述数据处理方法的步骤。
CN201711025417.3A 2017-10-27 2017-10-27 一种数据处理方法及装置 Pending CN110019360A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711025417.3A CN110019360A (zh) 2017-10-27 2017-10-27 一种数据处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711025417.3A CN110019360A (zh) 2017-10-27 2017-10-27 一种数据处理方法及装置

Publications (1)

Publication Number Publication Date
CN110019360A true CN110019360A (zh) 2019-07-16

Family

ID=67186673

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711025417.3A Pending CN110019360A (zh) 2017-10-27 2017-10-27 一种数据处理方法及装置

Country Status (1)

Country Link
CN (1) CN110019360A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021031527A1 (zh) * 2019-08-20 2021-02-25 蚂蚁金服(杭州)网络技术有限公司 分布式数据库表连接方法、装置、系统、服务器及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521307A (zh) * 2011-12-01 2012-06-27 北京人大金仓信息技术股份有限公司 一种云计算环境下的无共享数据库集群并行查询处理方法
CN103544259A (zh) * 2013-10-16 2014-01-29 国家计算机网络与信息安全管理中心 分组聚集排序TopK查询处理方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521307A (zh) * 2011-12-01 2012-06-27 北京人大金仓信息技术股份有限公司 一种云计算环境下的无共享数据库集群并行查询处理方法
CN103544259A (zh) * 2013-10-16 2014-01-29 国家计算机网络与信息安全管理中心 分组聚集排序TopK查询处理方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021031527A1 (zh) * 2019-08-20 2021-02-25 蚂蚁金服(杭州)网络技术有限公司 分布式数据库表连接方法、装置、系统、服务器及介质
CN113434500A (zh) * 2019-08-20 2021-09-24 北京奥星贝斯科技有限公司 表连接方法、装置、分布式数据库系统、服务器及介质

Similar Documents

Publication Publication Date Title
US10261902B2 (en) Parallel processing of a series of data units for writing
US20180276274A1 (en) Parallel processing database system with a shared metadata store
WO2021073211A1 (zh) 训练图神经网络模型的方法和装置
US20200301961A1 (en) Image retrieval method and apparatus, system, server, and storage medium
US12038851B2 (en) Method and apparatus for accessing storage system
WO2020147336A1 (zh) 一种微服务全链路监控系统及方法
US7457835B2 (en) Movement of data in a distributed database system to a storage location closest to a center of activity for the data
EP2962226A1 (en) System and method for distributed sql join processing in shared-nothing relational database clusters using stationary tables
US20140280020A1 (en) System and Method for Distributed SQL Join Processing in Shared-Nothing Relational Database Clusters Using Self Directed Data Streams
CN103607424B (zh) 一种服务器连接方法及服务器系统
US11102322B2 (en) Data processing method and apparatus, server, and controller
KR102126320B1 (ko) 분산 처리 시스템, 데이터 처리 방법 및 제어 노드 장치
CN110147377A (zh) 大规模空间数据环境下基于二级索引的通用查询算法
CN109783564A (zh) 支持多节点的分布式缓存方法及设备
US11321021B2 (en) Method and apparatus of managing mapping relationship between storage identifier and start address of queue of storage device corresponding to the storage identifier
CN110175175A (zh) 一种基于spark的分布式空间二级索引与范围查询算法
CN109800236A (zh) 支持多节点的分布式缓存方法及设备
CN110019360A (zh) 一种数据处理方法及装置
CN110381136A (zh) 一种数据读取方法、终端、服务器及存储介质
WO2024119792A1 (zh) 一种视频数据存储及分析方法、装置、系统、通信设备和存储介质
CN117527805A (zh) 一种基于服务器集群的多模态数据接入优化方法及系统
US9842148B2 (en) Method for failure-resilient data placement in a distributed query processing system
CN108234552A (zh) 一种数据存储方法及装置
CN109032967B (zh) 一种基于三维众核处理器的Cache地址映射方法
CN105426501B (zh) 多维数据库自动路由实现方法和系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40010851

Country of ref document: HK

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210922

Address after: Room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Alibaba (China) Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: ALIBABA GROUP HOLDING Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20211203

Address after: No.12 Zhuantang science and technology economic block, Xihu District, Hangzhou City, Zhejiang Province

Applicant after: Aliyun Computing Co.,Ltd.

Address before: 310052 room 508, 5th floor, building 4, No. 699 Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant before: Alibaba (China) Co.,Ltd.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190716