CN116108042A - 数据处理方法、装置、电子设备、存储介质及程序产品 - Google Patents
数据处理方法、装置、电子设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN116108042A CN116108042A CN202310379794.6A CN202310379794A CN116108042A CN 116108042 A CN116108042 A CN 116108042A CN 202310379794 A CN202310379794 A CN 202310379794A CN 116108042 A CN116108042 A CN 116108042A
- Authority
- CN
- China
- Prior art keywords
- data
- node
- nodes
- target data
- directed acyclic
- 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 30
- 238000000034 method Methods 0.000 claims abstract description 34
- 238000012545 processing Methods 0.000 claims abstract description 34
- 238000004891 communication Methods 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 23
- 230000005540 biological transmission Effects 0.000 claims description 19
- 238000012546 transfer Methods 0.000 claims description 15
- 230000006870 function Effects 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 4
- 238000010276 construction Methods 0.000 claims description 3
- 230000000903 blocking effect Effects 0.000 abstract description 9
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供了一种数据处理方法、装置、电子设备、存储介质及程序产品,涉及数据处理技术领域。该方法包括:根据多个待获取的目标数据之间的依赖关系,构建对应的有向无环图;从有向无环图的至少一个起始节点到结束节点,依次获取每一个节点对应的目标数据;其中,任意两个不包含依赖关系的节点分别采用对应的协程获取目标数据;将结束节点所获取的目标数据作为目标结果。本申请提供的数据处理方法根据依赖关系设置有向无环图并进行数据的获取,无依赖关系的节点使用协程独立地获取各自的目标数据,能够避免获取数据时产生阻塞,能够减少耗时,提高系统性能。
Description
技术领域
本申请涉及数据处理技术领域,具体而言,本申请涉及一种数据处理方法、装置、电子设备、存储介质及计算机程序产品。
背景技术
随着信息技术的发展,各个应用程序的页面场景由结构化数据组成,而组成结构化数据的是若干个部分的数据,这些数据来源于不同的上游业务,各个部分的数据也存在一定的依赖关系,如何获取这些来源不同的数据是一个需要解决的问题。
现存的方案中,是通过使用多线程并行获取不同的数据源,每个线程处理一个数据,使用代码的先后顺序体现不同数据之间的依赖关系,但不恰当的代码顺序让不同数据源的数据的依赖关系不够清晰容易阻塞,使得耗时较长,降低了系统性能。
发明内容
本申请实施例旨在解决多个数据源依赖关系不明确在获取数据时容易阻塞,耗时较长效率低的问题。所述技术方案如下:
第一方面,本申请提供了一种数据处理方法,其特征在于,包括:
根据多个待获取的目标数据之间的依赖关系,构建对应的有向无环图;
从所述有向无环图的至少一个起始节点到结束节点,依次获取每一个节点对应的目标数据;其中,任意两个不包含依赖关系的节点分别采用对应的协程获取目标数据;
将结束节点所获取的目标数据作为目标结果。
在第一方面的可选实施例中,所述根据多个待获取的目标数据之间的依赖关系,构建对应的有向无环图,包括:
确定所述多个目标数据之间有直接依赖关系的数据对;
将所述有直接依赖关系的数据对通过边连接;
基于各个所述数据对对应的两个目标数据之间的依赖关系确定所述边的方向,生成所述有向无环图。
在第一方面的可选实施例中,所述从所述有向无环图的至少一个起始节点到结束节点,依次获取每一个节点对应的目标数据之前,还包括:
确定不依赖其他目标数据的第一数据,将所述第一数据的节点作为所述起始节点;
确定不被其他目标数据依赖的第二数据,将所述第二数据作为所述结束节点。
在第一方面的可选实施例中,所述依次获取每一个节点对应的目标数据,包括:
针对于每一个节点,从所述目标数据中确定所述节点的传递信息;
基于所述传递信息获取相邻后向节点的传递数据;所述相邻后向节点对应的目标数据直接依赖于所述节点的传递数据。
在第一方面的可选实施例中,所述有向无环图中的边为连接有依赖关系的两个节点的通信通道;
所述方法还包括:
将所述传递数据通过所述通信通道发送至所述相邻后向节点,以使所述相邻后向节点基于所述传递数据获取目标数据。
在第一方面的可选实施例中,在所述将所述传递数据通过所述通信通道发送至所述相邻后向节点之前,还包括:
针对任意有依赖关系的两个节点,基于各节点对应的协程之间的通信功能创建所述两个节点之间的通信通道。
在第一方面的可选实施例中,所述方法还包括:
接收针对更新数据的处理请求;
响应于所述处理请求,从所述有向无环图中确定与所述更新数据具有直接依赖关系的至少两个关联节点;
基于所确定的至少两个关联节点创建与所述更新数据对应的更新节点,生成更新后的有向无环图;
基于所述更新后的有向无环图获取所述目标数据。
第二方面,本申请提供了一种数据处理装置,其特征在于,包括:
构建模块,用于根据多个待获取的目标数据之间的依赖关系,构建对应的有向无环图;
执行模块,用于从所述有向无环图的至少一个起始节点到结束节点,依次获取每一个节点对应的目标数据;其中,任意两个不包含依赖关系的节点分别采用对应的协程获取目标数据;
获取模块,用于将结束节点获取的目标数据作为目标结果。
第三方面,本申请提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述计算机程序以实现上述数据处理方法的步骤。
第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据处理方法的步骤。
第五方面,本申请提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述数据处理方法的步骤。
本申请实施例提供的技术方案带来的有益效果是:
本申请提供的数据处理方法,通过多个待获取的目标数据之间的依赖关系,以多个目标数据为节点,以节点之间的依赖关系为边,构建对应的有向无环图;从有向无环图的至少一个起始节点到结束节点依次获取每个节点对应的目标数据,将结束节点获取的目标数据作为目标结果;将数据之间的依赖关系生成有向无环图,能够使数据之间的依赖关系更加清晰,根据有向无环图进行数据的获取,无依赖关系的节点独立地获取各自的目标数据,能够避免获取数据时产生阻塞,能够减少耗时,提高系统性能;
另外,当有新的数据需要更新在已有的待获取数据中,只需要确定与更新数据有依赖关系的数据对应的节点,生成新的有向无环图,这样就不需要影响与更新数据不存在关系的数据,能够尽量减少影响数据的范围,进行小范围的更新,能够增大系统的稳定性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种数据处理方法的应用场景示意图;
图2为本申请实施例提供的一种数据处理方法的流程示意图;
图3为本申请实施例提供的一种数据处理方法中处理更新数据的流程示意图;
图4为本申请实施例提供的一种数据处理方法的一种示例的流程示意图;
图5为本申请实施例提供的一种数据处理装置的结构示意图;
图6为本申请实施例提供的一种数据处理方法适用的电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式 “一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作和组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先对本申请涉及的几个名词进行介绍和解释:
有向无环图(DAG,Directed Acyclic Graph):如果一个有向图从任意顶点出发无法经过若干条边回到该点,则这个图是一个有向无环图。
协程(coroutine):协程运行在线程之上,在线程的基础之上通过分时复用的方式运行多个协程,当一个协程执行完成后,可以选择主动让出,让另一个协程运行在当前线程之上。
现在的数据获取过程中,对于存在依赖关系的多个数据,是通过代码的顺序按照顺序执行数据的获取操作的,各个数据之间的关系并不能清晰可见,而且按照代码顺序进行执行可能会遇到某个步骤的阻塞,无法进行后续的获取步骤,耗时较长;而且在对多个数据进行更新的时候,要对代码的整体顺序进行调整,影响的范围较大,导致系统性能较差。
本申请提供的数据处理方法、装置、电子设备、存储介质及程序产品,旨在解决现有技术的如上技术问题。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
图1为本申请实施例提供的数据处理方法的应用场景示意图,其中,应用环境可以包括能够根据有向无环图处理数据的终端101。
具体的,在终端101中进行数据获取操作的时候,可以使用上述的数据处理方法,即先根据多个数据之间的依赖关系生成有向无环图,以各个数据为节点,将有依赖关系的数据通过边连接,再根据依赖关系生成边的方向,生成对应的有向无环图;根据生成的有向无环图,从至少一个不依赖其他数据的起始节点依次获取和处理每个节点的数据,直至获取不被其他数据依赖的结束节点输出的目标结果;在各个节点进行数据传递的时候,根据节点的传递信息确定传给相邻后向节点的数据,通过协程之间的通信功能生成节点之间的通信通道,通过通信通道将传递的数据传递到后向节点。
上述应用场景中,在终端101中对数据进行操作的应用程序,使用上述的数据处理方法,通过多个数据之间的依赖关系生成的有向无环图进行多个数据的获取和处理;在其他实施例中,也可以是在服务器中进行数据处理操作,上述的应用场景只是一个示例,并不对本申请数据处理方法的应用场景进行限制。
本技术领域技术人员可以理解,终端(也可以称为用户终端或用户设备)可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能语音交互设备(例如智能音箱)、可穿戴电子设备(例如智能手表)、车载终端、智能家电(例如智能电视)、AR/VR设备、飞行器等,但并不局限于此。本发明实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。
服务器可以包括安装有能够处理数据库操作的服务器。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器或服务器集群。终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、笔记本电脑、数字广播接收器、MID(Mobile Internet Devices,移动互联网设备)、PDA(个人数字助理)、台式计算机、智能家电、车载终端(例如车载导航终端、车载电脑等)、智能音箱、智能手表等,终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,但并不局限于此。本发明实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。具体也可基于实际应用场景需求确定,在此不作限定。
在一些可能的实施方式中,以执行主体为终端中的数据处理程序为例,本申请实施例提供了一种数据处理方法,如图2所示,可以包括如下步骤:
S201,根据多个待获取的目标数据之间的依赖关系,构建对应的有向无环图。
其中,多个待获取的目标数据可以组成结构化数据;多个目标数据之间存在依赖关系,其中依赖关系可以包括获取数据的先后顺序和依赖顺序。
具体的,多个待获取的目标数据可以作为有向无环图的节点,各个节点之间的依赖关系可以为有向无环图的边,获取各个节点的目标数据的先后顺序可以为边的方向。
在具体实施过程中,有向无环图的节点可以包括:命名、数据获取句柄、端口、前向节点组、前向端口组、后向节点组和当前协程;其中,命名包括节点的唯一标识;数据获取句柄包括当前节点获取数据的方法,例如指定可以获取节点数据的数据源;端口包括当前节点可以传递给后向节点的数据;前向节点组包括指向当前节点的至少一个前向节点;前向端口组包括前向节点组传递给当前节点的数据组;后向节点组包括当前节点指向的后向节点;当前协程包括从线程池中获取的处理当前节点数据的协程,该协程用于异步地使用数据获取句柄获取节点的目标数据。
具体的,有向无环图的边可以通过协程的通信功能创建通信通道,连接拥有依赖关系的两个节点;前向节点可以使用边也就是通信通道向当前节点传输数据。
S202,从所述有向无环图的至少一个起始节点到结束节点,依次获取每一个节点对应的目标数据。
其中,任意两个不包含依赖关系的节点分别采用对应的协程获取目标数据。
其中,起始节点是指没有依赖任何数据的目标数据对应的节点,起始节点可以有多个,包括无入度的节点;结束节点为没有被任何数据依赖的数据对应的节点,包括无出度的节点。其中,获取各个节点对应的目标数据的过程包括非阻塞过程。
具体的,在起始节点获取对应的目标数据,根据节点中的信息将能够够传递给后向节点的数据传递到相邻的后向节点,相邻后向节点在接收到当前起始节点传递的数据之后,获取后向节点对应的目标数据,再将该节点能够传递给后向节点的数据传递出去;以上述步骤从起始节点依次重复执行到结束节点。
在具体实施过程中,当步骤执行到任一节点时,操作系统可以唤醒该节点对应的协程,然后通过对应的协程获取当前节点对应的目标数据。任意两个之间不包含依赖关系的节点分别对应一个协程,节点分别采用对应的协程获取节点的目标数据,减少时间消耗,提升系统性能。
S203,将结束节点所获取的目标数据作为目标结果。
具体的,结束节点获取前向节点传递来的数据,根据传递来的数据获取结束节点对应的目标数据,完成数据的获取之后就输出目标结果,获取数据结果之后就可以认为是整个数据获取及处理的流程已经完成;其中,目标结果可以是已经组装好的结构化数据。
上述实施例中,通过多个待获取的目标数据之间的依赖关系,以多个目标数据为节点,以节点之间的依赖关系为边,构建对应的有向无环图;从有向无环图的至少一个起始节点到结束节点依次获取每个节点对应的目标数据,将结束节点获取的目标数据作为目标结果;将数据之间的依赖关系生成有向无环图,能够使数据之间的依赖关系更加清晰,根据有向无环图进行数据的获取,无依赖关系的节点独立地获取各自的目标数据,能够避免获取数据时产生阻塞,能够减少耗时,提高系统性能。
在一些可能的实施方式中,上述S201中根据多个待获取的目标数据之间的依赖关系,构建对应的有向无环图,包括:
(1)确定所述多个目标数据之间有直接依赖关系的数据对;
(2)将所述有直接依赖关系的数据对通过边连接;
(3)基于各个所述数据对对应的两个目标数据之间的依赖关系确定所述边的方向,生成所述有向无环图。
其中,有直接依赖关系的数据对可以有多个,直接依赖关系的数据对可以是指任一数据与其依赖的数据,也可以是指任一数据与依赖它的数据。
具体的,确定有直接依赖关系的数据对之后,将数据对的两个数据作为两个节点,将两个节点通过边连接在一起,之后再根据具体的依赖关系确定这条边的方向。例如,数据B依赖数据A,则将数据A和数据B对应的节点以边连接,又因为是B依赖于A,所以边的方向为接节点A指向节点B;若数据B又被数据C依赖,则节点B与节点C之间的边的方向为B指向C;其中A与C没有直接的依赖关系,所以两节点之间不存在连接的边。
在一些可能的实施方式中,上述步骤S202的从所述有向无环图的至少一个起始节点到结束节点,依次获取每一个节点对应的目标数据之前,还包括:
(1)确定不依赖其他目标数据的第一数据,将所述第一数据的节点作为所述起始节点;
(2)确定不被其他目标数据依赖的第二数据,将所述第二数据作为所述结束节点。
其中,第一数据可以有多个,多个第一数据之间不存在依赖关系,即相互独立。
具体的,若是存在多个第一数据,因为多个第一数据相互独立,则可以给多个第一数据分别分配对应的协程进行处理,多个协程分别获取节点对应的目标数据,可以避免阻塞,减少耗时。
在一些可能的实施方式中,上述步骤S202中依次获取每一个节点对应的目标数据,包括:
(1)针对于每一个节点,从所述目标数据中确定所述节点的传递信息;
(2)基于所述传递信息获取相邻后向节点的传递数据;所述相邻后向节点对应的目标数据直接依赖于所述节点的传递数据。
其中,每个节点的传递信息可以包括该节点能够传递给后向节点的数据。
具体的,在获取节点对应的目标数据之后,根据该节点的传递信息确定能够传给相邻后向节点的传递数据,相邻后向节点可以为多个,传递给多个不同的相邻后向节点的传递数据可以是相同的。
具体的,节点在获取相邻的前向节点的传递数据之后,基于收到的传递数据获取该节点对应的目标数据;其中,相邻的前向节点可以为多个;基于多个前向节点的传递数据和节点获取数据的办法,获取当前节点对应的目标数据。
在一些可能的实施方式中,所述有向无环图中的边为连接有依赖关系的两个节点的通信通道;
所述方法还包括:
(1)将所述传递数据通过所述通信通道发送至所述相邻后向节点,以使所述相邻后向节点基于所述传递数据获取目标数据。
其中,通信通道可以向当前节点传递前向节点的传递数据,可以将当前节点的传递数据传递给该节点的相邻后向节点。
具体的,当任意两个节点的数据之间存在依赖关系,两个节点对应的数据通过边连接,当被依赖的数据的节点获取目标数据之后,就通过与有向无环图中边对应的通信通道将该节点的传递数据传递给依赖该数据的节点,再进行下一节点的目标数据的获取。
在一些可能的实施方式中,在所述将所述传递数据通过所述通信通道发送至所述相邻后向节点之前,还包括:
(1)针对任意有依赖关系的两个节点,基于各节点对应的协程之间的通信功能创建所述两个节点之间的通信通道。
具体的,每个节点都可以绑定一个对应的协程,根据各个协程之间的通信功能,创建有直接依赖关系的节点之间的通信通道,用于有依赖关系的两个节点的数据传输。
在一些可能的实施方式中,本申请实施例提供了一种数据的处理方法,如图3所示,包括如下步骤:
S301,接收针对更新数据的处理请求。
具体的,当有新的数据需要处理,且更新的数据与多个待获取数据中的数据存在依赖关系时,就接收针对更新数据的处理请求;其中,处理请求中包括需要更新的数据,获取数据的方法和与已存在数据的依赖关系等等。
S302,响应于所述处理请求,从所述有向无环图中确定与所述更新数据具有直接依赖关系的至少两个关联节点。
具体的,响应于更新数据的处理请求,根据所述处理请求确定与该更新数据有直接依赖关系的至少两个相关数据及其对应的节点,确定数据更新完毕后进行数据处理的顺序和获取数据的依赖顺序。
S303,基于所确定的至少两个关联节点创建与所述更新数据对应的更新节点,生成更新后的有向无环图。
具体的,根据更新数据的处理请求确定更新数据的相关信息,根据相关信息生成更新数据对应的更新节点;更新节点可以包括:更新节点的命名、数据获取句柄、端口、前向节点组、前向端口组、后向节点组和当前协程。
具体的,在确定更新节点之后,根据更新节点和具有直接依赖关系的节点,确定节点之间连接的边,根据具体的依赖关系,确定连接两个节点的边的方向,之后便生成了新的邮箱无环图。
S304,基于所述更新后的有向无环图获取所述目标数据。
具体的,从更新后的有向无环图的至少一个起始节点到结束节点,依次获取每一个节点对应的目标数据,将结束节点所获取的目标数据作为目标结果。
在具体实施过程中,在将更新节点更新到有向无环图之后,可以从更新节点开始一次获取该节点和后向节点的数据,获取目标数据的过程可以包括:更新节点接收到相邻前向节点的传递数据,就根据传递数据获取更新节点对应的目标数据,在获取目标数据后,获取传递给后向节点的传递数据并传递给后向节点。在更新有向无环图之后,更新节点的前向节点对应的目标数据不需要重复获取,能够接受资源,减少耗时提升性能。
上述实施例中,通过多个待获取的目标数据之间的依赖关系,以多个目标数据为节点,以节点之间的依赖关系为边,构建对应的有向无环图;从有向无环图的至少一个起始节点到结束节点依次获取每个节点对应的目标数据,将结束节点获取的目标数据作为目标结果;将数据之间的依赖关系生成有向无环图,能够使数据之间的依赖关系更加清晰,根据有向无环图进行数据的获取,无依赖关系的节点独立地获取各自的目标数据,能够避免获取数据时产生阻塞,能够减少耗时,提高系统性能;
另外,当有新的数据需要更新在已有的待获取数据中,只需要确定与更新数据有依赖关系的数据对应的节点,生成新的有向无环图,这样就不需要影响与更新数据不存在关系的数据,能够尽量减少影响数据的范围,进行小范围的更新,能够增大系统的稳定性。
为更清楚地理解本申请实施例描述的数据处理方法,以下将结合示例进行进一步详细阐述。
在一个示例中,本申请的数据处理方法,如图4所示,可以包括:
通过多个待获取的目标数据之间的依赖关系,以多个目标数据为节点,以节点之间的依赖关系为边,将有直接依赖关系的两个节点通过边连接,构建有向无环图。
从有向无环图的至少一个起始节点依次获取每个节点对应的目标数据,根据传递信息(即图中所示的端口)将能够传递的数据传递给相邻的后向节点,每个节点根据有向无环图的拓扑顺序重复执行数据的获取和传递过程,直至结束节点,将结束节点获取的目标数据作为目标结果。
另外,当有新的数据需要更新,而当前已经有构建完成的有向无环图,则生成与更新数据对应的新节点,确定与更新数据有直接依赖关系的数据对应的节点,并调整节点在有向无环图中的位置和边的连接关系,生成新的有向无环图。
上述数据处理方法通过多个待获取的目标数据之间的依赖关系,以多个目标数据为节点,以节点之间的依赖关系为边,构建对应的有向无环图;从有向无环图的至少一个起始节点到结束节点依次获取每个节点对应的目标数据,将结束节点获取的目标数据作为目标结果;将数据之间的依赖关系生成有向无环图,能够使数据之间的依赖关系更加清晰,根据有向无环图进行数据的获取,无依赖关系的节点独立地获取各自的目标数据,能够避免获取数据时产生阻塞,能够减少耗时,提高系统性能;
另外,当有新的数据需要更新在已有的待获取数据中,只需要确定与更新数据有依赖关系的数据对应的节点,生成新的有向无环图,这样就不需要影响与更新数据不存在关系的数据,能够尽量减少影响数据的范围,进行小范围的更新,能够增大系统的稳定性。
本申请实施例提供了一种数据处理装置,如图5所示,该装置50可以包括:构建模块501、执行模块502和获取模块503,其中,
构建模块501,用于根据多个待获取的目标数据之间的依赖关系,构建对应的有向无环图;
执行模块502,用于从所述有向无环图的至少一个起始节点到结束节点,依次获取每一个节点对应的目标数据;其中,任意两个不包含依赖关系的节点分别采用对应的协程获取目标数据;
获取模块503,用于将结束节点获取的目标数据作为目标结果。
本申请提供的数据处理装置中,通过多个待获取的目标数据之间的依赖关系,以多个目标数据为节点,以节点之间的依赖关系为边,构建对应的有向无环图;从有向无环图的至少一个起始节点到结束节点依次获取每个节点对应的目标数据,将结束节点获取的目标数据作为目标结果;将数据之间的依赖关系生成有向无环图,能够使数据之间的依赖关系更加清晰,根据有向无环图进行数据的获取,无依赖关系的节点独立地获取各自的目标数据,能够避免获取数据时产生阻塞,能够减少耗时,提高系统性能;
另外,当有新的数据需要更新在已有的待获取数据中,只需要确定与更新数据有依赖关系的数据对应的节点,生成新的有向无环图,这样就不需要影响与更新数据不存在关系的数据,能够尽量减少影响数据的范围,进行小范围的更新,能够增大系统的稳定性。
本申请实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现数据处理方法的步骤,与相关技术相比可实现:使用数据间的依赖关系构建有向无环图,根据有向无环图的顺序执行数据的获取和处理步骤,减少阻塞和耗时,增加系统性能。
在一个可选实施例中提供了一种电子设备,如图6所示,图6所示的电子设备6000包括:处理器6001和存储器6003。其中,处理器6001和存储器6003相连,如通过总线6002相连。可选地,电子设备6000还可以包括收发器6004,收发器6004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器6004不限于一个,该电子设备6000的结构并不构成对本申请实施例的限定。
处理器6001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器6001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线6002可包括一通路,在上述组件之间传送信息。总线6002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线6002可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器6003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器6003用于存储执行本申请实施例的计算机程序,并由处理器6001来控制执行。处理器6001用于执行存储器6003中存储的计算机程序,以实现前述方法实施例所示的步骤。
其中,电子设备包括但不限于:手机和电脑等能够根据有向无环图进行数据处理的终端设备。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除图示或文字描述以外的顺序实施。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。
Claims (11)
1.一种数据处理方法,其特征在于,包括:
根据多个待获取的目标数据之间的依赖关系,构建对应的有向无环图;
从所述有向无环图的至少一个起始节点到结束节点,依次获取每一个节点对应的目标数据;其中,任意两个不包含依赖关系的节点分别采用对应的协程获取目标数据;
将结束节点所获取的目标数据作为目标结果。
2.根据权利要求1所述的数据处理方法,其特征在于,所述根据多个待获取的目标数据之间的依赖关系,构建对应的有向无环图,包括:
确定所述多个目标数据之间有直接依赖关系的数据对;
将所述有直接依赖关系的数据对通过边连接;
基于各个所述数据对对应的两个目标数据之间的依赖关系确定所述边的方向,生成所述有向无环图。
3.根据权利要求1所述的数据处理方法,其特征在于,所述从所述有向无环图的至少一个起始节点到结束节点,依次获取每一个节点对应的目标数据之前,还包括:
确定不依赖其他目标数据的第一数据,将所述第一数据的节点作为所述起始节点;
确定不被其他目标数据依赖的第二数据,将所述第二数据作为所述结束节点。
4.根据权利要求1所述的数据处理方法,其特征在于,所述依次获取每一个节点对应的目标数据,包括:
针对于每一个节点,从所述目标数据中确定所述节点的传递信息;
基于所述传递信息获取相邻后向节点的传递数据;所述相邻后向节点对应的目标数据直接依赖于所述节点的传递数据。
5.根据权利要求4所述的数据处理方法,其特征在于,所述有向无环图中的边为连接有依赖关系的两个节点的通信通道;
所述方法还包括:
将所述传递数据通过所述通信通道发送至所述相邻后向节点,以使所述相邻后向节点基于所述传递数据获取目标数据。
6.根据权利要求5所述的数据处理方法,其特征在于,在所述将所述传递数据通过所述通信通道发送至所述相邻后向节点之前,还包括:
针对任意有依赖关系的两个节点,基于各节点对应的协程之间的通信功能创建所述两个节点之间的通信通道。
7.根据权利要求4所述的数据处理方法,其特征在于,所述方法还包括:
接收针对更新数据的处理请求;
响应于所述处理请求,从所述有向无环图中确定与所述更新数据具有直接依赖关系的至少两个关联节点;
基于所确定的至少两个关联节点创建与所述更新数据对应的更新节点,生成更新后的有向无环图;
基于所述更新后的有向无环图获取所述目标数据。
8.一种数据处理装置,其特征在于,包括:
构建模块,用于根据多个待获取的目标数据之间的依赖关系,构建对应的有向无环图;
执行模块,用于从所述有向无环图的至少一个起始节点到结束节点,依次获取每一个节点对应的目标数据;其中,任意两个不包含依赖关系的节点分别采用对应的协程获取目标数据;
获取模块,用于将结束节点获取的目标数据作为目标结果。
9.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的数据处理方法的步骤。
11.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310379794.6A CN116108042A (zh) | 2023-04-11 | 2023-04-11 | 数据处理方法、装置、电子设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310379794.6A CN116108042A (zh) | 2023-04-11 | 2023-04-11 | 数据处理方法、装置、电子设备、存储介质及程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116108042A true CN116108042A (zh) | 2023-05-12 |
Family
ID=86262005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310379794.6A Pending CN116108042A (zh) | 2023-04-11 | 2023-04-11 | 数据处理方法、装置、电子设备、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116108042A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117648179A (zh) * | 2023-11-23 | 2024-03-05 | 北京菱云科技有限公司 | 一种资源分配方法、装置、电子设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190273659A1 (en) * | 2018-03-02 | 2019-09-05 | SILVAIR Sp. z o.o. | System and Method for Commissioning Mesh Network-Capable Devices within a Building Automation and Control System |
CN111563820A (zh) * | 2020-05-08 | 2020-08-21 | 中国工商银行股份有限公司 | 智能合约并行执行方法及装置 |
CN114697398A (zh) * | 2022-03-23 | 2022-07-01 | 北京百度网讯科技有限公司 | 数据处理方法、装置、电子设备、存储介质及产品 |
CN115329143A (zh) * | 2022-08-01 | 2022-11-11 | 北京百度网讯科技有限公司 | 有向无环图评估方法、装置、设备及存储介质 |
-
2023
- 2023-04-11 CN CN202310379794.6A patent/CN116108042A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190273659A1 (en) * | 2018-03-02 | 2019-09-05 | SILVAIR Sp. z o.o. | System and Method for Commissioning Mesh Network-Capable Devices within a Building Automation and Control System |
CN111563820A (zh) * | 2020-05-08 | 2020-08-21 | 中国工商银行股份有限公司 | 智能合约并行执行方法及装置 |
CN114697398A (zh) * | 2022-03-23 | 2022-07-01 | 北京百度网讯科技有限公司 | 数据处理方法、装置、电子设备、存储介质及产品 |
CN115329143A (zh) * | 2022-08-01 | 2022-11-11 | 北京百度网讯科技有限公司 | 有向无环图评估方法、装置、设备及存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117648179A (zh) * | 2023-11-23 | 2024-03-05 | 北京菱云科技有限公司 | 一种资源分配方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110443375B (zh) | 一种联邦学习方法及装置 | |
CN110609872A (zh) | 用于同步节点数据的方法和装置 | |
CN103597465A (zh) | 高效的状态协调 | |
CN103534988A (zh) | 消息发布与订阅的方法及装置 | |
CN111798238B (zh) | 平行链共识方法、设备和存储介质 | |
CN110933173B (zh) | 一种基于区块链技术的组网方法和装置 | |
CN104796391A (zh) | 签到验证方法以及签到验证客户端、服务器、系统和装置 | |
CN111639080B (zh) | 一种数据处理方法、装置、节点设备及存储介质 | |
CN116108042A (zh) | 数据处理方法、装置、电子设备、存储介质及程序产品 | |
CN110781373A (zh) | 榜单更新方法、装置、可读介质和电子设备 | |
CN114090388A (zh) | 信息获取方法、服务器集群、服务器及设备 | |
CN116827774A (zh) | 一种业务分析方法、装置、设备及存储介质 | |
CN114428907A (zh) | 信息搜索方法、装置、电子设备及存储介质 | |
CN104376056A (zh) | 一种数据处理的方法和装置 | |
CN110597808B (zh) | 分布式数据库表连接方法、装置、系统、服务器及介质 | |
CN108009247B (zh) | 信息推送方法及装置 | |
CN111814020A (zh) | 一种数据的获取方法和装置 | |
CN116467081A (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
CN105429981A (zh) | 游戏语音传输方法、终端、语音服务模块及游戏系统 | |
Li et al. | Architectures for coded mobile edge computing | |
CN114579311A (zh) | 执行分布式计算任务的方法、装置、设备以及存储介质 | |
CN115082038A (zh) | 系统集成方法、装置及电子设备 | |
CN114637531A (zh) | 应用程序接口动态生成方法及装置 | |
US20170171332A1 (en) | Message pushing method, electronic device and non-transitory computer-readable storage medium | |
CN110445848B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20230512 |