CN111324433B - 一种数据计算的方法及相关设备 - Google Patents
一种数据计算的方法及相关设备 Download PDFInfo
- Publication number
- CN111324433B CN111324433B CN202010076105.0A CN202010076105A CN111324433B CN 111324433 B CN111324433 B CN 111324433B CN 202010076105 A CN202010076105 A CN 202010076105A CN 111324433 B CN111324433 B CN 111324433B
- Authority
- CN
- China
- Prior art keywords
- data
- node
- data node
- nodes
- target
- 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
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 91
- 238000000034 method Methods 0.000 claims abstract description 62
- 238000005192 partition Methods 0.000 claims description 150
- 230000006870 function Effects 0.000 claims description 61
- 238000012545 processing Methods 0.000 claims description 20
- 238000013500 data storage Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 description 19
- 230000005540 biological transmission Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 230000002018 overexpression Effects 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据计算的方法及相关设备。其中,该方法包括:分布式数据库中的目标数据节点接收所述分布式数据库中的其它数据节点发送的与查询语句相关的数据;该目标数据节点对本地的数据和从所述其它数据节点接收的数据排序;该目标数据节点向所述分布式数据库中的至少一个数据节点发送排序后的多个数据,以便所述至少一个数据节点对各自接收的数据进行所述查询语句相关的计算。上述方法能够解决充分利用分布式计算能力,避免单数据节点进行数据计算所造成的瓶颈,提高计算效率。
Description
技术领域
本发明涉及分布式存储技术领域,尤其涉及一种数据计算的方法及相关设备。
背景技术
窗口函数是结构化查询语言(structured query language,SQL)中一类特别的函数,和聚合函数类似,窗口函数的输入也是多行记录。窗口函数作用于一个窗口,窗口是由一个OVER表达式定义的多行记录。窗口函数与OVER表达式一起使用,OVER表达式用于对数据进行分组,并对组内元素进行排序;而窗口函数则用于对组内值进行处理,例如聚集、生成序号等。
在分布式数据库中,数据都分布存储于各个数据节点中。此外,在对分布式数据库的数据进行计算时,是由单个数据节点完成数据的收集、排序和计算,由于单个数据节点的计算资源有限,将会造成计算瓶颈,降低计算效率。
因此,如何避免单个数据节点所造成的计算瓶颈,提高计算效率和整体执行效率是目前亟待解决的问题。
发明内容
本发明实施例公开了一种数据计算的方法及相关设备,能够充分利用分布式计算能力,避免单数据节点造成的计算瓶颈,提高计算效率。
第一方面,本申请提供一种数据计算的方法,所述方法包括:分布式数据库中的目标数据节点接收所述分布式数据库中的其它数据节点发送的与查询语句相关的数据;该目标数据节点对本地的数据和从其它数据节点接收的数据排序;该目标数据节点向所述分布式数据库中的至少一个数据节点发送排序后的多个数据,以便所述至少一个数据节点对各自接收的数据进行所述查询语句相关的计算。
在本申请提供的方案中,目标数据节点对与查询语句相关的数据进行收集并排序,得到排序后的数据,并将排序后的有序数据发送给分布式数据库中的其它数据节点,以使得其它数据节点可以并行进行查询语句相关的计算,这样可以避免单个数据节点进行计算所造成的瓶颈,充分;利用分布式计算能力,提高资源的利用率和计算效率。
在一种可能的实现方式中,所述其它数据节点各自对本地的数据进行排序,并向所述目标数据节点发送排序后的数据。
在本申请提供的方案中,其它数据节点在向目标数据节点发送数据之前,先把本地的数据进行排序,这样可以减小目标数据节点的排序压力,减小目标数据节点的内存开销,提高执行效率。
在一种可能的实现方式中,目标数据节点向分布式数据库中的多个数据节点中的不同数据节点发送至少一个不同的数据。
在本申请提供的方案中,目标数据节点将排序后的数据发给不同的数据节点,且每个数据节点接收到的数据都是不完全相同的,这样可以保证所有接收到数据的数据节点都可以参与查询语句相关的计算,提高计算效率。
在一种可能的实现方式中,目标数据节点对排序后的数据中未向所述至少一个数据节点发送的数据进行查询语句相关的计算。
在本申请提供的方案中,目标数据节点也可以参与查询语句相关的计算,可以进一步提高计算效率,充分利用分布式数据库的计算资源。
在一种可能的实现方式中,目标数据节点基于所述目标数据节点排序后的数据确定N个分区,该N个分区中的不同分区包括至少一个不同的数据,N为大于1的整数,且N小于或等于分布式数据库具有的数据节点的数量;目标数据节点向分布式数据库的N个数据节点中除了目标数据节点以外的每个数据节点发送N个分区中的一个分区的数据。
在本申请提供的方案中,目标数据节点将排序后的数据组成N个分区,给每一个参与计算的数据节点发送N个分区中的一个分区的数据,保证每个数据节点都能够接收到一个分区并进行计算。
在一种可能的实现方式中,目标数据节点根据目标数据节点排序后的数据的数据总量和数据重叠区间,基于所述目标数据节点排序后的数据得到所述N个分区。
在本申请提供的方案中,目标数据节点在对排序后的数据组成N个分区时,可以同时考虑数据总量和数据重叠区间这两个因素,提高组成N个分区的合理性和准确性。
在一种可能的实现方式中,目标数据节点按照物理节点的编号,将目标数据节点排序后的多个数据发送至至少一个数据节点,所述物理节点的编号对应的物理节点中包括所述分布式数据库中的至少一个数据节点。
在本申请提供的方案中,目标数据节点按照物理节点的编号将排序后的数据发送至多个数据节点,这样可以避免将大量的数据短时间内发送至同一个物理节点,提高物理节点的资源利用率以及整个系统的执行效率。
在一种可能的实现方式中,所述至少一个数据节点对各自接收的数据进行所述查询语句的窗口函数的计算。
在本申请提供的方案中,各个数据节点针对各自接收到的数据可以进行各种查询语句相关的计算,例如查询语句的窗口函数的计算。
第二方面,本申请提供了一种数据存储装置,包括:接收单元,用于接收分布式数据库中的其它数据节点发送的与查询语句相关的数据;处理单元,用于对本地的数据和从所述其它数据节点接收的数据排序;发送单元,用于向所述分布式数据库中的至少一个数据节点发送排序后的多个数据,以便所述至少一个数据节点对各自接收的数据进行所述查询语句相关的计算。
在一种可能的实现方式中,所述接收单元,具体用于:接收其它数据节点各自对本地的数据进行排序之后发送的数据。
在一种可能的实现方式中,所述发送单元,具体用于:向所述分布式数据库中的多个数据节点中的不同数据节点发送至少一个不同的数据。
在一种可能的实现方式中,所述处理单元,还用于对所述排序后的数据中未向所述至少一个数据节点发送的数据进行所述查询语句相关的计算。
在一种可能的实现方式中,所述处理单元,还用于基于所述排序后的数据确定N个分区,所述N个分区中的不同分区包括至少一个不同的数据,所述N为大于1的整数,且所述N小于或等于所述分布式数据库具有的数据节点的数量;所述发送单元,具体用于:向所述分布式数据库的N个数据节点中除了所述目标数据节点以外的每个数据节点发送所述N个分区中的一个分区的数据。
在一种可能的实现方式中,所述处理单元,具体用于:根据所述排序后的数据的数据总量和数据重叠区间,基于所述排序后的数据得到所述N个分区。
在一种可能的实现方式中,所述发送单元,具体用于:按照物理节点的编号,将所述排序后的多个数据发送至所述至少一个数据节点,所述物理节点的编号对应的物理节点中包括所述分布式数据库中的至少一个数据节点。
在一种可能的实现方式中,所述至少一个数据节点对各自接收的数据进行所述查询语句的窗口函数的计算。
第三方面,本申请提供了一种计算设备,所述计算设备包括处理器和存储器,所述处理器执行所述存储器存储的计算机指令,使得所述计算设备执行上述第一方面以及结合上述第一方面中的任意一种实现方式的方法。
第四方面,本申请提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序在被计算设备执行时实现上述第一方面以及结合上述第一方面中的任意一种实现方式的方法。
第五方面,本申请提供了一种计算机程序产品,所述计算机程序产品包括计算机指令,当所述计算机指令被计算设备执行时,所述计算设备可以执行上述第一方面以及结合上述第一方面中的任意一种实现方式的方法。
附图说明
图1是本申请实施例提供的一种应用场景的示意图;
图2是本申请实施例提供的一种数据交互的示意图;
图3是本申请实施例提供的一种数据计算的方法的流程示意图;
图4是本申请实施例提供的一种数据前向重叠的示意图;
图5是本申请实施例提供的一种数据后向重叠的示意图;
图6是本申请实施例提供的一种数据同时存在前向重叠和后向重叠的示意图;
图7是本申请实施例提供的一种数据区间的划分的示意图;
图8是本申请实施例提供的一种确定数据发送顺序的示意图;
图9是本申请实施例提供的一种数据存储的示意图;
图10是本申请实施例提供的一种数据存储装置的结构示意图;
图11是本申请实施例提供的一种计算设备的结构示意图。
具体实施方式
下面结合附图对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。
首先,结合附图对本申请中所涉及的部分用语和相关技术进行解释说明,以便于本领域技术人员理解。
广播(stream broadcast)是分布式数据库中的一种数据传输方式,指数据由一个数据节点(源数据节点)发送给其它的数据节点(目标数据节点)。
重分布(stream redistribute)也是分布式数据库中的一种数据传输方式,是指源数据节点根据连接条件计算哈希(hash)值,根据计算得到的hash值将数据发送给相应的目标数据节点。
图1示出了本申请实施例的一种可能的应用场景。在该应用场景中,分布式数据库100包括多个协调节点(coordinator,CN),例如协调节点110和协调节点120,以及多个数据节点(data node,DN),例如数据节点130、数据节点140、数据节点150和数据节点160,数据节点部署在物理节点(例如服务器)上,每个物理节点可以部署一个或多个数据节点,例如,数据节点130和数据节点140部署在物理节点170上,数据节点150部署在物理节点180上,数据节点160部署在物理节点190上。所有的数据都分布在数据节点上,数据节点之间的数据不共享,在执行业务时,协调节点接收来自客户端的查询请求并生成执行计划下发到各个数据节点,数据节点根据接收到的计划对需要使用的算子(例如数据操作(stream)算子)进行初始化处理,然后执行协调节点下发的执行计划。协调节点与数据节点之间,以及不同物理节点中的数据节点之间都是通过网络通道进行连接,该网络通道可以是可扩展的传输控制协议(scalable transmission control protocol,STCP)等各种通信协议。
在业务执行过程中,涉及不同数据节点之间的数据交互都是由stream算子执行,如图2所示,数据节点130中包括服务线程131和stream线程132,数据节点140中包括服务线程141和stream线程142。Stream线程132可以将数据节点130中存储的数据发送至服务线程131从而进一步发送至协调节点110,也可以将数据直接发送至服务线程141;同理,stream线程142可以将数据节点140中存储的数据发送至服务线程141进而发送至协调节点110,也可以将数据直接发送至服务线程131。
对于上述图1和图2所示的应用场景中,数据都是分布存储于各个数据节点中,在执行业务而需要计算数据时,需要对业务涉及的所有数据进行排序,然后对排序后的数据进行计算。目前,都是将数据先汇聚到一个数据节点上之后再进行排序,例如数据节点140、数据节点150和数据节点160通过广播的方式将自身存储的数据汇聚到数据节点130上,数据节点130在完成数据汇聚之后,对所有数据进行排序,由于数据量比较大,而数据节点130的内存资源有限,所以数据节点130在进行排序时可能会将部分的数据存入磁盘,这样将会导致产生大量的输入/输出(input and output,IO)开销,从而影响执行效率。数据节点130在排序完成之后,对排序后的数据进行计算,该计算仅在数据节点130中进行,而其它数据节点在完成广播数据之后一直处于空闲状态,这将导致负载严重不均,数据节点130的计算能力成为业务执行的瓶颈,整个分布式数据库100的执行效率将被大大降低,无法充分利用分布式执行能力。
为了解决上述问题,本申请提供了一种数据计算的方法及相关设备,可以在计算之前将有序数据从单个数据节点重新分布到分布式数据库中的其它数据节点上,使得其它数据节点能够并行执行计算过程,充分利用分布式数据库的计算能力,提高计算效率和资源利用率。
本申请实施例的技术方案可以应用于分布式数据库中各种需要数据排序并计算的场景。
结合上述图1和图2所示的应用场景,参阅图3,图3是本申请实施例提供的一种数据计算的方法的流程示意图。如图3所示,该方法包括但不限于以下步骤:
S310:目标数据节点接收其它数据节点发送的与查询语句相关的数据。
查询语句,可以是使用结构化查询语言(structured query language,SQL)表达的语句,例如包含窗口函数与OVER表达式的SQL语句。
具体地,目标数据节点可以为分布式数据库中的任意一个数据节点,相应地,其它数据节点为分布式数据库中除了目标数据节点以外的、并且存储与查询语句相关的数据的数据节点。可选地,目标数据节点可以是用户先前指定,或者可以是在执行业务时选择的一个数据节点。
举例说明,目标数据节点可以是上述图1所示中的分布式数据库中的任意一个数据节点,例如数据节点130,相应地,其它数据节点包括数据节点140、数据节点150和数据节点160。
数据在各个数据节点中是按照表格的形式进行存储的,分布式数据库中的其它数据节点对各自存储的数据进行基表扫描,确定需要向目标数据节点发送哪个表中的哪些行数据。
在一种可能的实现方式中,分布式数据库中的其它数据节点分别对本地的数据进行排序,并向目标数据节点发送排序后的数据。
具体地,在数据节点130作为目标数据节点时,数据节点140、数据节点150和数据节点160可以预先将需要向目标数据节点发送的数据进行排序,将排序完成后的数据再发给数据节点130。数据节点140、数据节点150和数据节点160在发送数据的过程中,可以是一次性将排序好的数据全部发向数据节点130;或者,数据节点140、数据节点150和数据节点160在发送数据的过程中,可以是通过多次发送的方式完成将排序好的数据全部向数据节点130发送,例如每次按照一定的数据量进行数据的发送,每次发送的数据量可以根据需要进行设置,本申请对此不作限定。
可以理解,数据节点140、数据节点150和数据节点160对本地的数据进行排序之后再发送给数据节点130,可以减轻数据节点130的做数据的整体排序的压力,减小数据节点130的内存开销,提高执行效率。
S320:目标数据节点对本地的数据和从其它数据节点接收的数据排序。
举例说明,数据节点130在接收到数据节点140、数据节点150和数据节点160分别发送的数据之后,数据节点130将从数据节点140、数据节点150和数据节点160接收的数据连同本地存储的数据一起进行数据的整体排序。这样,与分布式数据库所执行的SQL查询语句(例如OVER表达式)相关的数据都是有序的。
可选的,数据节点130接收数据节点140、数据节点150和数据节点160发送的有序数据,数据节点130再对接收的数据进行整体排序来实现数据的全局有序,从而降低IO开销和内存开销,提高排序效率。
S330:目标数据节点向至少一个数据节点发送排序后的多个数据,以便该至少一个数据节点对各自接收的数据进行该查询语句相关的计算。
具体地,目标数据节点在完成对该查询语句相关的数据排序之后,基于有序的数据组成多个有序数据集,每个有序数据集中的多个数据是有序的,此外,不同有序数据集中的数据可以局部重复(也可以称为数据重叠,两个有序数据集中存在一部分数据是相同的),但不能全部重复(两个有序数据集中的数据完全重叠)。
目标数据节点按有序数据集将数据发给分布式数据库中除目标数据节点之外的数据节点。举例说明,如果数据节点130处理一个有序数据集的数据,则数据节点130将剩余的每个有序数据集发给不同的数据节点;如果数据节点130不处理任意一个有序数据集的数据,则数据节点130将每个有序数据集发给不同的数据节点。这样,有序数据集的个数就等于要处理所有有序数据集的数据节点的个数,接收到有序数据集的数据节点负责对接收的有序数据集进行查询语句相关的计算。
如果有序数据集的个数等于分布式数据库的所有数据节点的个数,则每个数据节点都会获取到有序数据集。举例说明,数据节点130按有序数据集将数据发给分布式数据库中除数据节点130之外的其它所有数据节点,例如将数据发送给数据节点140、数据节点150和数据节点160。
如果有序数据集的个数小于分布式数据库的所有数据节点的个数,部分数据节点会获取到有序数据集。举例说明,数据节点130按有序数据集将数据发送给分布式数据库中除数据节点130之外的部分数据节点,例如将数据发送给数据节点140和数据节点150。
可选的,数据节点130在发送数据时,可以对数据节点或数据节点所在的物理节点的负载情况等进行检测,以决定是否发送数据,避免将数据发送给负载过大的数据节点,影响计算效率和执行效率。
至少一个数据节点在接收到目标数据节点发送的数据之后,可以对数据进行各种计算,例如窗口函数计算、聚合函数计算等。例如,数据节点140在接收到数据节点130发送的一个有序数据集之后,直接对该有序数据集中包含的数据进行窗口函数(例如求和)计算,数据节点150在接收到数据节点130发送的一个有序数据集之后,也开始对接收到的有序数据集中包含的数据进行窗口函数计算,此时数据节点140和数据节点150并行执行窗口函数的计算。
可以理解,目标数据节点将有序数据发送给其它数据节点,以使得其它数据节点能够在接收到数据之后进行计算,可以充分利用分布式数据库的计算能力,提高整个系统的计算效率。
在一种可能的实现方式中,目标数据节点向分布式数据库的多个数据节点中的不同数据节点发送至少一个不同的数据。
具体地,目标数据节点对有序的数据进行有序数据集划分时,各个相邻的数据有序数据集之间是完全连接的,针对某些具体的业务需求,例如在计算数据的过程中,当前行的数据计算依赖于前面多行或后面多行的数据,因此,目标数据节点在划分有序数据集时,相邻有序数据集可能存在局部重复的数据,对于部分数据而言,同时存在于两个有序数据集内,但是,两个相邻有序数据集中需要保证至少存在一个不同的数据,避免对相同的数据进行重复计算,以提高分布式系统的计算资源的利用率,提高计算效率。
可选的,目标数据节点可以将排序后的数据全部发送给其它数据节点,以使得其它数据节点完成计算,目标数据节点也可以将排序后的数据保留一部分在本地,对未向其它数据节点发送的数据进行计算。容易理解,数据节点130也参与数据计算的过程,可以更加充分利用分布式数据库的计算能力,进一步提高计算效率。
在一种可能的实现方式中,目标数据节点基于所述目标数据节点排序后的数据确定N个分区,该N个分区中的不同分区包括至少一个不同的数据,所述N为大于1的整数,且所述N小于或等于分布式数据库具有的数据节点的数量;该目标数据节点向分布式数据库的N个数据节点中除了所述目标数据节点以外的每个数据节点发送N个分区中的一个分区的数据。
具体地,目标数据节点将排序后的数据组成为N个分区,每个分区中的数据都是有序的,这里的分区不同于数据存储中的分区概念,是指在逻辑上将排序后的数据截取一部分形成一个分区,截取的数据之间的顺序并不改变,分区数量小于或等于分布式数据库具有的数据节点的数量。可选的,目标数据节点对排序后的数据进行平均截取,得到N个分区,每个分区所包含的数据量是相同的;当然,也可以不进行平均截取,所得到的N个分区中的数据量并不完全相同。此外,分区数量N可以等于分布式数据库具有的数据节点的数量,目标数据节点在发送数据时,将向每一个数据节点发送N个分区中的一个分区的数据,不同的分区发送到不同的数据节点上;分区数量N也可以小于分布式数据库具有的数据节点的数量,目标数据节点在发送数据时,可以从其它数据节点中选择负载较小的N个数据节点,并向每一个数据节点发送N个分区中的一个分区的数据。特别的,相邻分区之间可以存在重复的部分数据,重复的数据量可以是相同的,也可以是不同的,但任意两个相邻分区之间的数据不能完全相同。
在一种可能的实现方式中,,目标数据节点根据数据总量T和数据重叠区间,将排序后的数据组成为N个分区,每个分区所包含的数据量由目标数据节点计算得到。
具体地,当数据重叠区间为0,两个相邻分区之间不存在数据重叠时,目标数据节点在进行数据划分时,不需要考虑各个分区的数据重叠,直接将数据总量T均匀组成为N个分区,每个分区的数据量为T除以N行,其中,目标数据节点在接收到各个其它数据接收发送的数据并进行排序时可以获取得到数据总量T。
当数据重叠区间不为0,两个相邻分区之间存在数据重叠时,目标数据节点在进行数据划分时需要考虑各个分区之间的数据重叠区间,根据数据重叠区间的不同,组成得到的N个分区也并不相同。下面举例提供组成重叠区间的几种实现举例。
1、数据前向重叠,其重叠区间为x行。
具体地,目标数据节点在进行分区时,除了第一个分区之外,其它分区需要考虑与前一分区重叠x行,如图4所示,可以看出,第一个分区的数据量要比其它分区的数据量少,各个分区分配的数据量按照下述公式1计算得到:
2、数据后向重叠,其重叠区间为y行。
具体地,目标数据节点在进行分区时,除了最后一个分区之外,其它分区需要考虑与后一分区重叠y行,如图5所示,可以看出,最后一个分区的数据量要比其它分区的数据量少,各个分区分配的数据量按照下述公式2计算得到:
3、数据同时存在前向重叠和后向重叠,其前向重叠区间为x行,后向重叠区间为y行。
具体地,目标数据节点在进行分区时,对于第一个分区需要考虑其与后一分区重叠y行,对于最后一个分区需要考虑其与前一个分区重叠x行,其它分区则需要同时考虑这两个重叠区间,如图6所示,各个分区分配的数据量按照下述公式3计算得到:
上述是针对只存在一个函数的情况,当同时存在多个函数,即存在多个前向重叠区间或后向重叠区间,且各个重叠区间的大小不一致时,目标数据节点在进行分区时,将选择最大的x值或最大的y值进行分区。
应理解,当相邻分区之间存在数据重叠区间时,同一行的数据可能需要同时发送到多个其它数据节点。因此,需要划分数据区间,计算每一行数据落入在哪一个数据区间,从而确定该行数据对应的分区,进而最终确定应该发送给哪一个数据节点。
示例性的,以上述图5为例,假设分布式数据库中存在5个数据节点,则每个分区依次为其中重叠区间为/> 按照重叠区间,目标数据节点将排序后的数据划分为多个数据区间,如图7所示,将所有的数据划分为了9个数据区间,针对每个数据区间,目标数据节点取该数据区间的首行进行计算,将每个数据区间的首行与其重叠的分区的首行进行比较,若该数据区间的首行数据对应的值大于等于某个分区的首行数据对应的值,则将该数据区间发送到该分区相同的数据节点中,若该数据区间的首行数据对应的值小于该分区的首先数据对应的值,则不用将该数据区间发送到该分区相同的数据节点中。例如,对于数据区间/>来说,其首行数据对应的值为/>其为分区1和分区2的重叠区间,分区1的首行数据对应的值为1,因此将数据区间/>发送给分区1相同的数据节点,此外分区2的首行数据对应的值为/>与数据区间/>的首行数据对应的值相等,所以也将数据区间/>发送给分区2相同的数据节点。
应理解,对于前向重叠来说,目标数据节点也是按照上述相同的方法将排序后的数据划分为多个数据区间,针对每个数据区间,目标数据节点将该数据区间的尾行与其重叠的各个分区的尾行进行比较,若该数据区间的尾行数据对应的值小于等于某个分区的尾行数据对应的值,则将该数据区间发送到该分区相同的数据节点。同理,对于其它情况,例如同时包含前向重叠区间和后向重叠区间的情况,目标数据节点也可以按照相同的方法划分数据区间并进行比较判别,为了简洁,在此不再赘述。
值得说明的是,重叠区间的值,即上述x或y的值是远远小于T除以N的结果,若x或y的值接近T除以N的结果,甚至大于T除以N的结果,那么将会增加系统开销,增大网络传输开销,此时不再适合将排序后的数据再发送给其它数据节点进行处理,在这种情况下,可以采用其它的方案对排序后的数据进行计算,例如由目标数据节点对排序后的数据进行计算。
在一种可能的实现方式中,目标数据节点根据物理节点的编号确定数据发送顺序;该目标数据节点按照所述物理节点的编号,将目标数据节点排序后的多个数据依次发送至其它数据节点,所述物理节点的编码对应的物理节点中包括所述分布式数据库中的至少一个数据节点。
具体地,目标数据节点在对排序后的数据进行分区处理之后,需要进一步确定分区发送顺序,保证所有分区能够按照确定的顺序准确发送到其它数据节点。
由于在分布式数据库中,通常一个物理机中会部署多个数据节点,若目标数据节点按照数据节点的编号发送分区,可能会导致一段时间内接收目标数据节点发送的分区的数据节点都是部署在同一个物理机上的数据节点,这样将会导致该物理机负载过大,执行速度缓慢,而其它物理机处于空闲状态,不能充分利用分布式系统的资源,影响整个系统执行效率。
因此,目标数据节点在确定分区发送顺序时,是按照物理节点的编号进行确定,目标数据节点在发送分区时是按照物理节点的编号确定的顺序发送到所有的其它数据节点。
示例性的,如图8所示,存在物理机810、物理机820和物理机830,物理机810中部署了数据节点811和数据节点812,物理机820中部署了数据节点821和数据节点822,物理机830中部署了数据节点831和数据节点832。目标数据节点根据物理机的编号确定发送顺序,由于要保证分布式系统中各个物理机的最大化利用,提高执行效率,因此确定的发送顺序为:数据节点811、数据节点821、数据节点831、数据节点812、数据节点822、数据节点832。即目标数据节点先将分区1发送给数据节点811,然后将分区2发送给数据节点821,按照上述确定的顺序将所有分区发至相应的数据节点中。
应理解,图8所示的是数据节点均匀分布在各个物理节点的场景,当数据节点分布不均匀,有些物理节点部署了多个数据节点,有些物理节点部署了较少了的数据节点,此时,目标数据节点先按照物理节点的编号依次向各个物理节点中部署的数据节点发送分区,当部署较少数据节点的物理节点中的所有数据节点都已经接收到了目标数据节点发送的分区之后,目标数据节点继续向部署了较多的数据节点的物理节点中未接收到数据的数据节点发送分区,直到将所有的分区都发完为止。当然,还可以通过其它方式确定分区发送顺序,本申请对此不作限定。
在一种可能的实现方式中,目标数据节点向其它数据节点分别发送排序后的多个数据,以使得其它数据节点对各自接收到的数据进行所述查询语句的窗口函数的计算。
具体地,其它数据节点在接收到目标数据节点发送的分区之后,针对分区中的数据进行查询语句的窗口函数的计算,窗口函数可以是求和函数(sum)、求平均函数(avg)等,本申请对此不作限定。
可以看出,在存在数据重叠时,每个数据节点所接收到的数据量可能是不一样的,但是参与计算的数据量是均匀的,都为T除以N的结果,以便于充分利用分布式系统的计算能力,不需要对相同的数据进行重复计算。此外,当存在数据重叠时,窗口函数在运行过程中,其对应的状态信息还会记录前向重叠区间和后向重叠区间的值,即x和y的值,目标数据节点中的stream线程在向其它数据节点发送分区的同时还会发送其所确定的发送顺序对应的第一个数据节点和最后一个数据节点的标识,以及每个数据节点需要处理的数据量(即T除以N行)。例如,在存在前向数据重叠时,除了第一个数据节点外,其它所有数据节点在接收到分区之后,跳过重叠区间(例如x行)开始进行计算,应理解,虽然不需要计算重叠区间,但是后面数据的计算需要依赖前向重叠区间(x行);在存在后向数据重叠时,所有数据节点在接收到分区之后,仅计算前面的T/N行,对于重叠区间(例如y行)则不需要进行计算,但是前面数据的计算需要依赖后向重叠区间(y行)。
特别的,当分布式数据库在执行SQL语句时,SQL语句中同时包含多个窗口函数,目标数据节点需要根据所有窗口函数中所包含的前向重叠区间和后向重叠区间对排序后的数据进行分区处理,其它数据节点在接收到目标数据节点发送的分区后,针对不同的窗口函数也需要单独处理。
例如,SQL语句中包含3个窗口函数,窗口函数1的前向重叠区间为2,后向重叠区间为0,窗口函数2的前向重叠区间为5,后向重叠区间为0,窗口函数3的前向重叠区间为0,后向重叠区间为4。目标数据节点在进行分区处理时,将选择这3个窗口函数中前向重叠区间和后向重叠区间的最大值进行分区,即选择窗口函数2的前向重叠区间和窗口函数3的后向重叠区间进行分区,第一个分区的数据量为T/N+4行,最后一个分区的数据量为T/N+5行,其它分区的数据量为T/N+5+4行。目标数据节点在完成分区之后,将各个分区发送到相应的其它数据节点,同时将各个数据节点需要处理的数据量也发送至各个数据节点。各个数据节点在接收到分区之后开始计算窗口函数,在计算窗口函数1时,重叠区间并不是2,而是5,因此在计算时需要跳过5行开始计算,计算T/N行截止,同时为了保证后续窗口函数计算的准确性,在对窗口函数1计算完成之后,输出结果时保留前向重叠区间和后向重叠区间的值。在计算窗口函数2时,根据前向重叠区间的值,跳过5行开始计算,计算T/N行截止,由于窗口函数的计算无需考虑前向重叠区间,所以在对窗口函数2计算完成之后,输出结果时忽略了前向重叠区间的值,仅保留后向重叠区间的值。在计算窗口函数3时,由于已经忽略了前向重叠区间的值,因此从每个分区的第一行开始计算,计算T/N行截止,由于后续已经没有窗口函数需要计算,所以在对窗口函数3计算完成之后,输出结果时忽略后向重叠区间的值。
窗口函数对应的状态信息会在窗口函数运行时记录前向重叠区间和后向重叠区间的变化情况,在上述执行SQL语句中所包含的3个窗口函数的过程中,其状态信息的变换情况如下述表1所示:
表1
可以看出,窗口函数所对应的状态信息通过记录控制信息(即前向重叠区间和后向重叠区间,以及是否在完成计算后删除)来保证各个窗口函数能够正确的被计算和执行。
应理解,当分布到各个数据节点进行计算的数据量(即T/N行)较大,且无数据重叠区间或数据重叠区间(即x或y)较小时,利用上述图3所示的方法可以实现并行计算,能够充分利用分布式系统的计算能力和系统资源,提高计算效率。然而,当分布到各个数据节点进行计算的数据量较小,且数据重叠区间较大时,将会产生大量额外的网络传输开销,可能导致传输时长超过各个数据节点的计算时长,严重影响计算效率。所以在实施图3所示的方法之前,针对不同的实际应用场景,需要进行代价估算,即估算本申请提供的方法是否优于现有方案。
具体地,以执行时间来表征代价,现有方案是由一个数据节点执行整个计算过程,那么其代价为单个数据节点执行窗口函数所需要的时间,本申请是将排序后的数据分区并发送给多个数据节点并行计算,那么其代价仅需考虑目标数据节点的发送分区的时间和其它数据节点接收分区并计算的时间。比较现有方案所需要的代价和本申请所需要的代价,当现有方案所需要的代价与本申请所需要的代价之间的差值大于0,则应该选择本申请提供的方案,否则需要选择现有方案。该两个方案所需代价的差值可以按照下述公式4计算得到:
ΔA=A-B-(C+A)/N 公式4
其中,ΔA表示两种方案所需代价的差值,A表示现有方案所需要的代价(即单个数据节点处理所有数据量T所需要的时间),B表示目标数据节点发送所有分区所需要的时间,C表示其它数据节点接收分区所需要的时间,N表示分布式数据库中所包含的数据节点的数量。
当存在多个窗口函数可共享分区的数据并进行计算时,例如上述表1所对应的场景中,两种方案所需代价的差值可以按照下述公式5计算得到:
ΔA=n*A-B-(C+A)/N-(n-1)*A/N 公式5
其中,ΔA、A、B、C、N等参数所表示的含义与上述公式4中的一致,n表示SQL语句中窗口函数的个数。
可以看出,利用上述公式4和公式5可以进行代价估算,并根据估算结果选择合适的方案进行计算,使得整个系统的计算效率得到保证。
为了进一步说明图3所述的数据计算方法,下面将结合具体的SQL查询语句进行具体阐述。假设集群中存在两个数据节点,分别为DN1和DN2,分别部署在不同的物理机上,数据表(tt01)以及数据表中的数据在DN1和DN2中的存储情况如图9所示。分布式数据库需要执行的SQL语句为:select a,b,c,sum(b)over(order by b rows 2preceding)from tt01,即执行该SQL语句,需要先对数据表tt01中的数据按照b列进行全量排序,前向重叠区间为2,然后计算b列前两行到当前行的和。
首先,DN1和DN2进行数据扫描,并按照b列进行局部排序。其排序结果如下表2所示:
表2
DN1 | 123 | DN2 | 267 |
145 | 289 |
然后,各个DN将数据发送到目标数据节点,随机选取DN1为目标数据节点,那么DN2需要将排序后的数据发送给DN1,DN1对接收到的数据进行归并排序,使得所有需要参与计算的数据都是有序的。DN1按b列进行归并排序后的结果如下述表3所示:
表3
DN1 | 123 |
145 | |
267 | |
289 |
接着,DN1需要将排序后的数据进行分区处理,确定各个分区,并按顺序发送分区到相应的数据节点。由于数据总量T为4行、数据节点数量N为2、前向重叠区间为2行,则可以计算得到每个数据节点需要计算的数据量=T/N,为2行,对排序后的数据进行分区处理得到两个分区,分区1为第一行和第二行,分区2为第一行至第四行(即所有行),重叠区间为第一行和第二行。DN1在分区完成之后,确定分区发送顺序,由于DN1和DN2分别部署在不同物理机上,所以确定的发送顺序为:将分区1发送给DN1,将分区2发送给DN2。
由于存在前向重叠区间,DN1需要确定每行数据需要发往的数据节点。DN1根据前向重叠区间将所有数据划分为两个数据区间,如下述表4所示:
表4
对于数据区间1来说,其首行数据对应的编号为1,小于分区1的尾行数据对应的编号2,以及小于分区2的尾行数据对应的编号4,因此将数据区间1发送至DN1和DN2,对于数据区间2来说,其首行数据对应的编号为3,大于分区1的尾行数据对应的编号2,但小于分区2的尾行数据对应的编号4,因此将数据区间2发送至DN2。
DN1在完成数据发送之后,各个DN接收到的数据如下述表5所示:
表5
DN1和DN2对接收到的数据进行并行计算,计算b列前两行到当前行的和,其计算结果如下述表6所示:
表6
DN1 | 123 | 2 | DN2 | 267 | 12 |
145 | 6 | 289 | 18 |
可以看出,对于DN2来说,在计算过程中会参考前向重叠区间中的数据,但是并不对前向重叠区间中的数据进行计算,以避免重复计算,浪费分布式系统的计算资源,提供计算效率。
最后,在所有的DN完成计算之后,可以将计算结果发送给协调节点CN,得到最终SQL语句的执行结果,如下述表7所示:
表7
容易理解,本申请通过将全局有序的数据发送至各个数据节点上,以充分利用分布式系统各个数据节点的计算能力,可以避免单个数据节点进行计算所造成的瓶颈,使得对数据的计算可以并行执行,提高计算和执行效率。
上述详细阐述了本申请实施例的方法,为了便于更好的实施本申请实施例的上述方案,相应地,下面还提供用于配合实施上述方案的相关设备。
参见图10,图10是本申请实施例提供的一种数据存储装置的结构示意图。如图10所示,该数据存储装置10包括接收单元11、处理单元12和发送单元13。其中,
接收单元11,用于接收分布式数据库中的其它数据节点发送的与查询语句相关的数据。
具体地,所示接收单元11用于执行前述步骤S310,且可选的执行前述步骤中可选的方法。
处理单元12,用于对本地的数据和从所述其它数据节点接收的数据排序。
具体地,所示处理单元12用于执行前述步骤S320,且可选的执行前述步骤中可选的方法。
发送单元13,用于向所述分布式数据库中的至少一个数据节点发送排序后的多个数据,以便所述至少一个数据节点对各自接收的数据进行所述查询语句相关的计算。
具体地,所示发送单元13用于执行前述步骤S330,且可选的执行前述步骤中可选的方法。
在一种可能的实现方式中,所述接收单元11,具体用于:接收其它数据节点各自对本地的数据进行排序之后发送的数据。
在一种可能的实现方式中,所述发送单元13,具体用于:向所述分布式数据库中的多个数据节点中的不同数据节点发送至少一个不同的数据。
在一种可能的实现方式中,所述处理单元12,还用于对所述排序后的数据中未向所述至少一个数据节点发送的数据进行所述查询语句相关的计算。
在一种可能的实现方式中,所述处理单元12,还用于基于所述排序后的数据确定N个分区,所述N个分区中的不同分区包括至少一个不同的数据,所述N为大于1的整数,且所述N小于或等于所述分布式数据库具有的数据节点的数量;所述发送单元13,具体用于:向所述分布式数据库的N个数据节点中除了所述目标数据节点以外的每个数据节点发送所述N个分区中的一个分区的数据。
在一种可能的实现方式中,所述处理单元12,具体用于:根据所述排序后的数据的数据总量和数据重叠区间,基于所述排序后的数据得到所述N个分区。
在一种可能的实现方式中,所述发送单元13,具体用于:按照物理节点的编号,将所述排序后的多个数据发送至所述至少一个数据节点,所述物理节点的编号对应的物理节点中包括所述分布式数据库中的至少一个数据节点。
在一种可能的实现方式中,所述至少一个数据节点对各自接收的数据进行所述查询语句的窗口函数的计算。
需要说明的是,上述数据存储装置的结构以及利用数据存储装置进行数据重新分布以实现数据的并行计算的过程仅仅作为一种示例,不应构成具体限定,可以根据需要对数据存储装置中的各个单元进行增加、减少或合并。此外,数据存储装置中的各个模块的操作和/或功能为了实现上述图3所描述的方法的相应流程,为了简洁,在此不再赘述。
参见图11,图11是本申请实施例提供的一种计算设备的结构示意图。如图11所示,该计算设备20包括:处理器21、通信接口22以及存储器23,所述处理器21、通信接口22以及存储器23通过内部总线24相互连接。应理解,该计算设备可以是数据库服务器。
所述计算设备20可以是图1中部署了数据节点130和数据节点140的物理节点170。图1、图2和图3中的目标数据节点所执行的功能实际上是由所述计算设备的处理器21来执行。
所述处理器21可以由一个或者多个通用处理器构成,例如中央处理器(centralprocessing unit,CPU),或者CPU和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC)、可编程逻辑器件(programmablelogic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gatearray,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。
总线24可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。所述总线24可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但不表示仅有一根总线或一种类型的总线。
存储器23可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM);存储器23也可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM)、快闪存储器(flash memory)、硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器23还可以包括上述种类的组合。程序代码可以是用来实现数据存储装置10所示的的功能单元,或者用于实现图3所示的方法实施例中以目标数据节点为执行主体的方法步骤。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时,可以实现上述方法实施例中记载的任意一种的部分或全部步骤,以及实现上述图10所描述的任意一个功能单元的功能。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时,可以实现上述方法实施例中记载的任意一种的部分或全部步骤,以及实现上述图10所描述的任意一个功能单元的功能。
本申请实施例还提供了一种计算机程序产品,当其在计算机或处理器上运行时,使得计算机或处理器执行上述任一个方法中的一个或多个步骤。上述所涉及的设备的各组成单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在所述计算机可读取存储介质中。
在上述实施例中,对各个实施例的描述各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
还应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (14)
1.一种数据计算的方法,其特征在于,包括:
分布式数据库中的目标数据节点接收所述分布式数据库中的其它数据节点发送的与查询语句相关的数据;
所述目标数据节点对本地的数据和从所述其它数据节点接收的数据排序;
所述目标数据节点向所述分布式数据库中的至少一个数据节点发送排序后的多个数据,以便所述至少一个数据节点对各自接收的数据进行所述查询语句相关的计算;
所述方法还包括:
所述目标数据节点基于所述目标数据节点排序后的数据确定N个分区,所述N个分区中的不同分区包括至少一个不同的数据,所述N为大于1的整数,且所述N小于或等于所述分布式数据库具有的数据节点的数量;
所述目标数据节点向所述至少一个数据节点发送排序后的数据包括:
所述目标数据节点向所述分布式数据库的N个数据节点中除了所述目标数据节点以外的每个数据节点发送所述N个分区中的一个分区的数据;
所述目标数据节点基于所述目标数据节点排序后的数据确定N个分区包括:
所述目标数据节点根据所述目标数据节点排序后的数据的数据总量和数据重叠区间,基于所述目标数据节点排序后的数据得到所述N个分区。
2.如权利要求1所述的方法,其特征在于,所述方法包括:
所述其它数据节点各自对本地的数据进行排序,并向所述目标数据节点发送排序后的数据。
3.如权利要求1或2所述的方法,其特征在于,所述目标数据节点向所述至少一个数据节点发送排序后的多个数据,包括:
所述目标数据节点向所述分布式数据库中的多个数据节点中的不同数据节点发送至少一个不同的数据。
4.如权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述目标数据节点对所述排序后的数据中未向所述至少一个数据节点发送的数据进行所述查询语句相关的计算。
5.如权利要求1或2所述的方法,其特征在于,所述目标数据节点向所述其它数据节点发送排序后的多个数据包括:
所述目标数据节点按照物理节点的编号,将所述目标数据节点排序后的多个数据发送至所述至少一个数据节点,所述物理节点的编号对应的物理节点中包括所述分布式数据库中的至少一个数据节点。
6.如权利要求1或2所述的方法,其特征在于,所述至少一个数据节点对各自接收的数据进行所述查询语句相关的计算,包括:
所述至少一个数据节点对各自接收的数据进行所述查询语句的窗口函数的计算。
7.一种数据存储装置,其特征在于,包括:
接收单元,用于接收分布式数据库中的其它数据节点发送的与查询语句相关的数据;
处理单元,用于对本地的数据和从所述其它数据节点接收的数据排序;
发送单元,用于向所述分布式数据库中的至少一个数据节点发送排序后的多个数据,以便所述至少一个数据节点对各自接收的数据进行所述查询语句相关的计算;
所述处理单元,还用于基于所述排序后的数据确定N个分区,所述N个分区中的不同分区包括至少一个不同的数据,所述N为大于1的整数,且所述N小于或等于所述分布式数据库具有的数据节点的数量;
所述发送单元,具体用于:
向所述分布式数据库的N个数据节点中除了所述数据存储装置以外的每个数据节点发送所述N个分区中的一个分区的数据;
所述处理单元,具体用于:
根据所述排序后的数据的数据总量和数据重叠区间,基于所述排序后的数据得到所述N个分区。
8.如权利要求7所述的数据存储装置,其特征在于,所述接收单元,具体用于:
接收其它数据节点各自对本地的数据进行排序之后发送的数据。
9.如权利要求7或8所述的数据存储装置,其特征在于,所述发送单元,具体用于:
向所述分布式数据库中的多个数据节点中的不同数据节点发送至少一个不同的数据。
10.如权利要求7或8所述的数据存储装置,其特征在于,
所述处理单元,还用于对所述排序后的数据中未向所述至少一个数据节点发送的数据进行所述查询语句相关的计算。
11.如权利要求7或8所述的数据存储装置,其特征在于,所述发送单元,具体用于:
按照物理节点的编号,将所述排序后的多个数据发送至所述至少一个数据节点,所述物理节点的编号对应的物理节点中包括所述分布式数据库中的至少一个数据节点。
12.如权利要求7或8所述的数据存储装置,其特征在于,所述至少一个数据节点对各自接收的数据进行所述查询语句的窗口函数的计算。
13.一种计算设备,其特征在于,所述计算设备包括处理器和存储器,所述处理器执行所述存储器存储的计算机指令,使得所述计算设备执行权利要求1至6任一项所述的方法。
14.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序在被计算设备执行时实现权利要求1至6任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010076105.0A CN111324433B (zh) | 2020-01-22 | 2020-01-22 | 一种数据计算的方法及相关设备 |
PCT/CN2021/072472 WO2021147815A1 (zh) | 2020-01-22 | 2021-01-18 | 一种数据计算的方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010076105.0A CN111324433B (zh) | 2020-01-22 | 2020-01-22 | 一种数据计算的方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111324433A CN111324433A (zh) | 2020-06-23 |
CN111324433B true CN111324433B (zh) | 2023-11-10 |
Family
ID=71172843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010076105.0A Active CN111324433B (zh) | 2020-01-22 | 2020-01-22 | 一种数据计算的方法及相关设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111324433B (zh) |
WO (1) | WO2021147815A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324433B (zh) * | 2020-01-22 | 2023-11-10 | 华为云计算技术有限公司 | 一种数据计算的方法及相关设备 |
CN112257859B (zh) * | 2020-10-30 | 2024-07-05 | 地平线(上海)人工智能技术有限公司 | 特征数据处理方法及装置、设备、存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109032766A (zh) * | 2018-06-14 | 2018-12-18 | 阿里巴巴集团控股有限公司 | 一种事务处理方法、装置及电子设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7895317B2 (en) * | 2007-06-27 | 2011-02-22 | Computer Associates Think, Inc. | Autonomic control of a distributed computing system using finite state machines |
US9852184B2 (en) * | 2014-11-03 | 2017-12-26 | Sap Se | Partition-aware distributed execution of window operator |
CN105740264A (zh) * | 2014-12-10 | 2016-07-06 | 北大方正集团有限公司 | 一种分布式xml数据库的排序方法及装置 |
US11249973B2 (en) * | 2018-05-03 | 2022-02-15 | Sap Se | Querying partitioned tables in a distributed database |
CN111324433B (zh) * | 2020-01-22 | 2023-11-10 | 华为云计算技术有限公司 | 一种数据计算的方法及相关设备 |
-
2020
- 2020-01-22 CN CN202010076105.0A patent/CN111324433B/zh active Active
-
2021
- 2021-01-18 WO PCT/CN2021/072472 patent/WO2021147815A1/zh active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109032766A (zh) * | 2018-06-14 | 2018-12-18 | 阿里巴巴集团控股有限公司 | 一种事务处理方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111324433A (zh) | 2020-06-23 |
WO2021147815A1 (zh) | 2021-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111324433B (zh) | 一种数据计算的方法及相关设备 | |
CN105912399B (zh) | 一种任务处理方法、装置及系统 | |
US20060277295A1 (en) | Monitoring system and monitoring method | |
EP4002115A1 (en) | Resource allocation method and resource offloading method | |
CN114281521A (zh) | 优化深度学习异构资源通信效率方法、系统、设备及介质 | |
CN114237908A (zh) | 一种面向边缘计算的资源编排优化方法及系统 | |
CN110413393B (zh) | 集群资源管理方法、装置、计算机集群及可读存储介质 | |
CN110471947B (zh) | 基于分布式搜索引擎的查询方法、服务器和存储介质 | |
CN117472517B (zh) | 一种基于Flink分布式处理FTP文件的方法 | |
JP5108011B2 (ja) | バス接続されたコンシューマとプロデューサとの間でのメッセージ・フローを削減するためのシステム、方法、およびコンピュータ・プログラム | |
CN111522876B (zh) | 区块链共识方法、装置和计算机设备、及区块链节点 | |
CN111400241B (zh) | 数据重构方法和装置 | |
CN112187765A (zh) | 一种区块链中选择目标节点的方法及装置 | |
CN115421965A (zh) | 一致性校验方法、装置、电子设备及存储介质 | |
CN108108473B (zh) | 数据查询方法以及服务器 | |
CN115904729A (zh) | 一种连接分配的方法、装置、系统、设备及介质 | |
CN110046040B (zh) | 分布式任务处理方法及系统和存储介质 | |
CN114064706A (zh) | 数据存储方法、装置及服务器 | |
CN111464456B (zh) | 一种流量控制方法及装置 | |
CN111770025B (zh) | 一种并行数据分区方法、装置、电子设备及存储介质 | |
CN111831425B (zh) | 一种数据处理方法、装置及设备 | |
CN111181803B (zh) | 一种区块链性能度量方法和系统、设备及存储介质 | |
CN110460634B (zh) | 边缘计算共识请求管理方法和系统 | |
CN112711587A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
KR101989222B1 (ko) | 구조변이 검출 방법, 디바이스 및 시스템 |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220207 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Applicant after: Huawei Cloud Computing Technologies Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |