CN116980358A - 数据处理方法、装置、计算机设备、存储介质及产品 - Google Patents
数据处理方法、装置、计算机设备、存储介质及产品 Download PDFInfo
- Publication number
- CN116980358A CN116980358A CN202310507809.2A CN202310507809A CN116980358A CN 116980358 A CN116980358 A CN 116980358A CN 202310507809 A CN202310507809 A CN 202310507809A CN 116980358 A CN116980358 A CN 116980358A
- Authority
- CN
- China
- Prior art keywords
- task
- data
- task node
- node
- data transmission
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 20
- 230000005540 biological transmission Effects 0.000 claims abstract description 486
- 239000000872 buffer Substances 0.000 claims abstract description 395
- 238000012545 processing Methods 0.000 claims abstract description 231
- 238000000034 method Methods 0.000 claims abstract description 78
- 230000008569 process Effects 0.000 claims abstract description 42
- 230000006870 function Effects 0.000 claims description 42
- 238000011144 upstream manufacturing Methods 0.000 claims description 34
- 238000004590 computer program Methods 0.000 claims description 20
- 238000004806 packaging method and process Methods 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 description 29
- 238000010586 diagram Methods 0.000 description 18
- 238000013473 artificial intelligence Methods 0.000 description 8
- 230000000903 blocking effect Effects 0.000 description 8
- 230000002411 adverse Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000003058 natural language processing Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004140 cleaning Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000008571 general function Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 101100134058 Caenorhabditis elegans nth-1 gene Proteins 0.000 description 1
- 206010033799 Paralysis Diseases 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- 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
- G06F9/5038—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 considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (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
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据处理方法、一种数据处理装置、一种计算机设备、一种计算机可读存储介质及一种计算机程序产品。
背景技术
在实时流数据处理系统中,涉及到任务节点之间的数据传输。例如,将数据处理系统中的第一任务节点中的任务数据向第二任务节点进行传输,在任务节点间的数据传输过程中,主要依赖于信号机制,所谓信号机制是指基于一个信号量来指示第一任务节点向第二任务节点传输数据的数据量。
现有方案中,数据传输过程中所涉及到的信号量(可称为数据传输指标)通常是固定不变的,即每次数据传输均按照相同的信号量进行传输,这种基于固定信号量的数据传输方式不能较好的适配数据处理系统中的实时传输情况,可能会导致数据阻塞、系统瘫痪等不良情况的发生。
发明内容
本申请实施例提出了一种数据处理方法、装置、计算机设备、存储介质及产品,能够按照任务节点的缓冲区属性来确定数据传输指标,可较好适配数据传输的实时情况,从而提高数据传输的效率。
一方面,本申请实施例提供了一种数据处理方法,该方法包括:
获取第一任务节点中待传输的任务数据;
获取数据传输相关的传输属性信息,传输属性信息包括第二任务节点的缓冲区属性,第二任务节点是指需对任务数据进行处理的任务节点;
基于传输属性信息,确定第一任务节点与第二任务节点之间的数据传输指标,数据传输指标用于指示由第一任务节点向第二任务节点传输任务数据的数据量;
按照数据传输指标,将第一任务节点中的任务数据传输至第二任务节点中。
一方面,本申请实施例提供了一种数据处理装置,该装置包括:
获取单元,用于获取第一任务节点中待传输的任务数据;
获取单元,还用于获取数据传输相关的传输属性信息,传输属性信息包括第二任务节点的缓冲区属性,第二任务节点是指需对任务数据进行处理的任务节点;
处理单元,用于基于传输属性信息,确定第一任务节点与第二任务节点之间的数据传输指标,数据传输指标用于指示由第一任务节点向第二任务节点传输任务数据的数据量;
处理单元,还用于按照数据传输指标,将第一任务节点中的任务数据传输至第二任务节点中。
在一种可能的实现方式中,待传输的任务数据应用于数据处理系统中,数据处理系统用于执行数据处理任务,数据处理任务包含需顺序执行的N个子任务,数据处理系统中包含N个任务节点,每个任务节点用于按序执行一个子任务,N为大于1的整数;
第一任务节点为第二任务节点的上游节点,第二任务节点为第一任务节点的下游节点;其中,上游节点对应的子任务的执行顺序优先于下游节点对应的子任务的执行顺序。
在一种可能的实现方式中,缓冲区属性包括可支配缓冲区的数量,一个可支配缓冲区用于指示允许被支配的一个任务数据的数据单位;获取单元获取数据传输相关的传输属性信息,用于执行以下操作:
获取缓冲区属性的访问函数,访问函数用于在预设时间段内获取数据处理系统中任一个任务节点对应的可支配缓冲区的数量;
在数据处理系统中运行访问函数,以获取数据处理系统中的第二任务节点的可支配缓冲区的数量。
在一种可能的实现方式中,处理单元基于传输属性信息,确定第一任务节点与第二任务节点之间的数据传输指标,用于执行以下操作:
获取第一任务节点的可支配缓冲区的数量;
基于第一任务节点的可支配缓冲区的数量、以及第二任务节点的可支配缓冲区的数量,确定第一任务节点与第二任务节点之间的数据传输指标。
在一种可能的实现方式中,处理单元基于第一任务节点的可支配缓冲区的数量、以及第二任务节点的可支配缓冲区的数量,确定第一任务节点与第二任务节点之间的数据传输指标,用于执行以下操作:
若第一任务节点的可支配缓冲区的数量大于或等于第二任务节点的可支配缓冲区的数量,则将第二任务节点的可支配缓冲区的数量作为第一任务节点与第二任务节点之间的数据传输指标;或者,
若第一任务节点的可支配缓冲区的数量小于第二任务节点的可支配缓冲区的数量,则对第一任务节点的可支配缓冲区的数量和第二任务节点的可支配缓冲区的数量进行平均运算后再进行取整运算,并将取整运算后确定的值作为第一任务节点与第二任务节点之间的数据传输指标。
在一种可能的实现方式中,传输属性信息还包括K个关联任务节点的缓冲区属性,一个关联任务节点是指在所述数据处理系统中第一任务节点的上游节点,缓冲区属性包括可支配缓冲区的数量,K为整数;
处理单元基于传输属性信息,确定第一任务节点与第二任务节点之间的数据传输指标,用于执行以下操作:
基于访问函数获取所述K个关联任务节点中各关联任务节点的可支配缓冲区的数量;
获取第一任务节点的可支配缓冲区的数量;
按照各关联任务节点的可支配缓冲区的数量、第一任务节点的可支配缓冲区的数量、以及第二任务节点的可支配缓冲区的数量,确定第一任务节点与第二任务节点之间的数据传输指标。
在一种可能的实现方式中,处理单元按照各关联任务节点的可支配缓冲区的数量、第一任务节点的可支配缓冲区的数量、以及第二任务节点的可支配缓冲区的数量,确定第一任务节点与所述第二任务节点之间的数据传输指标,用于执行以下操作:
对各关联任务节点的可支配缓冲区的数量、第一任务节点的可支配缓冲区的数量、以及第二任务节点的可支配缓冲区的数量进行运算处理;
基于运算处理后的值,确定第一任务节点与第二任务节点之间的数据传输指标;
其中,运算处理包括以下任一项:平均运算处理、加权运算处理、指数衰减运算。
在一种可能的实现方式中,处理单元按照数据传输指标,将第一任务节点中的任务数据传输至第二任务节点中,用于执行以下操作:
当第一任务节点中的任务数据的数据量大于数据传输指标所指示的数据量时,将第一任务节点中的任务数据按照数据传输指标所指示的数据量依次传输至第二任务节点中;或者,
当第一任务节点中的任务数据的数据量小于或等于数据传输指标所指示的数据量时,将第一任务节点中的任务数据统一传输至第二任务节点中;
其中,分批次传输任务数据的方式包括以下至少一种:对任务数据分批次进行传输、按照任务数据的产生时间的先后顺序进行传输、按照任务数据的数据容量的大小进行传输、按照任务数据的业务类型进行传输。
在一种可能的实现方式中,任一任务节点具备缓冲区;缓冲区包括以下任一种或多种:数据发送缓冲区、数据接收缓冲区、网络缓冲区、通道缓冲区;其中,
待传输的任务数据基于第一任务节点的通道缓冲区,存储至第一任务节点的数据发送缓冲区中;
在任务数据的传输过程中,基于第二任务节点的数据接收缓冲区接收任务数据,并基于第二任务节点的网络缓冲区对任务数据进行处理。
在一种可能的实现方式中,处理单元按照数据传输指标,将第一任务节点中的任务数据传输至第二任务节点中,还用于执行以下操作:
获取第一任务节点中各任务数据的业务类型;
按照获取到的业务类型的数量和所述数据传输指标,确定各任务数据的数据传输方式;
将第一任务节点中的任务数据按照数据传输方式传输至第二任务节点中。
在一种可能的实现方式中,处理单元按照获取到的业务类型的数量和数据传输指标,确定各任务数据的数据传输方式,包括以下任一种:
若业务类型的数量为一种,则将各任务数据的数据传输方式确定为:按照数据传输指标,将第一任务节点中的任务数据传输至所述第二任务节点中;
若业务类型的数量为多种,则将各任务数据的数据传输方式确定为:将同一业务类型的任务数据按照数据传输指标所指示的数据量依次传输至第二任务节点中;
若业务类型的数量为多种,则将各任务数据的数据传输方式确定为:按照数据传输指标所指示的数据量从第一任务节点中选择各业务类型的任务数据进行打包处理,并依次将打包后的任务数据包传输至第二任务节点中。
一方面,本申请实施例提供一种计算机设备,该计算机设备包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述的数据处理方法。
一方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被计算机设备的处理器读取并执行时,使得计算机设备执行上述的数据处理方法。
一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的数据处理方法。
本申请实施例中,首先可以获取第一任务节点中待传输的任务数据,然后可以获取数据传输相关的传输属性信息,该传输属性信息包括第二任务节点的缓冲区属性,第二任务节点是指需对任务数据进行处理的任务节点;接下来,可基于传输属性信息,确定第一任务节点与第二任务节点之间的数据传输指标;按照数据传输指标,将第一任务节点中的任务数据传输至第二任务节点中。由此可见,本申请中的数据传输指标可基于需接收任务数据的第二任务节点的缓冲区属性进行确定,该数据传输指标与数据传输过程涉及的任务节点自身的属性息息相关,从而使得数据传输指标能较好地适配任务节点的缓冲能力;进一步地,任务节点的缓冲能力反映了数据传输过程中的实时传输情况,那么该数据传输指标进一步还可较好适配数据传输的实时情况,避免因数据传输指标不恰导致的数据阻塞等不良情况,从而可提高数据传输的效率。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本申请实施例提供的一种数据处理系统的结构示意图;
图1b是本申请实施例提供的一种区块链系统的结构示意图;
图2a是本申请实施例提供的一种数据处理系统的架构示意图;
图2b是本申请实施例提供的一种数据传输过程的原理示意图;
图3是本申请实施例提供的一种数据处理方法的流程示意图;
图4a是本申请实施例提供的一种数据传输过程的流程示意图;
图4b是本申请实施例提供的另一种数据传输过程的流程示意图;
图5是本申请实施例提供的另一种数据处理方法的流程示意图;
图6是本申请实施例提供的另一种数据处理系统的结构示意图;
图7是本申请实施例提供的一种数据传输场景的示意图;
图8是本申请实施例提供的一种数据处理装置的结构示意图;
图9是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
本申请提供了一种数据处理方案,该数据处理方案适用于诸如:广告系统、直播系统、游戏系统等实时的流式数据处理系统中,支持动态确定数据处理系统中任意两个任务节点间的数据传输指标,这两个任务节点之间可基于数据传输指标所指示的数据量进行数据传输,可较好适配数据传输的实时情况,从而可以提高数据传输过程的效率。详细地,本申请提供的数据处理方案的原理大致如下:首先可以获取第一任务节点中待传输的任务数据,然后可以获取数据传输相关的传输属性信息,该传输属性信息包括第二任务节点的缓冲区属性,第二任务节点是指需对任务数据进行处理的任务节点;接下来,可基于传输属性信息,确定第一任务节点与第二任务节点之间的数据传输指标;按照数据传输指标,将第一任务节点中的任务数据传输至第二任务节点中。由此可见,本申请中的数据传输指标可基于需接收任务数据的第二任务节点的缓冲区属性进行确定,该数据传输指标与数据传输过程涉及的任务节点自身的属性息息相关,从而使得数据传输指标能较好地适配任务节点的缓冲能力;进一步地,任务节点的缓冲能力反映了数据传输过程中的实时传输情况,那么该数据传输指标进一步还可较好适配数据传输的实时情况,避免因数据传输指标不恰导致的数据阻塞等不良情况,从而可提高数据传输的效率。
接下来,对数据处理方案中所涉及到的关键技术术语进行详细介绍:
一、第一任务节点和第二任务节点:
任务节点是指在数据处理系统中用于执行任务的一种对象,该对象具体可以为软件对象(例如程序代码)或硬件对象(例如系统模块、功能设备等)。本申请实施例中,第一任务节点和第二任务节点处于同一数据处理系统中,该数据处理系统用于执行数据处理任务,该数据处理任务包含需顺序执行的N个子任务,数据处理系统中包含N个任务节点,每个任务节点用于按序执行一个子任务,N为大于1的整数。
具体地,第一任务节点和第二任务节点为数据处理系统中的任意两个相邻的任务节点,所谓相邻是指:二者所处的位置之间不包含其它任何节点,相邻可以包括上下相邻、左右相邻、前后相邻等等;具体地,第一任务节点可以为第二任务节点的上游节点,第二任务节点可以为第一任务节点的下游节点;其中,上游节点对应的子任务的执行顺序优先于下游节点对应的子任务的执行顺序。具体地,第一任务节点对应执行的子任务例如可以包括:获取任务数据的任务;第二任务节点对应执行的子任务例如可以包括:接收第一任务节点中待传输的任务数据,并对该任务数据进行数据处理的任务。也就是说,第一任务节点是指发送任务数据的任务节点,第二任务节点是指接收任务数据的任务节点。
请参见图1a,图1a是本申请实施例提供的一种数据处理系统的结构示意图,该数据处理系统例如可以为Flink系统(一种开源的分布式流数据引擎,Flink系统以数据并行和流水线方式执行任意流数据程序),该Flink系统中包括:任务节点A、任务节点B、以及任务节点C,任务节点A、B、C之间按序执行该数据处理系统中的数据处理任务,数据处理任务例如包括子任务1、子任务2、子任务3,具体地,任务节点A可用于执行获取源数据的子任务1;任务节点B可用于执行接收任务节点A发送的任务数据,并对该任务数据进行数据处理的子任务2;任务节点C可用于执行接收任务节点B的数据处理结果,并将数据处理结果存储至预设数据库中的子任务3。如前述,按照任务节点对应的子任务的执行顺序,任意两个任务节点之间可以相互称为上游节点及下游节点,例如,任务节点A是任务节点B的上游节点(相应的,任务节点B是任务节点A的下游节点),任务节点B是任务节点C的上游节点(相应的,任务节点C是任务节点B的下游节点),任务节点A是任务节点C的上游节点(相应的,任务节点C是任务节点A的下游节点)。本申请中的第一任务节点和第二任务节点为两个相邻的任务节点,那么,第一任务节点可以为任务节点A,第二任务节点可以为任务节点B;或者,第一任务节点可以为任务节点B,第二任务节点可以为任务节点C。
二、任务数据:
任务数据是指数据处理系统中的任务节点在执行相应子任务过程中对应被执行的对象,该任务数据可以从业务系统中获取得到。其中,业务系统可以包括但不限于:区块链系统、游戏系统、直播系统、广告系统等任意类型的系统,本申请中并不对业务系统的类型进行具体限定。那么相应的,在不对业务系统的类型进行限定的情况下,那么相应的,本申请同样不对任务数据的业务类型进行具体限定。例如,任务数据的业务类型可以包括但不限于:游戏类型、直播类型、教育类型等任意类型。
任务数据可以包括以下任一种:源数据、中间数据、结果数据。其中,源数据是指未经任何处理的原始数据;中间数据是指对源数据经过一系列数据处理(例如特征提取、数据清洗、归一化等处理)后得到的数据;结果数据是指对中间数据进行再次处理(例如按照指定格式写入至预设数据库中)后得到的最终结果。如图1a所示,任务节点A中的任务数据可以称为源数据,任务节点B中的任务数据可以称为中间数据,任务节点C中的任务数据可以称为结果数据。
三、传输属性信息及缓冲区属性:
传输属性信息是一种用于描述在传输任务数据的数据传输过程中所关联的属性信息,该传输属性信息例如可以包括:任务数据的数据量、传输方向等任一种或多种属性。其中,数据量是指第一任务节点中待传输的任务数据的数量,该数据量的计量单位可以为“个”,例如数据量为:5个、10个等;传输方向例如可以包括以下至少一种:由第一任务节点传输至第二任务节点的方向、或由第二任务节点传输至第一任务节点的方向。在一种实施方式中,任务数据是由第一任务节点向第二任务节点进行传输的,那么该传输属性信息可以包括第二任务节点的缓冲区属性;在另一种实施方式,传输属性信息还可以包括第一任务节点相关联的上游节点的缓冲区属性,如图1a所示,若第一任务节点为任务节点B,第二任务节点为任务节点C,则在任务节点B向任务节点C进行数据传输的过程中,传输属性信息除了可以包括:任务节点C的缓冲区属性,还可以包括任务节点A的缓冲区属性。
缓冲区属性具体可以包括:可支配缓冲区的数量、大小、类型等属性。其中,一个可支配缓冲区(后续简称缓冲区)用于指示任务节点可支配一个任务数据,即该可支配缓冲区是一种用于描述任务节点支配任务数据的数据单位,所谓支配可以包括以下至少一种操作:存储、处理、以及发送,即一个可支配缓冲区用于指示任务节点可存储(或处理、或发送)一个任务数据。具体地:a.若任一任务节点的可支配缓冲区数量为X(X为正整数),则该任务节点可用于支配X个任务数据。b.一个缓冲区的大小用于描述可支配一个任务数据的数据容量,数据容量是指任一个任务数据在数据处理系统中所占用的字节数量,该数据容量的计量单位可以为“KB”(千字节)、“MB”(兆)、“GB”(吉字节或十亿字节)等,例如缓冲区的大小表示为16KB、或32KB等,那么该缓冲区用于描述可支配的一个数据容量为16KB或32KB的任务数据。c.按照类型来划分,缓冲区可以包括但不限于:Send Buffer(数据发送缓冲区)、Receive Buffer(数据接收缓冲区)、Network Buffer(网络缓冲区)、Channel Buffer(通道缓冲区)。具体地,①Send Buffer是指Flink系统中上游节点向下游节点发送任务数据的缓冲区;②Receive Buffer是指Flink系统中下游节点接收上游节点的任务数据的缓冲区;③Network Buffer是指处理任务数据的缓冲区;④Channel Buffer是指任务数据在传输过程中所使用的缓冲区。如图1a所示,例如在任务节点A和任务节点B进行数据传输的过程中,任务节点A可基于Send Buffer向任务节点B发送任务数据,任务节点B可基于Receive Buffer接收任务节点A所发送的任务数据;又如在任务节点B和任务节点C进行数据传输的过程中,任务节点B可基于Send Buffer向任务节点C发送任务数据,任务节点C可基于ReceiveBuffer接收任务节点B发送的任务数据。
四、数据传输指标:
数据传输指标是一种用于指示任务节点之间在进行数据传输时的指示信息,具体地,数据传输指标可以为用于指示由第一任务节点向第二任务节点传输任务数据的数据量;应当理解,此处的数据量是指一次数据传输过程中的最大传输量。例如,数据传输指标所指示的数据量为100,若第一任务节点中的任务数据的数量为120,则第一任务节点向第二任务节点进行一次数据传输时,可传输100个任务数据;若第一任务节点中的任务数据的数量为80,则第一任务节点向第二任务节点进行一次数据传输时,可传输80个任务数据。
本申请实施例中,在第一任务节点和第二任务节点之间传输的任务数据是流式产生的,即第一任务节点中可以不断获取到新的任务数据,那么可以将这些任务数据流式传输至第二任务节点中。在流式传输任务数据的过程中,可动态获取不同时间段内与数据传输相关的传输属性信息,从而基于该传输属性信息可以动态确定不同时间段内的数据传输指标,那么在流式数据传输的场景中,即可按照动态的数据传输指标进行数据传输,可提高数据传输的效率。
五、区块链:
如前述,本申请中涉及的数据处理系统可以是区块链系统。其中,区块链(Blockchain)本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了交易相关的交易数据,用于验证交易数据的有效性(防伪)和生成下一个区块。请参见图1b,图1b是本申请实施例提供的一种区块链系统的结构示意图。如图1b所示,区块链系统可以为数据共享系统,所谓数据共享系统是指用于进行节点设备与节点设备之间数据共享的系统,该数据共享系统100中可以包括多个节点设备101,多个节点设备101可以是指数据共享系统中各个计算机设备,计算机设备例如可以为终端设备或服务器。其中,不同的节点设备101的设备类型可以相同,也可以不相同,例如某一节点设备101可以为终端设备,另一节点设备101可以为服务器。
具体地,每个节点设备101在进行正常工作时可以接收到输入信息,并基于接收到的输入信息维护该数据共享系统内的共享数据。例如,当区块链系统中的任一节点设备101中的任务节点A在接收到输入信息(例如任务数据)时,该节点设备101中的任务节点A可以将任务数据发送至任务节点B,然后由任务节点B对任务数据进行数据处理,得到数据处理结果,并将数据处理结果存储至节点设备101的本地数据库(任务节点C)中。应当理解,当节点设备101完成对任务数据的数据处理后,可将数据处理结果作为共享数据广播至区块链中的其它各个节点设备进行本地存储,从而使得区块链系统中各个节点设备均可存储该任务数据的数据处理结果(共享数据)。
本申请实施例中,可以将数据处理过程所涉及的任务数据、传输属性信息、以及数据传输指标存储至区块链中。由于区块链的不可篡改等结构特征,可上述数据能够安全、可靠地存储至区块链中,便于后续进行数据处理结果的安全获取、以及任务数据的追溯等流程。
六、人工智能:
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大模型训练技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
本申请实施例提供的数据处理方案可以与人工智能领域的计算机视觉技术、自然语言处理技术相结合。例如,当数据处理方案中所涉及到的任务数据是直播数据时,则可以基于计算机视觉技术将直播数据进行画面渲染等转换处理,以得到便于用户观看的直播画面;又如,当数据处理方案中所涉及到的任务数据是游戏数据时,则可基于自然语言处理技术对该游戏数据进行格式转换(例如游戏程序语言转换为自然语言),以得到便于用户理解的自然语言。
七、云技术:
本申请中,上述提及的数据处理方案中主要包括:基于传输属性信息,确定第一任务节点与第二任务节点之间的数据传输指标、以及按照数据传输指标,将第一任务节点中的任务数据传输至第二任务节点中等处理过程,这些处理过程往往涉及大量的数据计算以及数据存储服务,需要花费大量的计算机运营成本。因此,本申请所涉及到的数据计算以及数据存储等服务均可以由云技术中的云存储技术进行实现。其中,所谓云技术(Cloudtechnology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。其中,云技术可以包括云存储技术,所谓云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。
需要特别说明的是,在本申请中,涉及到的数据处理过程中的相关数据,例如传输属性信息、数据传输指标、任务数据等等。在本申请以上实施例运用到具体产品或技术中时,需获得用户许可或同意,且相关数据收集、使用和处理过程需遵守国家和地区的相关法律法规和标准,符合合法、正当、必要的原则,不涉及获取法律法规禁止或限制的数据类型。在一些可选的实施例中,本申请实施例中所涉及的相关数据是经过对象单独授权后获取的,另外,在获取对象单独授权时,向对象表明所涉及的相关数据的用途。
下面结合图2a-图2b对本申请实施例提出的数据处理系统进行详细介绍。
请参见图2a,图2a是本申请实施例提供的一种数据处理系统的架构示意图。该数据处理系统的架构图包括:服务器204以及终端设备集群,其中,终端设备集群包括:终端设备201、终端设备202、终端设备203等多个终端设备。当然,终端设备集群中的终端设备的数量仅用于示例,本申请实施例并不对终端设备的数量进行限定。其中,终端设备集群中的任一终端设备与服务器204之间可以通过有线或无线通信方式进行直接或间接地连接。
终端设备集群中的各终端设备可以是手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(MID,mobile internet device)、车辆、车载设备、路边设备、飞行器、可穿戴设备,诸如智能手表、智能手环、计步器等的智能设备,虚拟现实设备....等等。可以理解的是,终端设备集群中的各终端设备的类型可以相同或不同,例如:终端设备201可以是手机,终端设备202也可以是手机。再如:终端设备201可以是平板电脑,终端设备203可以是车载设备。本申请并不对终端设备集群中的终端设备的数量及类型进行限定。
服务器204可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
下面对服务器204与各终端设备之间的数据交互过程进行详细介绍:
①服务器204可用于负责接收源数据(Source),这些源数据(即待传输的任务数据)可以是由服务器204从各个业务系统(例如游戏系统、直播系统、广告系统等等)中获取到的。其中,游戏系统中获取到的源数据的业务类型为游戏类型,直播系统中获取到的源数据的业务类型可以为直播类型,广告系统中获取到的源数据的业务类型可以为教育类型。
②服务器204可以将获取到的源数据按照业务类型分别发送至各个终端设备,例如服务器204可以将游戏类型的源数据发送至终端设备201;又如服务器204可以将直播类型的源数据发送至终端设备202;还如服务器204可以将教育类型的源数据发送至终端设备203。
③各终端设备分别对获取到的源数据执行相应的数据处理任务。其中,任一终端设备包括多个任务节点,每个任务节点用于按序执行数据处理任务中的一个子任务。例如终端设备201可以包括任务节点A、任务节点B、任务节点C(如图1a所示),该终端设备201中的任务节点A用于接收服务器204发送的游戏类型的源数据,并将该游戏类型的源数据发送至任务节点B;任务节点B用于接收任务节点A发送的任务数据,并对任务数据进行数据处理,得到数据处理结果;任务节点C用于接收任务节点B发送的数据处理结果,并将数据处理结果写入至预设数据库中。
需要说明的是,各终端设备中所包括的任务节点的数量及类型可以相同,也可以不相同,例如终端设备202可以包括4个任务节点,还如终端设备203可以包括5个任务节点等等。应当理解的是,上述数据交互过程仅用于示例,在一种可能的实现方式中,终端设备集群也可以构成一个业务系统,不同的终端设备可用于产生不同业务类型的源数据(任务数据),例如终端设备201可以生成游戏类型的源数据;又如终端设备202可以生成直播类型的源数据;再如终端设备203可以生成教育类型的源数据;然后各终端设备(终端设备201、终端设备202、终端设备203)可分别将各自的源数据作为待传输的任务数据发送至服务器204。服务器204用于执行对获取到的一种或多种业务类型的任务数据执行数据处理任务,即服务器204中包括多个任务节点,每个任务节点用于按序执行数据处理任务中的一个子任务。
下面以终端设备201为例,对该终端设备201中任务节点A和任务节点B之间的数据传输过程进行详细介绍:
请参见图2b,图2b是本申请实施例提供的一种数据传输过程的原理示意图。如图2b所示,终端设备201中运行有Flink系统,该Flink系统中包括:任务节点A和任务节点B。①Flink系统中的任务节点A或任务节点B是基于Operator(操作系统)来执行相应子任务的。例如,任务节点A基于Operator执行源数据的获取任务,任务节点B基于Operator执行对任务节点A传输的任务数据的数据处理任务。进一步地,在基于Operator执行相应子任务的过程中,可基于Network Buffer(网络缓冲区)进行相应子任务的具体执行逻辑。
②Flink系统基于Netty框架完成其在网络上传输数据的任务,即Flink系统中的各任务节点基于Netty框架进行数据传输。所谓Netty框架是一种基于JAVA NIO类库的异步通信框架,该Netty框架可分为客户端和服务端,Netty框架中的每个task manager(任务节点)即可作为客户端也可作为服务端,当任务节点作为客户端时,用于向上游节点请求任务数据;当任务节点作为服务端时,用于接收下游节点的数据获取请求,以将任务数据发送给下游节点。例如当task manager B(任务节点B)作为客户端时,用于向task manager A(任务节点A)请求任务数据;当任务节点A作为服务端时,用于接收任务节点B的数据获取请求,并将任务节点A中的任务数据传输至任务节点B中。Netty框架中任一任务节点所执行的数据处理逻辑是在Channel(通道)中完成的,具体地,任务节点A和任务节点B均具备ChannelBuffer(通道缓冲区),并基于该Channel Buffer执行相应的数据处理逻辑。
③Netty框架中任务节点A和任务节点B之间可基于Socket协议(套接字协议,一种用于网络通信的协议)进行数据传输。具体地,任务节点A可基于运行有Socket协议的SendBuffer向下游节点(任务节点B)发送任务数据,任务节点B可基于运行有Socket协议的Receive Buffer接收上游节点(任务节点A)传输的任务数据。
总结来说,任务节点A和任务节点B之间的数据传输过程如下:首先,任务节点A可以将源数据作为待传输的任务数据,并基于图2b所示的Netty框架向任务节点B传输任务数据;然后,可获取与数据传输相关的传输属性信息,该传输属性信息可以包括任务节点B的缓冲区属性(例如任务节点B中的Receive Buffer的数量);接下来,基于传输属性信息,确定任务节点A与任务节点B之间的数据传输指标,该数据传输指标用于指示由任务节点A向任务节点B传输任务数据的数据量;最后,按照数据传输指标,将任务节点A中的任务数据传输至任务节点B中。
在一种可能的实现方式中,可以将本申请实施例提供的数据处理系统部署在区块链系统中,例如可以将服务器204和终端设备集群中包括的每个终端设备(例如终端设备201、终端设备202、以及终端设备203等)均当成区块链的节点设备,共同构成区块链网络。因此本申请实施例的数据处理过程可以在区块链上执行,这样既可以保证数据处理流程的公平公正化,同时可以使得数据处理流程具备可追溯性,同时保证数据处理过程中数据安全性,从而提升整个数据处理流程的安全性和可靠性。
本申请实施例中,首先可以获取第一任务节点中待传输的任务数据,然后可以获取数据传输相关的传输属性信息,该传输属性信息包括第二任务节点的缓冲区属性,第二任务节点是指需对任务数据进行处理的任务节点;接下来,可基于传输属性信息,确定第一任务节点与第二任务节点之间的数据传输指标;按照数据传输指标,将第一任务节点中的任务数据传输至第二任务节点中。由此可见,本申请中的数据传输指标可基于需接收任务数据的第二任务节点的缓冲区属性进行确定,该数据传输指标与数据传输过程涉及的任务节点自身的属性息息相关,从而使得数据传输指标能较好地适配任务节点的缓冲能力;进一步地,任务节点的缓冲能力反映了数据传输过程中的实时传输情况,那么该数据传输指标进一步还可较好适配数据传输的实时情况,避免因数据传输指标不恰导致的数据阻塞等不良情况,从而可提高数据传输的效率。
可以理解的是,本申请实施例描述的系统架构示意图是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
基于前述对本申请数据处理方案和数据处理系统的相关描述,接下来将结合附图对数据处理方案所涉及的具体实施例进行详细描述。
请参见图3,图3是本申请实施例所提供的一种数据处理方法的流程示意图。该数据处理方法可以由计算机设备执行,该计算机设备可以是图2a的数据处理系统中终端设备或服务器。其中,该数据处理方法主要包括但不限于如下步骤S301~S304:
S301:获取第一任务节点中待传输的任务数据。
待传输的任务数据应用于数据处理系统中,该数据处理系统用于执行数据处理任务,数据处理任务包含需顺序执行的N个子任务,数据处理系统中包含N个任务节点,每个任务节点用于按序执行一个子任务,N为大于1的整数。可选的,数据处理系统中执行的数据处理任务可以为一个或多个,当数据处理任务为多个时,多个数据处理任务可被并行执行,如图2a所示的数据处理系统,一个终端设备分别对应执行一个数据处理任务,为便于说明,本申请后续实施例均以数据处理系统执行一个数据处理任务为例进行示例说明。
第一任务节点可以为数据处理系统中除最后一个节点之外的任一个任务节点,即第一任务节点可以为数据处理系统中的第一个任务节点、第二个任务节点...第N-1个任务节点。
在一种可能的实现方式中,计算机设备获取第一任务节点中待传输的任务数据,可以包括如下步骤:计算机设备从业务系统中获取源数据,并基于源数据生成第一任务节点中待传输的任务数据。其中,业务系统可以为任意类型的系统,例如业务系统可以是去中心化的实时业务系统(例如区块链系统);又如业务系统可以是中心化的实时业务系统(例如游戏系统、直播系统、广告系统等),所谓实时业务系统是指可实时、源源不断的产生新数据的系统,实时业务系统也可称为流式数据系统。具体地,计算机设备获取到源数据后,可以基于第一任务节点对该源数据进行数据预处理(例如数据清洗、数据格式转换等),并将预处理后的源数据作为待传输的任务数据存储至第一任务节点中。
在另一种可能的实现方式中,计算机设备获取第一任务节点中待传输的任务数据,还可以包括如下步骤:接收第一任务节点的上游节点发送的中间数据,并基于中间数据生成第一任务节点中待传输的任务数据。具体地,第一任务节点的上游节点是指在数据处理系统中子任务的执行顺序优先于第一任务节点对应的子任务的执行顺序的任务节点;第一任务节点可以对该中间数据执行该第一任务节点对应的子任务(例如特征提取、归一化等处理)后,生成待传输的任务数据。
S302:获取与任务数据的数据传输过程相关的传输属性信息,传输属性信息包括第二任务节点的缓冲区属性,第二任务节点是指需对任务数据进行处理的任务节点。
第二任务节点可以为数据处理系统中除第一个节点之外的任一个任务节点,且第二任务节点与第一任务节点不相同,即第二任务节点可以为数据处理系统中的第二个任务节点、第三个任务节点...第N个任务节点。其中,第一任务节点为第二任务节点的上游节点,第二任务节点为第一任务节点的下游节点,并且第二任务节点与第一任务节点相邻。例如图1a所示,第一任务节点可以为任务节点A,第二任务节点可以为任务节点B;或者,第一任务节点可以为任务节点B,第二任务节点可以为任务节点C。
传输属性信息包括第二任务节点的缓冲区属性,第二任务节点的缓冲区属性可以包括:可支配缓冲区的数量(简称buffer数量),一个可支配缓冲区用于指示任务节点可支配一个任务数据,所述支配包括以下至少一种操作:存储、处理、发送,即一个可支配缓冲区对应一个任务数据。如前述,缓冲区可以包括以下至少一种或多种:数据接收缓冲区(Receive Buffer)、数据发送缓冲区(Send Buffer)、网络缓冲区(Network Buffer),通道缓冲区(Channel Buffer);可支配缓冲区是指数据为空的缓冲区。那么,一个数据接收缓冲区用于接收一个任务数据;一个数据发送缓冲区用于发送一个任务数据;一个网络缓冲区用于处理一个任务数据;一个通道缓冲区用于接收传输一个任务数据。
S303:基于传输属性信息,确定第一任务节点与第二任务节点之间的数据传输指标。
由于传输属性信息是与数据传输相关的信息,那么基于传输属性信息可以确定第一任务节点与第二任务节点之间的数据传输指标。其中,数据传输指标用于指示第一任务节点向第二任务节点传输任务数据的数据量(信号量)。
S304:按照数据传输指标,将第一任务节点中的任务数据传输至第二任务节点中。
具体地,任一任务节点具备缓冲区;缓冲区包括以下任一种或多种:数据发送缓冲区、数据接收缓冲区、网络缓冲区、通道缓冲区。如图2b所示,待传输的任务数据基于第一任务节点的通道缓冲区,存储至第一任务节点的数据发送缓冲区中;在任务数据的传输过程中,基于第二任务节点的数据接收缓冲区接收任务数据,并基于第二任务节点的网络缓冲区对任务数据进行处理。后续,处理后的任务数据可以基于第二任务节点的通过缓冲区存储至数据发送缓冲区中,后续,可以将第二任务节点中处理后的任务数据基于数据发送缓冲区发送至第三任务节点中...以此类推,从而实现对任务数据的流式传输和数据处理。
本申请实施例中,首先可以获取第一任务节点中待传输的任务数据,然后可以获取数据传输相关的传输属性信息,该传输属性信息包括第二任务节点的缓冲区属性,第二任务节点是指需对任务数据进行处理的任务节点;接下来,可基于传输属性信息,确定第一任务节点与第二任务节点之间的数据传输指标;按照数据传输指标,将第一任务节点中的任务数据传输至第二任务节点中。由此可见,本申请中的数据传输指标可基于需接收任务数据的第二任务节点的缓冲区属性进行确定,该数据传输指标与数据传输过程涉及的任务节点自身的属性息息相关,从而使得数据传输指标能较好地适配任务节点的缓冲能力;进一步地,任务节点的缓冲能力反映了数据传输过程中的实时传输情况,那么该数据传输指标进一步还可较好适配数据传输的实时情况,避免因数据传输指标不恰导致的数据阻塞等不良情况,从而可提高数据传输的效率。
下面对传输属性信息的获取过程进行具体介绍:
在一种可能的实现方式中,计算机设备获取数据传输相关的传输属性信息,可以包括如下步骤:(1)获取缓冲区属性的访问函数,该访问函数用于获取数据处理系统中任一任务节点的缓冲区属性,具体地,该访问函数用于在预设时间段内(例如一小时、一天、一周等)获取数据处理系统中任一个任务节点对应的可支配缓冲区的数量;(2)在数据处理系统中运行缓冲区属性的访问函数,以获取数据处理系统中的第二任务节点的可支配缓冲区的数量。
具体实现时,访问函数可以是计算机设备为该数据处理系统自定义设置的,也可以是计算机设备从其他设备/程序中获取到的通用函数,本申请实施例对访问函数的来源不做限定。进一步地,在运行访问函数后,可定期记录第二任务节点的可支配缓冲区的数量至预设数据库中,例如预设数据库可以包括但不限于:Redis数据库、MySQL数据库、Oracle数据库等。具体地,可以将获取到的第二任务节点的可支配缓冲区的数量按照获取时间关联存储至Redis数据库中,Redis数据库可以按照键值对:k(key)-v(value)的数据格式进行数据存储。例如Redis数据库的存储格式可以如下表1所示:
表1.Redis数据库的存储格式
获取时间 | 第二任务节点的可支配缓冲区的数量 |
t1 | buffer1 |
t2 | buffer2 |
t3 | buffer3 |
在另一种可能的实现方式中,传输属性信息还可以包括:第二任务节点的缓冲区属性和K(K为整数)个关联任务节点的缓冲区属性,一个关联任务节点是指在数据处理系统中第一任务节点的上游节点,缓冲区属性包括可支配缓冲区的数量。计算机设备获取数据传输相关的传输属性信息,还可以包括如下步骤:(1)获取缓冲区属性的访问函数,该访问函数用于在预设时间段内(例如一小时、一天、一周等)获取数据处理系统中任一个任务节点对应的可支配缓冲区的数量;(2)在数据处理系统中运行访问函数,以获取数据处理系统中的K个关联任务节点中各个关联任务节点的可支配缓冲区的数量、以及第二任务节点的可支配缓冲区的数量。如前述,可以将获取到的各个任务节点(K个关联任务节点、第二任务节点)的可支配缓冲区的数量按照获取时间关联存储至Redis数据库中,Redis数据库可以按照键值对:k(key)-v(value)的数据格式进行数据存储。例如Redis数据库的存储格式可以如下表2所示:
表2.Redis数据库的存储格式
获取时间 | 第二任务节点 | 关联任务节点1 | 关联任务节点2 |
t1 | buffer1 | buffer1’ | buffer1” |
t2 | buffer2 | buffer2’ | buffer2” |
t3 | buffer3 | buffer3’ | buffer3” |
本申请实施例中,由于数据处理系统(如Flink系统)的数据处理时延是毫秒(ms)级别的,而Redis数据库的数据读取速度可达110000次/秒,数据的写入速度可达81000次/秒,因此本申请实施例中可以选择Redis数据库作为预设数据库,相较于其他数据库而言,不会对Flink系统的时效性产生负增益,从而可提高数据读取、写入的效率。
基于以上描述,可以设置一个访问函数来定期访问数据处理系统中与数据传输相关的传输属性信息,具体可以包括第二任务节点的缓冲区属性及K个关联任务节点的缓冲区属性,从而可以实时记录各任务节点自身的缓冲区属性,以便于后续基于节点自身的缓冲区属性来确定数据传输指标,可提高数据传输过程的可靠性。
下面对数据传输指标的确定方式进行详细说明:
①基于第二任务节点自身的buffer数量确定信号量。
在一种可能的实现方式中,计算机设备基于传输属性信息,确定第一任务节点与第二任务节点之间的数据传输指标,可以包括:首先,基于第二任务节点的可支配缓冲区数量,确定参考数值,该参考数值小于或等于第二任务节点的可支配缓冲区数量;然后,将参考数值确定为第一任务节点与第二任务节点之间的数据传输指标。例如,第二任务节点的可支配缓冲区数量为10,则可以选择一个小于或等于10的整数作为参考数值(如9),然后将该参考数值9作为第一任务节点与第二任务节点之间的信号量。
②基于第一任务节点和第二任务节点各自的buffer数量共同确定信号量。
在一种可能的实现方式中,计算机设备基于传输属性信息,确定第一任务节点与第二任务节点之间的数据传输指标,还可以包括:首先,获取第一任务节点的可支配缓冲区的数量;然后,基于第一任务节点的可支配缓冲区的数量、以及第二任务节点的可支配缓冲区的数量,确定第一任务节点与第二任务节点之间的数据传输指标。
具体实现时,计算机设备基于第一任务节点的可支配缓冲区的数量、以及第二任务节点的可支配缓冲区的数量,确定第一任务节点与第二任务节点之间的数据传输指标,具体可以包括:若第一任务节点的可支配缓冲区的数量大于或等于第二任务节点的可支配缓冲区的数量,则将第二任务节点的可支配缓冲区的数量作为第一任务节点与第二任务节点之间的数据传输指标;或者,若第一任务节点的可支配缓冲区的数量小于第二任务节点的可支配缓冲区的数量,则对第一任务节点的可支配缓冲区的数量和第二任务节点的可支配缓冲区的数量进行平均运算后再进行取整运算(向上取整或向下取整),并将取整运算后确定的值作为第一任务节点与第二任务节点之间的数据传输指标。举例来说,将第一任务节点的可支配缓冲区的数量表示为Bt-1,将第二任务节点的可支配缓冲区的数量表示为Bt,将数据传输指标所指示的数据量(信号量)表示为Wt,例如Bt-1=5,Bt=6,Bt>Bt-1,则Wt>(Bt-1+Bt)/2,如Wt=7;又如Bt-1=7,Bt=6,Bt<Bt-1,则Wt=Bt=6;再如Bt-1=5,Bt=5,Bt=Bt-1,则Wt=Bt=5。
③基于第一任务节点、第二任务节点以及K个关联任务节点各自的buffer数量共同确定信号量。
在一种可能的实现方式中,传输属性信息还包括K个关联任务节点的缓冲区属性,一个关联任务节点是指在数据处理系统中第一任务节点的上游节点,缓冲区属性包括可支配缓冲区的数量,K为整数;计算机设备基于传输属性信息,确定第一任务节点与第二任务节点之间的数据传输指标,还可以包括:首先,基于访问函数获取K个关联任务节点中各关联任务节点的可支配缓冲区的数量;然后,获取第一任务节点的可支配缓冲区的数量;最后,按照各关联任务节点的可支配缓冲区的数量、第一任务节点的可支配缓冲区的数量、以及第二任务节点的可支配缓冲区的数量,确定第一任务节点与第二任务节点之间的数据传输指标。
具体实现时,计算机设备按照各关联任务节点的可支配缓冲区的数量、第一任务节点的可支配缓冲区的数量、以及第二任务节点的可支配缓冲区的数量,确定第一任务节点与所述第二任务节点之间的数据传输指标,具体可以包括:首先,对各关联任务节点的可支配缓冲区的数量、第一任务节点的可支配缓冲区的数量、以及第二任务节点的可支配缓冲区的数量进行运算处理;然后,基于运算处理后的值,确定第一任务节点与第二任务节点之间的数据传输指标;其中,运算处理包括以下任一项:平均运算处理、加权运算处理、指数衰减运算。举例来说,将第一任务节点的可支配缓冲区的数量表示为Bt-1,将第二任务节点的可支配缓冲区的数量表示为Bt,将数据传输指标所指示的数据量(信号量)表示为Wt,假设有1个关联任务节点,该关联任务节点表示为Bt-2。例如Bt-2=4,Bt-1=5,Bt=6,则可计算(Bt-2+Bt-1+Bt)/3=5,则Wt=Bt=5。
基于以上描述,在确定第一任务节点和第二任务节点之间的数据传输指标(数据量/信号量)时,可以基于待接收任务数据的下游节点(第二任务节点)自身的可支配缓冲区的数量来确定该信号量,从而可以避免由于第二任务节点的缓冲区数量不足导致数据反压、内存溢出(OOM,Out Of Memory)等现象;另外,还可以综合下游节点和下游节点来共同确定该信号量,从而可以丰富数据传输指标的确定方式,可以结合数据处理系统中更多的任务节点的缓冲区属性来综合确定该信号量,提高数据传输指标的准确性和可靠性。
下面按照数据传输指标,对任务数据的传输流程进行详细说明:
(1)按照数据量的维度进行数据传输:
在一种可能的实现方式中,当第一任务节点中的任务数据的数据量大于数据传输指标所指示的数据量时,对应的传输方式如下:将第一任务节点中的任务数据按照数据传输指标所指示的数据量依次传输至第二任务节点中。其中,依次传输任务数据的方式包括以下至少一种:①对任务数据分批次进行传输,②按照任务数据的产生时间的先后顺序依次传输,③按照任务数据的数据容量的大小依次传输,④按照任务数据的业务类型依次传输。请参见图4a,图4a是本申请实施例提供的一种数据传输过程的流程示意图。如图4a所示,第一任务节点中的任务数据的数据量为4(这四个任务数据分别表示为:m1、m2、m3、m4),数据传输指标所指示的数据量/信号量为2,第二任务节点的可用缓冲区的数量为2(buffer=2)。那么,①可以将这4个任务数据分批次进行传输,即第一批次传输2个任务数据(m1和m2),第二批次传输4个任务数据中剩下的2个任务数据(m3和m4)。其中,第一批次中的2个任务数据可以为在第一任务节点的4个任务数据中产生时间位于前2位的这2个任务数据;又如,第一批次中的2个任务数据还可以为在第一任务节点的4个任务数据中数据容量(例如100KB、1MB等)较大的这2个任务数据;再如,第一批次中的2个任务数据还可以为在第一任务节点中的4个任务数据中属于目标业务类型(例如游戏类型或直播类型)的2个任务数据;②假设任务数据m1、m2、m3、m4对应的产生时间分别为t1、t2、t3、t4,且t1>t2>t3>t4,则可以将任务数据按照“m4->m3->m2->m1”的传输方式依次传输至第二任务节点中;③假设任务数据m1、m2、m3、m4对应的数据容量分别为r1、r2、r3、r4,且r1>r2>r3>r4,则可以将任务数据按照“m1->m2->m3->m4”的传输方式依次传输至第二任务节点中;④假设任务数据m1、m2、m3、m4对应的业务类型包括:游戏类型、直播类型、教育类型、支付类型,则可以将任务数据按照“m1->m2->m3->m4”的传输方式依次传输至第二任务节点中。
在另一种可能的实现方式中,当第一任务节点中的任务数据的数据量小于或等于数据传输指标所指示的数据量时,对应的传输方式如下:将第一任务节点中的任务数据直接传输至第二任务节点中。请参见图4b,图4b是本申请实施例提供的另一种数据传输过程的流程示意图。如图4b所示,第一任务节点中的任务数据的数据量为4(这四个任务数据分别表示为:m1、m2、m3、m4),数据传输指标所指示的数据量/信号量为6,第二任务节点的可用缓冲区的数量为2(buffer=2)。那么,可以将这4个任务数据一次性统一传输至第二任务节点中。
(2)按照业务类型的维度进行数据传输:
在另一种可能的实现方式中,计算机设备按照数据传输指标,将第一任务节点中的任务数据传输至第二任务节点中,还可以包括:首先,获取第一任务节点中各任务数据的业务类型;然后,按照获取到的业务类型的数量和数据传输指标,确定各任务数据的数据传输方式;最后,将第一任务节点中的任务数据按照确定的数据传输方式传输至第二任务节点中。
具体实现时,计算机设备按照获取到的业务类型的数量和数据传输指标,确定各任务数据的数据传输方式,包括以下任一种:
①若业务类型的数量为一种,则将各任务数据的数据传输方式确定为:按照数据传输指标,将第一任务节点中的任务数据传输至第二任务节点中。具体地,当第一任务节点中的任务数据的数据量大于数据传输指标所指示的数据量时,将第一任务节点中的任务数据按照数据传输指标所指示的数据量依次传输至第二任务节点中;当第一任务节点中的任务数据的数据量小于或等于数据传输指标所指示的数据量时,将第一任务节点中的任务数据直接传输至第二任务节点中。
②若业务类型的数量为多种,则将各任务数据的数据传输方式确定为:将同一业务类型的任务数据按照数据传输指标所指示的数据量依次传输至第二任务节点中。例如第一任务节点中的任务数据的业务类型包括:游戏类型、直播类型、广告类型,则可以首先将游戏类型的任务数据传输至第二任务节点中,再将直播类型的任务数据传输至第二任务节点中,最后将直播类型的任务数据传输至第二任务节点中。具体地,任一业务类型的任务数据在传输过程中,均需按照数据传输指标所指示的信号量进行传输,例如第一任务节点中包括:10个游戏类型的任务数据、15个直播类型的任务数据、以及20个广告类型的任务数据;若数据传输指标所指示的信号量为10,则第一任务节点中的10个游戏类型的任务数据可一次性完成数据传输;第一任务节点中的15个游戏类型的任务数据需传输两次(例如第一次传输数量为10个,第二次传输数量为5个;或者,第一次传输数量为5个,第二次传输数量为10个);第一任务节点中的20个广告类型的任务数据同样需传输两次(例如第一次传输数量为10个,第二次传输数量为10个)。
③若业务类型的数量为多种,则将各任务数据的数据传输方式确定为:按照数据传输指标所指示的数据量从第一任务节点中选择各业务类型的任务数据进行打包处理,并依次将打包后的任务数据包传输至第二任务节点中。例如第一任务节点中的任务数据的业务类型包括:游戏类型、直播类型、广告类型,若数据传输指标所指示的信号量为10,则可以在任一次数据传输过程时从第一任务节点中选择4个游戏类型的任务数据、5个直播类型的任务数据、6个广告类型的任务数据打包成一个包含10个任务数据的数据包,然后将该数据包传输至第二任务节点中。
基于以上描述,在数据传输过程中,可以基于数据传输指标所指示的信号量进行数据传输,由于数据传输指标与节点自身的属性息息相关,可使得任务节点之间按照节点自身的属性进行数据传输,能够按照任务节点的缓冲区属性来实时确定数据传输指标,可较好适配数据传输情况,从而提高数据传输的效率。
请参见图5,图5是申请实施例提供的另一种数据方法的流程示意图。该数据处理方法可以由计算机设备执行,该计算机设备可以是图2a的数据处理系统中终端设备或服务器。其中,该数据处理方法主要包括但不限于如下步骤S501~S505:
S501:运行缓冲区属性的访问函数。
访问函数用于在预设时间段内(例如一小时、一天、一周等)获取数据处理系统中任一个任务节点对应的可支配缓冲区的数量。其中,数据处理系统用于执行数据处理任务,数据处理任务包含需顺序执行的N个子任务,该数据处理系统中包含N个任务节点,每个任务节点用于按序执行一个子任务,N为大于1的整数。请参见图6,图6是本申请实施例提供的另一种数据处理系统的结构示意图。如图6所示,数据处理系统可以为Flink系统,该Flink系统中可以包括:任务节点1、任务节点2...任务节点N,任一任务节点中包含待传输的任务数据。为便于阐述,本申请后续实施例中以待传输的任务数据存储于数据处理系统中的第一任务节点中(如图6所示的任务节点1)为例进行相应说明。
在一种可能的实现方式中,首先可启动数据处理系统,并在数据处理系统启动后获取缓冲区属性的访问函数,并运行该访问函数。可选的,访问函数可以是计算机设备为该数据处理系统自定义设置的,也可以是计算机设备从其他设备/程序中获取到的通用函数,本申请实施例对访问函数的来源不做限定。
S502:记录下游节点的可支配缓冲区的数量。
在每次数据传输过程中,可基于缓冲区属性的访问函数获取下游节点的可支配缓冲区的数量。具体实现时,本申请实施例中涉及任务数据的传输,具体涉及将第一任务节点中的任务数据传输至第二任务节点中,因此在由第一任务节点向第二任务节点传输任务数据的过程中,可基于缓冲区属性的访问函数获取第二任务节点的可支配缓冲区的数量。其中,第二任务节点是指需对第一任务节点中的任务数据进行处理的任务节点,例如第二任务节点可以为如图1a所示的任务节点B;另外,第一任务节点为第二任务节点的上游节点,第二任务节点为第一任务节点的下游节点;其中,上游节点对应的子任务的执行顺序优先于下游节点对应的子任务的执行顺序。
在一种可能的实现方式中,计算机设备在数据处理系统中运行缓冲区属性的访问函数,以获取数据处理系统中的第二任务节点的可支配缓冲区的数量。
在另一种可能的实现方式中,计算机设备在数据处理系统中运行缓冲区属性的访问函数,以获取数据处理系统中的K个关联任务节点中各个关联任务节点的可支配缓冲区的数量、以及第二任务节点的可支配缓冲区的数量。其中,一个关联任务节点是指在数据处理系统中第一任务节点的上游节点,缓冲区属性包括可支配缓冲区的数量,K为整数。
进一步地,可将获取到的第二任务节点(或关联任务节点)的可支配缓冲区的数量存储至预设数据库中,例如预设数据库可以为Redis数据库,本申请实施例中,由于数据处理系统(如Flink系统)的数据处理时延是毫秒(ms)级别的,而Redis数据库的数据读取速度可达110000次/秒,数据的写入速度可达81000次/秒,因此本申请实施例中可以选择Redis数据库作为预设数据库,相较于其他数据库而言,不会对Flink系统的时效性产生负增益,从而可提高数据读取、写入的效率。
S503:初始化数据传输指标。
数据传输指标(可简称为信号量)是指数据处理系统中任意两个任务节点进行数据传输时的数据量,为方便说明,本申请中涉及到的数据传输指标用于指示由第一任务节点向第二任务节点传输任务数据的数据量。由于本申请实施例涉及到的数据处理系统为实时业务系统(例如实时的直播系统、游戏系统、广告系统等),基于实时的业务系统可不断获取到新的任务数据,即任务数据在任务节点间是流式传输的。那么,本申请可在不同时刻动态生成第一任务节点与第二任务节点之间的数据传输指标。
在一种可能的实现方式中,预设数据库中存储有数据处理系统中各任务节点在不同时刻对应的可支配缓冲区的数量,计算机设备可从预设数据库中获取第二任务节点在初始时刻(T0)对应的可支配缓冲区的数量B0。举例来说,初始化后的数据传输指标(简称初始信号量)可以如下所示:
W0_H=0.8*B0;
需要说明的是,初始信号量取初始时刻对应的可支配缓冲区的数量B0的0.8倍值是一个经验值,本申请并不对初始信号量的计算方式进行具体限定。可选的,在不同业务场景中初始信号量的计算方式可以不相同。例如在游戏场景中,可以按照0.9倍B0值来确定初始信号量;又如在直播场景中,可以按照0.85倍B0值来确定初始信号量;还如在广告场景中,可以按照0.88倍B0值来确定初始信号量。
S504:对于第T个任务节点获取前P个节点的缓冲区数量。
第T个任务节点是指待接收任务数据的任务节点,如图6所示,任务节点2、任务节点3...任务节点N均可作为第T个任务节点。为便于阐述,本申请实施例将第T个任务节点表示为第二任务节点。
在一种可能的实现方式中,若P=1,则针对第二任务节点(例如任务节点2)而言,可以获取该第二任务节点的前1个节点(即任务节点1)的可支配缓冲区数量Bt-1。
在另一种可能的实现方式中,若P大于1(例如P=2),则针对第二任务节点(例如任务节点3)而言,可以获取该第二任务节点的前2个节点(任务节点1、任务节点2)各自对应的可支配缓冲区数量Bt-1、Bt-2。
S505:确定第T个任务节点的信号量。
具体实现时,确定第T个任务节点的信号量的实质是确定第一任务节点与第二任务节点之间的数据传输指标。具体地,该数据传输指标的确定方式如下:首先,可从预设数据库中数据传输相关的传输属性信息,该传输属性信息包括第二任务节点的缓冲区属性,具体地,缓冲区属性可以包括可支配缓冲区的数量,一个可支配缓冲区用于指示允许被支配的一个任务数据的数据单位。然后,基于传输属性信息,确定第一任务节点与第二任务节点之间的数据传输指标。
下面对如何确定数据传输指标的方式进行详细说明。
①当P=1时,基于第一任务节点和第二任务节点确定数据传输指标。
在一种可能的实现方式中,计算机设备可以基于传输属性信息,确定第一任务节点与第二任务节点之间的数据传输指标,具体可以包括:获取第一任务节点的可支配缓冲区的数量;基于第一任务节点的可支配缓冲区的数量、以及第二任务节点的可支配缓冲区的数量,确定第一任务节点与第二任务节点之间的数据传输指标。
具体实现时,计算机设备基于第一任务节点的可支配缓冲区的数量、以及第二任务节点的可支配缓冲区的数量,确定数据传输指标,具体可以包括:若第一任务节点的可支配缓冲区的数量大于或等于第二任务节点的可支配缓冲区的数量,则将第二任务节点的可支配缓冲区的数量作为第一任务节点与第二任务节点之间的数据传输指标;或者,若第一任务节点的可支配缓冲区的数量小于第二任务节点的可支配缓冲区的数量,则对第一任务节点的可支配缓冲区的数量和第二任务节点的可支配缓冲区的数量进行平均运算后再进行取整运算,并将取整运算后确定的值作为第一任务节点与第二任务节点之间的数据传输指标。
②当P大于1时,基于第一任务节点、第二任务节点、和K(K为整数)个关联任务节点确定数据传输指标。
关联任务节点是指第一任务节点的上游节点。第一任务节点是第二任务节点的上游节点,第二任务节点为上述所提及的数据处理系统中的“第T个节点”。
在一种可能的实现方式中,计算机设备可以基于传输属性信息,确定第一任务节点与第二任务节点之间的数据传输指标,具体可以包括:首先,基于缓冲区属性的访问函数获取K个关联任务节点中各关联任务节点的可支配缓冲区的数量;然后,获取第一任务节点的可支配缓冲区的数量;最后,按照各关联任务节点的可支配缓冲区的数量、第一任务节点的可支配缓冲区的数量、以及第二任务节点的可支配缓冲区的数量,确定第一任务节点与第二任务节点之间的数据传输指标。
具体实现时,计算机设备按照各关联任务节点的可支配缓冲区的数量、第一任务节点的可支配缓冲区的数量、以及第二任务节点的可支配缓冲区的数量,确定数据传输指标,具体可以包括:对各关联任务节点的可支配缓冲区的数量、第一任务节点的可支配缓冲区的数量、以及第二任务节点的可支配缓冲区的数量进行运算处理;基于运算处理后的值,确定第一任务节点与所述第二任务节点之间的数据传输指标;其中,运算处理包括以下任一项:平均运算处理、加权运算处理、指数衰减运算。
本申请实施例中,可基于缓冲区属性函数可实时获取数据处理系统中任务节点(例如第一任务节点、第二任务节点等)的可支配缓冲区的数量,并将获取到的任务节点的可支配缓冲区的数量作为数据传输相关的传输属性信息,然后基于该传输属性信息可以确定第一任务节点与第二任务节点之间的数据传输指标。由于任务数据是流式传输的,那么在数据处理系统中运行缓冲区属性函数也可实时获取对应的传输属性信息,并动态确定相应的数据传输指标(信号量),从而可以在流式数据传输的业务场景中,基于动态变化的信号值来适应性调整上下游节点(第一任务节点和第二任务节点)的计算性能,可减少任务节点的数据处理的延迟,从而提高数据处理系统中数据处理的效率。
下面以数据处理系统为直播系统为例,对数据传输的场景进行详细说明。
请参见图7,图7是本申请实施例提供的一种数据传输场景的示意图。如图7所示,该直播系统中包含:终端设备和服务器;其中,终端设备为直播对象所使用的设备,该终端设备可以生成直播数据;服务器为对直播数据执行数据处理任务的设备,服务器可以包括N个任务节点(任务节点1、任务节点2...任务节点N),一个任务节点用于按序执行数据处理任务中的一个子任务,例如首先由任务节点1执行子任务1,然后由任务节点2执行子任务2...以此类推。在实时直播场景中,直播数据是流式产生的,即随着用户的直播过程终端设备侧可不断产生新的直播数据,这些直播数据可以同步调度至服务器进行数据处理。接下来,以第一任务节点为任务节点1,第二任务节点为任务节点2为例,对实时直播场景下的数据传输流程进行描述:①服务器接收终端设备侧的直播数据,并将接收到的直播数据作为待传输的任务数据存储在任务节点1中;②服务器在T1时刻获取与数据传输相关的传输属性信息1,然后基于该传输属性信息1,可确定任务节点1与任务节点2之间的数据传输指标(信号量),例如信号量为2,然后按照T1时刻对应的信号量(即2),将任务节点1中的2个直播数据传输至第二任务节点中;③服务器在T2时刻获取与数据传输相关的传输属性信息2,然后基于该传输属性信息2,可确定任务节点1与任务节点2之间的数据传输指标(信号量),例如信号量为4,然后按照T2时刻对应的信号量(即4),将任务节点1中的4个直播数据传输至第二任务节点中。以此类推,在上述直播场景中可按照本申请实施例提供的方法可动态确定不同时刻对应的信号量,并按照动态的信号量进行数据传输,避免直播卡顿等情况,从而可以提高对直播场景中直播数据的处理效率、以及提升用户观看体验感。
上述详细阐述了本申请实施例的方法,为了便于更好地实施本申请实施例的上述方案,相应地,下面提供了本申请实施例的装置,接下来,结合上述本申请实施例提供的数据处理方案,对本申请实施例的相关装置进行相应介绍。
请参见图8,图8是本申请实施例提供的一种数据处理装置的结构示意图。如图8所示,该数据处理装置800可应用于前述实施例中所提及的计算机设备(如终端设备或服务器)。具体来说,数据处理装置800可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该数据处理装置800为一个应用软件;该数据处理装置800可以用于执行本申请实施例提供的数据处理方法中的相应步骤。具体实现时,该数据处理装置800具体可以包括:
获取单元801,用于获取第一任务节点中待传输的任务数据;
获取单元801,还用于获取数据传输相关的传输属性信息,传输属性信息包括第二任务节点的缓冲区属性,第二任务节点是指需对任务数据进行处理的任务节点;
处理单元802,用于基于传输属性信息,确定第一任务节点与第二任务节点之间的数据传输指标,数据传输指标用于指示由第一任务节点向第二任务节点传输任务数据的数据量;
处理单元802,还用于按照数据传输指标,将第一任务节点中的任务数据传输至第二任务节点中。
在一种可能的实现方式中,待传输的任务数据应用于数据处理系统中,数据处理系统用于执行数据处理任务,数据处理任务包含需顺序执行的N个子任务,数据处理系统中包含N个任务节点,每个任务节点用于按序执行一个子任务,N为大于1的整数;
第一任务节点为第二任务节点的上游节点,第二任务节点为第一任务节点的下游节点;其中,上游节点对应的子任务的执行顺序优先于下游节点对应的子任务的执行顺序。
在一种可能的实现方式中,缓冲区属性包括可支配缓冲区的数量,一个可支配缓冲区用于指示允许被支配的一个任务数据的数据单位;获取单元801获取数据传输相关的传输属性信息,用于执行以下操作:
获取缓冲区属性的访问函数,访问函数用于在预设时间段内获取数据处理系统中任一个任务节点对应的可支配缓冲区的数量;
在数据处理系统中运行缓冲区属性的访问函数,以获取数据处理系统中的第二任务节点的可支配缓冲区的数量。
在一种可能的实现方式中,处理单元802基于传输属性信息,确定第一任务节点与第二任务节点之间的数据传输指标,用于执行以下操作:
获取第一任务节点的可支配缓冲区的数量;
基于第一任务节点的可支配缓冲区的数量、以及第二任务节点的可支配缓冲区的数量,确定第一任务节点与第二任务节点之间的数据传输指标。
在一种可能的实现方式中,处理单元802基于第一任务节点的可支配缓冲区的数量、以及第二任务节点的可支配缓冲区的数量,确定第一任务节点与第二任务节点之间的数据传输指标,用于执行以下操作:
若第一任务节点的可支配缓冲区的数量大于或等于第二任务节点的可支配缓冲区的数量,则将第二任务节点的可支配缓冲区的数量作为第一任务节点与第二任务节点之间的数据传输指标;或者,
若第一任务节点的可支配缓冲区的数量小于第二任务节点的可支配缓冲区的数量,则对第一任务节点的可支配缓冲区的数量和第二任务节点的可支配缓冲区的数量进行平均运算后再进行取整运算,并将取整运算后确定的值作为第一任务节点与第二任务节点之间的数据传输指标。
在一种可能的实现方式中,传输属性信息还包括K个关联任务节点的缓冲区属性,一个关联任务节点是指在所述数据处理系统中第一任务节点的上游节点,缓冲区属性包括可支配缓冲区的数量,K为整数;
处理单元802基于传输属性信息,确定第一任务节点与第二任务节点之间的数据传输指标,用于执行以下操作:
基于缓冲区属性的访问函数获取K个关联任务节点中各关联任务节点的可支配缓冲区的数量;
获取第一任务节点的可支配缓冲区的数量;
按照各关联任务节点的可支配缓冲区的数量、第一任务节点的可支配缓冲区的数量、以及第二任务节点的可支配缓冲区的数量,确定第一任务节点与第二任务节点之间的数据传输指标。
在一种可能的实现方式中,处理单元802按照各关联任务节点的可支配缓冲区的数量、第一任务节点的可支配缓冲区的数量、以及第二任务节点的可支配缓冲区的数量,确定第一任务节点与所述第二任务节点之间的数据传输指标,用于执行以下操作:
对各关联任务节点的可支配缓冲区的数量、第一任务节点的可支配缓冲区的数量、以及第二任务节点的可支配缓冲区的数量进行运算处理;
基于运算处理后的值,确定第一任务节点与第二任务节点之间的数据传输指标;
其中,运算处理包括以下任一项:平均运算处理、加权运算处理、指数衰减运算。
在一种可能的实现方式中,处理单元802按照数据传输指标,将第一任务节点中的任务数据传输至第二任务节点中,用于执行以下操作:
当第一任务节点中的任务数据的数据量大于数据传输指标所指示的数据量时,将第一任务节点中的任务数据按照数据传输指标所指示的数据量依次传输至第二任务节点中;或者,
当第一任务节点中的任务数据的数据量小于或等于数据传输指标所指示的数据量时,将第一任务节点中的任务数据统一传输至第二任务节点中;
其中,分批次传输任务数据的方式包括以下至少一种:按照任务数据的产生时间的先后顺序进行传输、按照任务数据的数据容量的大小进行传输、按照任务数据的业务类型进行传输。
在一种可能的实现方式中,任一任务节点具备缓冲区;缓冲区包括以下任一种或多种:数据发送缓冲区、数据接收缓冲区、网络缓冲区、通道缓冲区;其中,
待传输的任务数据基于第一任务节点的通道缓冲区,存储至第一任务节点的数据发送缓冲区中;
在任务数据的传输过程中,基于第二任务节点的数据接收缓冲区接收任务数据,并基于第二任务节点的网络缓冲区对任务数据进行处理。
在一种可能的实现方式中,处理单元802按照数据传输指标,将第一任务节点中的任务数据传输至第二任务节点中,还用于执行以下操作:
获取第一任务节点中各任务数据的业务类型;
按照获取到的业务类型的数量和所述数据传输指标,确定各任务数据的数据传输方式;
将第一任务节点中的任务数据按照数据传输方式传输至第二任务节点中。
在一种可能的实现方式中,处理单元802按照获取到的业务类型的数量和数据传输指标,确定各任务数据的数据传输方式,包括以下任一种:
若业务类型的数量为一种,则将各任务数据的数据传输方式确定为:按照数据传输指标,将第一任务节点中的任务数据传输至所述第二任务节点中;
若业务类型的数量为多种,则将各任务数据的数据传输方式确定为:将同一业务类型的任务数据按照数据传输指标所指示的数据量依次传输至第二任务节点中;
若业务类型的数量为多种,则将各任务数据的数据传输方式确定为:按照数据传输指标所指示的数据量从第一任务节点中选择各业务类型的任务数据进行打包处理,并依次将打包后的任务数据包传输至第二任务节点中。
本申请实施例中,首先可以获取第一任务节点中待传输的任务数据,然后可以获取数据传输相关的传输属性信息,该传输属性信息包括第二任务节点的缓冲区属性,第二任务节点是指需对任务数据进行处理的任务节点;接下来,可基于传输属性信息,确定第一任务节点与第二任务节点之间的数据传输指标;按照数据传输指标,将第一任务节点中的任务数据传输至第二任务节点中。由此可见,本申请中的数据传输指标可基于需接收任务数据的第二任务节点的缓冲区属性进行确定,该数据传输指标与数据传输过程涉及的任务节点自身的属性息息相关,从而使得数据传输指标能较好地适配任务节点的缓冲能力;进一步地,任务节点的缓冲能力反映了数据传输过程中的实时传输情况,那么该数据传输指标进一步还可较好适配数据传输的实时情况,避免因数据传输指标不恰导致的数据阻塞等不良情况,从而可提高数据传输的效率。
请参见图9,图9是本申请实施例提供的一种计算机设备的结构示意图。该计算机设备900用于执行前述方法实施例中终端设备或服务器所执行的步骤,该计算机设备900包括:一个或多个处理器901;一个或多个输入设备902,一个或多个输出设备903和存储器904。上述处理器901、输入设备902、输出设备903和存储器904通过总线905连接。具体地,存储器904用于存储计算机程序,所述计算机程序包括程序指令,处理器901用于调用存储器904存储的程序指令,执行以下操作:
获取第一任务节点中待传输的任务数据;
获取数据传输相关的传输属性信息,传输属性信息包括第二任务节点的缓冲区属性,第二任务节点是指需对任务数据进行处理的任务节点;
基于传输属性信息,确定第一任务节点与第二任务节点之间的数据传输指标,数据传输指标用于指示由第一任务节点向第二任务节点传输任务数据的数据量;
按照数据传输指标,将第一任务节点中的任务数据传输至第二任务节点中。
在一种可能的实现方式中,待传输的任务数据应用于数据处理系统中,数据处理系统用于执行数据处理任务,数据处理任务包含需顺序执行的N个子任务,数据处理系统中包含N个任务节点,每个任务节点用于按序执行一个子任务,N为大于1的整数;
第一任务节点为第二任务节点的上游节点,第二任务节点为第一任务节点的下游节点;其中,上游节点对应的子任务的执行顺序优先于下游节点对应的子任务的执行顺序。
在一种可能的实现方式中,缓冲区属性包括可支配缓冲区的数量,一个可支配缓冲区用于指示允许被支配的一个任务数据的数据单位;处理器901获取数据传输相关的传输属性信息,用于执行以下操作:
获取缓冲区属性的访问函数,访问函数用于在预设时间段内获取数据处理系统中任一个任务节点对应的可支配缓冲区的数量;
在数据处理系统中运行访问函数,以获取数据处理系统中的第二任务节点的可支配缓冲区的数量。
在一种可能的实现方式中,处理器901基于传输属性信息,确定第一任务节点与第二任务节点之间的数据传输指标,用于执行以下操作:
获取第一任务节点的可支配缓冲区的数量;
基于第一任务节点的可支配缓冲区的数量、以及第二任务节点的可支配缓冲区的数量,确定第一任务节点与第二任务节点之间的数据传输指标。
在一种可能的实现方式中,处理器901基于第一任务节点的可支配缓冲区的数量、以及第二任务节点的可支配缓冲区的数量,确定第一任务节点与第二任务节点之间的数据传输指标,用于执行以下操作:
若第一任务节点的可支配缓冲区的数量大于或等于第二任务节点的可支配缓冲区的数量,则将第二任务节点的可支配缓冲区的数量作为第一任务节点与第二任务节点之间的数据传输指标;或者,
若第一任务节点的可支配缓冲区的数量小于第二任务节点的可支配缓冲区的数量,则对第一任务节点的可支配缓冲区的数量和第二任务节点的可支配缓冲区的数量进行平均运算后再进行取整运算,并将取整运算后确定的值作为第一任务节点与第二任务节点之间的数据传输指标。
在一种可能的实现方式中,传输属性信息还包括K个关联任务节点的缓冲区属性,一个关联任务节点是指在所述数据处理系统中第一任务节点的上游节点,缓冲区属性包括可支配缓冲区的数量,K为整数;
处理器901基于传输属性信息,确定第一任务节点与第二任务节点之间的数据传输指标,用于执行以下操作:
基于访问函数获取所述K个关联任务节点中各关联任务节点的可支配缓冲区的数量;
获取第一任务节点的可支配缓冲区的数量;
按照各关联任务节点的可支配缓冲区的数量、第一任务节点的可支配缓冲区的数量、以及第二任务节点的可支配缓冲区的数量,确定第一任务节点与第二任务节点之间的数据传输指标。
在一种可能的实现方式中,处理器901按照各关联任务节点的可支配缓冲区的数量、第一任务节点的可支配缓冲区的数量、以及第二任务节点的可支配缓冲区的数量,确定第一任务节点与所述第二任务节点之间的数据传输指标,用于执行以下操作:
对各关联任务节点的可支配缓冲区的数量、第一任务节点的可支配缓冲区的数量、以及第二任务节点的可支配缓冲区的数量进行运算处理;
基于运算处理后的值,确定第一任务节点与第二任务节点之间的数据传输指标;
其中,运算处理包括以下任一项:平均运算处理、加权运算处理、指数衰减运算。
在一种可能的实现方式中,处理器901按照数据传输指标,将第一任务节点中的任务数据传输至第二任务节点中,用于执行以下操作:
当第一任务节点中的任务数据的数据量大于数据传输指标所指示的数据量时,将第一任务节点中的任务数据按照数据传输指标所指示的数据量依次传输至第二任务节点中;或者,
当第一任务节点中的任务数据的数据量小于或等于数据传输指标所指示的数据量时,将第一任务节点中的任务数据统一传输至第二任务节点中;
其中,分批次传输任务数据的方式包括以下至少一种:对任务数据分批次进行传输、按照任务数据的产生时间的先后顺序进行传输、按照任务数据的数据容量的大小进行传输、按照任务数据的业务类型进行传输。
在一种可能的实现方式中,任一任务节点具备缓冲区;缓冲区包括以下任一种或多种:数据发送缓冲区、数据接收缓冲区、网络缓冲区、通道缓冲区;其中,
待传输的任务数据基于第一任务节点的通道缓冲区,存储至第一任务节点的数据发送缓冲区中;
在任务数据的传输过程中,基于第二任务节点的数据接收缓冲区接收任务数据,并基于第二任务节点的网络缓冲区对任务数据进行处理。
在一种可能的实现方式中,处理器901按照数据传输指标,将第一任务节点中的任务数据传输至第二任务节点中,还用于执行以下操作:
获取第一任务节点中各任务数据的业务类型;
按照获取到的业务类型的数量和所述数据传输指标,确定各任务数据的数据传输方式;
将第一任务节点中的任务数据按照数据传输方式传输至第二任务节点中。
在一种可能的实现方式中,处理器901按照获取到的业务类型的数量和数据传输指标,确定各任务数据的数据传输方式,包括以下任一种:
若业务类型的数量为一种,则将各任务数据的数据传输方式确定为:按照数据传输指标,将第一任务节点中的任务数据传输至所述第二任务节点中;
若业务类型的数量为多种,则将各任务数据的数据传输方式确定为:将同一业务类型的任务数据按照数据传输指标所指示的数据量依次传输至第二任务节点中;
若业务类型的数量为多种,则将各任务数据的数据传输方式确定为:按照数据传输指标所指示的数据量从第一任务节点中选择各业务类型的任务数据进行打包处理,并依次将打包后的任务数据包传输至第二任务节点中。
本申请实施例中,首先可以获取第一任务节点中待传输的任务数据,然后可以获取数据传输相关的传输属性信息,该传输属性信息包括第二任务节点的缓冲区属性,第二任务节点是指需对任务数据进行处理的任务节点;接下来,可基于传输属性信息,确定第一任务节点与第二任务节点之间的数据传输指标;按照数据传输指标,将第一任务节点中的任务数据传输至第二任务节点中。由此可见,本申请中的数据传输指标可基于需接收任务数据的第二任务节点的缓冲区属性进行确定,该数据传输指标与数据传输过程涉及的任务节点自身的属性息息相关,从而使得数据传输指标能较好地适配任务节点的缓冲能力;进一步地,任务节点的缓冲能力反映了数据传输过程中的实时传输情况,那么该数据传输指标进一步还可较好适配数据传输的实时情况,避免因数据传输指标不恰导致的数据阻塞等不良情况,从而可提高数据传输的效率。
此外,这里需要指出的是:本申请实施例还提供了一种计算机存储介质,且计算机存储介质中存储有计算机程序,且该计算机程序包括程序指令,当处理器执行上述程序指令时,能够执行前文所对应实施例中的方法,因此,这里将不再进行赘述。对于本申请所涉及的计算机存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可以被部署在一个计算机设备上,或者在位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备可以执行前文所对应实施例中的方法,因此,这里将不再进行赘述。
本领域普通技术对象可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (15)
1.一种数据处理方法,其特征在于,包括:
获取第一任务节点中待传输的任务数据;
获取与所述任务数据的数据传输过程相关的传输属性信息,所述传输属性信息包括第二任务节点的缓冲区属性,所述第二任务节点是指需对所述任务数据进行处理的任务节点;
基于所述传输属性信息,确定所述第一任务节点与所述第二任务节点之间的数据传输指标,所述数据传输指标用于指示由所述第一任务节点向所述第二任务节点传输任务数据的数据量;
按照所述数据传输指标,将所述第一任务节点中的任务数据传输至所述第二任务节点中。
2.如权利要求1所述的方法,其特征在于,所述待传输的任务数据应用于数据处理系统中,所述数据处理系统用于执行数据处理任务,所述数据处理任务包含需顺序执行的N个子任务,所述数据处理系统中包含N个任务节点,每个任务节点用于按序执行一个子任务,N为大于1的整数;
所述第一任务节点为所述第二任务节点的上游节点,所述第二任务节点为所述第一任务节点的下游节点;其中,所述上游节点对应的子任务的执行顺序优先于所述下游节点对应的子任务的执行顺序。
3.如权利要求2所述的方法,其特征在于,所述缓冲区属性包括可支配缓冲区的数量,一个可支配缓冲区用于指示任务节点可支配一个任务数据,所述支配包括以下至少一种操作:存储、处理、发送;所述获取数据传输相关的传输属性信息,包括:
获取缓冲区属性的访问函数,所述访问函数用于在预设时间段内获取所述数据处理系统中任一个任务节点对应的可支配缓冲区的数量;
在所述数据处理系统中运行所述访问函数,以获取所述数据处理系统中的第二任务节点的可支配缓冲区的数量。
4.如权利要求3所述的方法,其特征在于,所述基于所述传输属性信息,确定所述第一任务节点与所述第二任务节点之间的数据传输指标,包括:
获取所述第一任务节点的可支配缓冲区的数量;
基于所述第一任务节点的可支配缓冲区的数量、以及所述第二任务节点的可支配缓冲区的数量,确定所述第一任务节点与所述第二任务节点之间的数据传输指标。
5.如权利要求4所述的方法,其特征在于,所述基于所述第一任务节点的可支配缓冲区的数量、以及所述第二任务节点的可支配缓冲区的数量,确定所述第一任务节点与所述第二任务节点之间的数据传输指标,包括:
若所述第一任务节点的可支配缓冲区的数量大于或等于所述第二任务节点的可支配缓冲区的数量,则将所述第二任务节点的可支配缓冲区的数量作为所述第一任务节点与第二任务节点之间的数据传输指标;或者,
若所述第一任务节点的可支配缓冲区的数量小于所述第二任务节点的可支配缓冲区的数量,则对所述第一任务节点的可支配缓冲区的数量和所述第二任务节点的可支配缓冲区的数量进行平均运算后再进行取整运算,并将取整运算后确定的值作为所述第一任务节点与第二任务节点之间的数据传输指标。
6.如权利要求2所述的方法,其特征在于,所述传输属性信息还包括K个关联任务节点的缓冲区属性,一个关联任务节点是指在所述数据处理系统中所述第一任务节点的上游节点,所述缓冲区属性包括可支配缓冲区的数量,K为整数;
所述基于所述传输属性信息,确定所述第一任务节点与所述第二任务节点之间的数据传输指标,包括:
基于所述访问函数获取所述K个关联任务节点中各关联任务节点的可支配缓冲区的数量;
获取所述第一任务节点的可支配缓冲区的数量;
按照各关联任务节点的可支配缓冲区的数量、所述第一任务节点的可支配缓冲区的数量、以及所述第二任务节点的可支配缓冲区的数量,确定所述第一任务节点与所述第二任务节点之间的数据传输指标。
7.如权利要求6所述的方法,其特征在于,所述按照各关联任务节点的可支配缓冲区的数量、所述第一任务节点的可支配缓冲区的数量、以及所述第二任务节点的可支配缓冲区的数量,确定所述第一任务节点与所述第二任务节点之间的数据传输指标,包括:
对各关联任务节点的可支配缓冲区的数量、所述第一任务节点的可支配缓冲区的数量、以及所述第二任务节点的可支配缓冲区的数量进行运算处理;
基于运算处理后的值,确定所述第一任务节点与所述第二任务节点之间的数据传输指标;
其中,所述运算处理包括以下任一项:平均运算处理、加权运算处理、指数衰减运算。
8.如权利要求1所述的方法,其特征在于,所述按照所述数据传输指标,将所述第一任务节点中的任务数据传输至所述第二任务节点中,包括:
当所述第一任务节点中的任务数据的数据量大于所述数据传输指标所指示的数据量时,将所述第一任务节点中的任务数据按照所述数据传输指标所指示的数据量依次传输至所述第二任务节点中;或者,
当所述第一任务节点中的任务数据的数据量小于或等于所述数据传输指标所指示的数据量时,将所述第一任务节点中的任务数据统一传输至所述第二任务节点中;
其中,依次传输任务数据的方式包括以下至少一种:对任务数据分批次进行传输、按照任务数据的产生时间的先后顺序进行传输、按照任务数据的数据容量的大小进行传输、按照任务数据的业务类型进行传输。
9.如权利要求8所述的方法,其特征在于,任一任务节点具备缓冲区;所述缓冲区包括以下任一种或多种:数据发送缓冲区、数据接收缓冲区、网络缓冲区、通道缓冲区;其中,
所述待传输的任务数据基于所述第一任务节点的通道缓冲区,存储至所述第一任务节点的数据发送缓冲区中;
在所述任务数据的传输过程中,基于所述第二任务节点的数据接收缓冲区接收所述任务数据,并基于所述第二任务节点的网络缓冲区对所述任务数据进行处理。
10.如权利要求8所述的方法,其特征在于,所述按照所述数据传输指标,将所述第一任务节点中的任务数据传输至所述第二任务节点中,还包括:
获取所述第一任务节点中各任务数据的业务类型;
按照获取到的业务类型的数量和所述数据传输指标,确定各任务数据的数据传输方式;
将所述第一任务节点中的任务数据按照所述数据传输方式传输至所述第二任务节点中。
11.如权利要求10所述的方法,其特征在于,所述按照获取到的业务类型的数量和所述数据传输指标,确定各任务数据的数据传输方式,包括以下任一种:
若所述业务类型的数量为一种,则将各任务数据的数据传输方式确定为:按照所述数据传输指标,将所述第一任务节点中的任务数据传输至所述第二任务节点中;
若所述业务类型的数量为多种,则将各任务数据的数据传输方式确定为:将同一业务类型的任务数据按照所述数据传输指标所指示的数据量依次传输至所述第二任务节点中;
若所述业务类型的数量为多种,则将各任务数据的数据传输方式确定为:按照所述数据传输指标所指示的数据量从所述第一任务节点中选择各业务类型的任务数据进行打包处理,并依次将打包后的任务数据包传输至所述第二任务节点中。
12.一种数据处理装置,其特征在于,包括:
获取单元,用于获取第一任务节点中待传输的任务数据;
所述获取单元,还用于获取与所述任务数据的数据传输过程相关的传输属性信息,所述传输属性信息包括第二任务节点的缓冲区属性,所述第二任务节点是指需对所述任务数据进行处理的任务节点;
处理单元,用于基于所述传输属性信息,确定所述第一任务节点与所述第二任务节点之间的数据传输指标,所述数据传输指标用于指示由所述第一任务节点向所述第二任务节点传输任务数据的数据量;
所述处理单元,还用于按照所述数据传输指标,将所述第一任务节点中的任务数据传输至所述第二任务节点中。
13.一种计算机设备,其特征在于,包括:存储装置和处理器;
存储器,所述存储器中存储一条或多条计算机程序;
处理器,用于加载所述一条或多条计算机程序实现如权利要求1-11中任一项所述的数据处理方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于被处理器加载并执行如权利要求1-11中任一项所述的数据处理方法。
15.一种计算机程序产品,其特征在于,所述计算程序产品包括计算机程序,所述计算机程序适于被处理器加载并执行如权利要求1-11中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310507809.2A CN116980358A (zh) | 2023-05-06 | 2023-05-06 | 数据处理方法、装置、计算机设备、存储介质及产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310507809.2A CN116980358A (zh) | 2023-05-06 | 2023-05-06 | 数据处理方法、装置、计算机设备、存储介质及产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116980358A true CN116980358A (zh) | 2023-10-31 |
Family
ID=88470209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310507809.2A Pending CN116980358A (zh) | 2023-05-06 | 2023-05-06 | 数据处理方法、装置、计算机设备、存储介质及产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116980358A (zh) |
-
2023
- 2023-05-06 CN CN202310507809.2A patent/CN116980358A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170364612A1 (en) | Simulation of internet of things environment | |
CN110297944B (zh) | 分布式xml数据处理方法及系统 | |
CN112988608B (zh) | 数据测试方法、装置、计算机设备及存储介质 | |
CN112416488B (zh) | 一种用户画像实现的方法、装置、计算机设备及计算机可读存储介质 | |
CN116860391A (zh) | Gpu算力资源调度方法、装置、设备和介质 | |
CN107395663B (zh) | 数据获取方法及装置 | |
CN115883310A (zh) | 服务部署方法、服务部署系统、电子设备及存储介质 | |
CN115022328B (zh) | 服务器集群以及服务器集群的测试方法、装置和电子设备 | |
CN115134254B (zh) | 一种网络模拟方法、装置、设备及存储介质 | |
EP4328748A1 (en) | Data processing method and apparatus, computer device, computer-readable storage medium, and computer program product | |
CN116980358A (zh) | 数据处理方法、装置、计算机设备、存储介质及产品 | |
CN109462491B (zh) | 用于测试服务器功能的系统、方法和装置 | |
CN112416887B (zh) | 信息交互方法、装置和电子设备 | |
CN110545296A (zh) | 一种日志数据获取方法、装置及其设备 | |
CN109151007B (zh) | 应用调度的数据处理方法、核心服务器与传输服务器 | |
CN112988339A (zh) | 一种数据管理方法及装置 | |
DE102020119518A1 (de) | Verfahren und vorrichtung für mehrere asynchrone konsumenten | |
CN112527656A (zh) | 一种WebSocket接口的测试方法、装置及设备 | |
CN111538660A (zh) | 云上容器内程序代码覆盖率统计方法及装置 | |
CN112286808A (zh) | 应用程序的测试方法、装置、电子设备及介质 | |
CN107885659A (zh) | 对客户端的请求模拟响应的方法及装置、设备 | |
CN112835625A (zh) | 流水线配置方法、装置、可读存储介质和电子设备 | |
CN113687870B (zh) | 终端运行优化方法、装置、存储介质以及终端 | |
CN109614566A (zh) | 流量来源分析方法、系统和装置 | |
CN110325966A (zh) | 用于仿真的算术惰性标志表示 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |