CN114217785A - 面向数据流的大数据处理方法、装置和计算机设备 - Google Patents
面向数据流的大数据处理方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN114217785A CN114217785A CN202111427907.2A CN202111427907A CN114217785A CN 114217785 A CN114217785 A CN 114217785A CN 202111427907 A CN202111427907 A CN 202111427907A CN 114217785 A CN114217785 A CN 114217785A
- Authority
- CN
- China
- Prior art keywords
- operator
- dag
- graph
- graphic
- dag graph
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及一种面向数据流的大数据处理方法、装置和计算机设备。所述方法包括:获取用户终端上传的DAG图,图形算子以图形界面的方式呈现,表征封装有业务逻辑的算子代码,DAG图中图形算子之间的数据流向表征业务流程数据流,当DAG图满足预设合理性要求时,将DAG图中的各图形算子对应转换为JSON格式的算子对象,JSON格式的算子对象存放有对应的图形算子的父节点在DAG图中的编号,根据JSON格式的算子对象,创建表征业务流程调度入口函数,以实现各算子对象的实例所对应的业务功能。采用本方法在业务流程修改时,无需重新编写调用语句,提高数据处理效率。
Description
技术领域
本申请涉及大数据处理技术领域,特别是涉及一种面向数据流的大数据处理方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着大数据技术的快速发展,现有的大数据处理平台(例如Spark、Flink、Storm等)都提供了数据流处理模型,并且提供了自动的数据分割、任务调度、负载均衡、数据缓存、数据通信等算子,其大幅度降低了系统开发的复杂度,并能够适应大容量和高并发的高通量需求。
此外,随着功能模块封装的流行性,可视化编程在许多非计算机领域得到广泛的应用,但基本上属于编程结构和语句的图形化表述,现有基于大数据处理平台的数据流处理平台仍然具有一些不可忽略的问题,例如,若每次要处理新的业务都需要重新开始编码,对于已经编写并封装好的模块,也需要重复编写调用语句,容易出错;并且,由于业务的模块代码调度没有一个很直观的展示,导致使用门槛较高,用户友好度较差,无疑拉长了处理时长。
由此看来,现有的面向数据流的大数据处理方法存在处理效率低下的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种高效的面向数据流的大数据处理方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种面向数据流的大数据处理方法。所述方法包括:
获取用户终端上传的DAG(Directed Acyclic Graph,有向无环图)图和DAG图中各图形算子的输入参数,图形算子以图形界面的方式呈现,且表征封装有业务逻辑的算子代码,DAG图中图形算子之间的数据流向表征业务流程数据流;
当DAG图满足预设合理性要求时,将DAG图中的各图形算子对应转换为JSON格式的算子对象,JSON格式的算子对象存放有对应的图形算子的父节点在DAG图中的编号;
根据JSON格式的算子对象,创建业务流程调度入口函数。
在其中一个实施例中,获取用户终端上传的DAG图之前,还包括:
获取用户终端上传的算子jar包,算子jar包包括算子和算子所依赖的静态数据文件;
根据预设图形算子生成规则,生成与算子对应的图形算子;
发送DAG图绘制消息至所述用户终端,DAG图绘制消息携带图形算子,图形算子用于供用户根据业务流程进行排列组合得到DAG图。
在其中一个实施例中,判断DAG图是否满足预设合理性要求包括:
检查DAG图中是否存在环,以及检查DAG图中各图形算子的输入参数的完整性和规范性;
当DAG图中不存在环且DAG图中各图形算子的输入参数满足完整性和规范性要求时,判定DAG图满足预设合理性要求,否则,判定DAG图不满足预设合理性要求,发送DAG图重绘消息至用户终端。
在其中一个实施例中,将DAG图中的各图形算子对应转换为JSON格式的算子对象包括:
将DAG图中各图形算子对应转换为JSON格式的算子对象,并设置每个算子对象的属性,属性包括名称属性、编号属性、父节点编号属性和参数列表属性。
在其中一个实施例中,根据JSON格式的算子对象,创建业务流程调度入口函数之后,还包括:
发送项目封装请求至第三方项目管理应用;
接收第三方项目管理应用反馈的可执行jar包,将可执行jar包提交至预设集群运行,以执行业务流程调度入口函数。
在其中一个实施例中,执行业务流程调度入口函数包括以下数据处理过程:
依次获取各JSON格式的算子对象的输入参数列表和父节点列表;
根据父节点列表从预设哈希变量中依次取出各算子对象的父节点的实例执行结果,预设哈希变量的键值对分别映射到算子对象的编号属性和编号属性对应的算子对象的实例执行结果;
根据各算子对象的输入参数和各算子对象父节点的实例执行结果,创建各算子对象的实例;
执行各算子对象的实例,得到执行结果,将执行结果存入预设哈希变量。
第二方面,本申请还提供了一种面向数据流的大数据处理装置。装置包括:
数据获取模块,用于获取用户终端上传的DAG图,图形算子以图形界面的方式呈现,且表征封装有业务逻辑的算子代码,DAG图中图形算子之间的数据流向表征业务流程数据流;
数据转换模块,用于当DAG图满足预设合理性要求时,将DAG图中的各图形算子对应转换为JSON格式的算子对象,JSON格式的算子对象存放有对应的图形算子的父节点在DAG图中的编号;
数据执行模块,用于根据JSON格式的算子对象,创建业务流程调度入口函数。
第三方面,本申请还提供了一种计算机设备。计算机设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:
获取用户终端上传的DAG图,图形算子以图形界面的方式呈现,且表征封装有业务逻辑的算子代码,DAG图中图形算子之间的数据流向表征业务流程数据流;
当DAG图满足预设合理性要求时,将DAG图中的各图形算子对应转换为JSON格式的算子对象,JSON格式的算子对象存放有对应的图形算子的父节点在DAG图中的编号;
根据JSON格式的算子对象,创建业务流程调度入口函数。
第四方面,本申请还提供了一种计算机可读存储介质。计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取用户终端上传的DAG图,图形算子以图形界面的方式呈现,且表征封装有业务逻辑的算子代码,DAG图中图形算子之间的数据流向表征业务流程数据流;
当DAG图满足预设合理性要求时,将DAG图中的各图形算子对应转换为JSON格式的算子对象,JSON格式的算子对象存放有对应的图形算子的父节点在DAG图中的编号;
根据JSON格式的算子对象,创建业务流程调度入口函数。
第五方面,本申请还提供了一种计算机程序产品。计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取用户终端上传的DAG图,图形算子以图形界面的方式呈现,表征封装有业务逻辑的算子代码,DAG图中图形算子之间的数据流向表征业务流程数据流;
当DAG图满足预设合理性要求时,将DAG图中的各图形算子对应转换为JSON格式的算子对象,JSON格式的算子对象存放有对应的图形算子的父节点在DAG图中的编号;
根据JSON格式的算子对象,创建业务流程调度入口函数。
上述面向数据流的大数据处理方法、装置、计算机设备、存储介质和计算机程序产品,首先,将表征业务模块的算子以图形算子的形式呈现,实现以图形界面的方式来表述业务功能的执行过程,降低了使用门槛和编程出错的概率,并提升了用户友好度和使用效率,其次,将表征封装有业务逻辑的算子代码的图形算子组合成DAG图,能够使得用户根据业务流程自由拖拽图形算子组合得到携带有业务流程数据流的DAG图,实现将业务流程代码调度顺序映射为DAG图中的数据流向,当用户要修改业务流程时,只需调整DAG图中的图形算子的顺序即可,无需重新编写调用语句,通过将DAG图中的各图形算子对应转换为JSON格式的算子对象,并在算子对象存放有对应的图形算子的父节点在DAG图中的编号,使得图形算子间的数据流向得以保存,最后,根据JSON格式的算子对象,创建业务流程调度入口函数,使得调用该业务流程调度入口函数能够使得业务数据按照业务流程对应的数据流向进行处理,实现了基于DAG图的数据流向完成业务流程的调度。综上所述,采用本方案能够极大程度上提高面向数据流的大数据处理的效率。
附图说明
图1为一个实施例中面向数据流的大数据处理方法的应用环境图;
图2为一个实施例中面向数据流的大数据处理方法的流程示意图;
图3为另一个实施例中面向数据流的大数据处理方法的流程示意图;
图4为一个实施例中创建并执行算子对象的实例步骤的流程示意图;
图5为一个实施例中面向数据流的大数据处理装置的结构框图;
图6为另一个实施例中面向数据流的大数据处理装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的面向数据流的大数据处理方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。具体的,可以是运营人员根据业务流程拖拽图形算子组合得到DAG图,并输入各图形算子的输入参数,其中,图形算子以图形界面的方式呈现,表征封装有业务逻辑的算子代码,DAG图中图形算子之间的数据流向表征业务流程数据流,运营人员通过终端102将DAG图和DAG图中各图形算子的输入参数上传至服务器104,并发送数据处理消息至服务器104,服务器104响应该消息,获取用户终端上传的DAG图,当DAG图满足预设合理性要求时,将DAG图中的各图形算子对应转换为JSON格式的算子对象,JSON格式的算子对象存放有对应的图形算子的父节点在DAG图中的编号,根据JSON格式的算子对象,创建业务流程调度入口函数。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在其中一个实施例中,如图2所示,提供了一种面向数据流的大数据处理方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤202,获取用户终端上传的DAG图,图形算子以图形界面的方式呈现,且表征封装有业务逻辑的算子代码,DAG图中图形算子之间的数据流向表征业务流程数据流。
DAG为有向无环图,Spark中的RDD通过一系列的转换算子操作和行动算子操作形成了一个DAG。DAG是一种非常重要的图论数据结构。如果一个有向图无法从任意顶点出发经过若干条边回到该点,则这个图就是有向无环图。本实施例中的DAG是运营人员根据业务流程拖拽图形算子组合形成的,其中,图形算子与封装有相应业务逻辑的算子代码一一对应,且是以图形界面的方式呈现在用户终端,例如,在用户终端的操作界面上,可以矩形或圆形表征算子代码,并在矩形或圆形中编辑表征相应业务模块的文本,如以矩形+“信息查询”文本的方式表征封装有信息查询业务模块的代码的算子代码(以下简称算子)。由于每一个图形算子对应一个具体的业务模块,因此,DAG图中图形算子之间的数据流向可表征业务流程数据流。具体的,算子代码被封装成一个jar包,每个算子由一个类组成,单个算子可以独立打成一个jar包,也可以多个算子封装在一个jar包中,jar中除了包含代码,还应该包括算子所依赖的静态数据文件。
步骤204,当DAG图满足预设合理性要求时,将DAG图中的各图形算子对应转换为JSON格式的算子对象,JSON格式的算子对象存放有对应的图形算子的父节点在DAG图中的编号。
当获取DAG图之后,需要判断DAG图是否满足预设合理性要求,具体的,包括参数是否有缺失以及各输入参数是否合法等。若DAG图通过合理性检查,即满足预设合理性要求时,则将图像算子转换为JSON格式的算子对象,具体的,包括将算子的属性填充至对应的JSON格式的算子对象,本实施例中,JSON格式的算子对象拥有四个属性,且存放有对应的图形算子的父节点在DAG图中的编号。
步骤206,根据JSON格式的算子对象,创建业务流程调度入口函数。
当完成图形算子转换为JSON格式的算子对象后,即遍历JSON格式的算子对象,取出首个未被处理的算子对象,遍历该算子对象的属性数据,若属性数据满足相应的要求,便结合该算子对象的输入参数,创建业务流程调度入口函数即Main函数。
上述面向数据流的大数据处理方法中,首先,将表征业务模块的算子以图形算子的形式呈现,实现以图形界面的方式来表述业务功能的执行过程,降低了使用门槛和编程出错的概率,并提升了用户友好度和使用效率,其次,将表征封装有业务逻辑的算子代码的图形算子组合成DAG图,能够使得用户根据业务流程自由拖拽图形算子组合得到携带有业务流程数据流的DAG图,实现将业务流程代码调度顺序映射为DAG图中的数据流向,当用户要修改业务流程时,只需调整DAG图中的图形算子的顺序即可,无需重新编写调用语句,通过将DAG图中的各图形算子对应转换为JSON格式的算子对象,并在算子对象存放有对应的图形算子的父节点在DAG图中的编号,使得图形算子间的数据流向得以保存,最后,根据JSON格式的算子对象,创建业务流程调度入口函数,以使得调用该业务流程调度入口函数能够使得业务数据按照业务流程对应的数据流向进行处理,实现了基于DAG图的数据流向完成业务流程的调度。综上所述,采用本方案能够极大程度上提高面向数据流的大数据处理的效率。
如图3所示,在其中一个实施例中,获取用户终端上传的DAG图之前,还包括:
步骤200,获取用户终端上传的算子jar包,算子jar包包括算子和算子所依赖的静态数据文件,根据预设图形算子生成规则,生成与算子对应的图形算子,发送DAG图绘制消息至用户终端,DAG图绘制消息携带图形算子,图形算子用于供用户根据业务流程进行排列组合得到DAG图。
在实际应用中,获取DAG图之前,还需要依据用户编写的算子代码生成DAG图。具体的,可以是获取用户编写并上传的算子jar包,该算子jar包可以封装单个算子,也可以封装多个算子,jar中除了包含算子之外,还包括算子所依赖的静态数据文件如jar包。然后,基于获取的全部算子,结合图形算子生成规则,为每个算子生成对应的图形算子,然后,发送携带图形算子的DAG图绘制消息至用户终端,用户终端显示图形算子,用户于用户终端进行操作,根据业务流程拖拽图形算子组合生成DAG图,并为图形算子输入参数,如数据类型(浮点型,整型)、URL、图片以及文件等,用户绘制完成DAG图之后,将DAG图上传至服务器。本实施例中,将每个算子单独封装成一个jar包,能够目前大多数面向数据流处理平台中的模块间的耦合性较高和移植性较差的技术问题。
在其中一个实施例中,判断DAG图是否满足预设合理性要求包括:检查DAG图中是否存在环,以及检查DAG图中各图形算子的输入参数的完整性和规范性;当DAG图中不存在环且DAG图中各图形算子的输入参数满足完整性和规范性要求时,判定DAG图满足预设合理性要求,否则,判定DAG图不满足预设合理性要求,发送DAG图重绘消息至用户终端。
具体实施时,判断DAG图是否满足预设合理性要求包括:使用广度优先搜索算法判断DAG图中是否存在环。具体的,可以是在DAG图中找到一个没有前驱(入度为0)的节点,从该DAG图中删除该节点和所有以它为起点的有向边,在删除该节点的有向边过程中更新其他节点的入度数,找到下一个入度为0的节点,直到当前的DAG图为空或当前图中不存在无前驱的顶点为止,否则认为DAG图存在环,返回发送携带图形算子的DAG图绘制消息至用户终端的步骤,以生成新的DAG图,对其进行合理性检查。对DAG图中各图形算子的输入参数满足完整性和规范性检查(即输入参数合法性检查),可以是:对于每个算子对象是否有参数缺失的情况,具体的判断方式依据是若每个算子对象的入度数量加上用户手动输入的参数数量是否等于算子的参数总数,若等于,则该节点即拥有正确的参数个数,判定该算子满足完整性要求;其次,检查输入参数的数据类型是否和要求的类型一致,若一致,则判定该算子满足规范性要求,若不一致,则返回发送携带图形算子的DAG图绘制消息至用户终端的步骤,以生成新的DAG图,对其进行参数合法性检查。本实施例中,通过判断DAG图是否满足预设合理性要求,能够保证DAG图的合理性和规范性,便于后续的处理。
在其中一个实施例中,将DAG图中的各图形算子对应转换为JSON格式的算子对象包括:将DAG图中各图形算子对应转换为JSON格式的算子对象,并设置每个算子对象的属性,属性包括名称属性、编号属性、父节点编号属性和参数列表属性。
对于图中的每个算子节点,将其转换为JSON格式的对象,并设置相应的属性,本实施例中,每个算子对象拥有四个属性,分别是name属性(即名称属性)、sequence属性(编号属性)、fathers属性(即父节点编号属性)和parameter_list属性(即参数列表属性)。其中,name属性的值是算子的名称,sequence属性的值是算子在图中的编号,fathers属性的值是一个字符串数组,数组中存放着该算子节点的所有父节点的sequence值,parameter_list属性的值是一个字符串数组,数组中存放着对应算子的部分或所有参数,且该数组中的字符串排列必须同算子参数列表顺序保持严格一致,若该字符串数组的参数个数少于对应算子的参数个数,则默认剩余参数从其父节点的执行结果传入。设置每个算子的sequence属性,按照如下规则进行设置值:初始化一个索引值变量idx=0,从根节点开始,使用广度优先遍历的方法对DAG图进行遍历,对于遍历到的每个节点,其sequence值设置为idx值,每遍历一次idx变量,idx变量的值即自增一次。设置每个算子的fathers属性,按照如下规则进行设置值:首先让根节点的fathers属性初始化为空;然后使用广度优先遍历从根节点开始对DAG图进行一次遍历,遍历过程中对于每个节点node,判断其是否有出度节点,对于该节点的所有出度节点来说,node节点就是他们的父节点,将node节点的sequence的值加入到其所有出度节点的father数组中。parameter_list属性包括算子对象的父节点列表。当所有算子对象的全部属性都填充完毕后,即实现每个算子节点对应一个JSON对象。进一步的,还可以按照算子节点的sequence值对算子对象在JSON中的顺序进行升序排序。本实施例中,通过为算子对象设置name属性、sequence属性、fathers属性和parameter_list属性,能够保留业务模块间的数据流,便于业务流程的调度。
如图3所示,在其中一个实施例中,步骤206之后,还包括:步骤208,发送项目封装请求至第三方项目管理应用,接收第三方项目管理应用反馈的可执行jar包,将可执行jar包提交至预设集群运行,以执行业务流程调度入口函数。
具体实施时,生成了调用业务流程的入口Main函数之后,使用命令mvn package向第三方项目管理应用maven工具发出封装项目成jar的请求,maven工具将整个项目封装成可执行jar包、并反馈,接收反馈的可执行jar包,并将该jar包提交到Spark集群中运行,此时创建的各算子对象的实例依据数据流向依次被执行,使得业务数据根据数据流向在实例中被加工处理。可以理解的是,在其他实施例中,预设集群还可以是Flink或Storm,在此不做限定。具体的,使用maven工具来管理项目的依赖问题,用户必须上传算子所依赖的jar包或者在maven中央仓库中对于jar包的描述语句,该语句的格式即maven项目中pom.xml文件中管理每个依赖包的格式,即<dependency>……</dependency>。本实施例中,通过将项目封装成可执行jar包,并将该jar包提交到Spark集群中运行,可实现从构造业务模块功能调度过程到运行最终的可执行jar包的一键部署运行流程,解决了修改业务流程难度大,需要额外牵连修改其他模块的问题。
如图4所示,在其中一个实施例中,执行业务流程调度入口函数包括以下数据处理步骤:
步骤226,依次获取各JSON格式的算子对象的输入参数列表和父节点列表;
步骤246,根据父节点列表从预设哈希变量中依次取出各算子对象的父节点的实例执行结果,预设哈希变量的键值对分别映射到算子对象的编号属性和编号属性对应的算子对象的实例执行结果;
步骤266,根据各算子对象的输入参数和各算子对象父节点的实例执行结果,创建各算子对象的实例;
步骤286,执行各算子对象的实例,得到执行结果,将执行结果存入预设哈希变量。
具体实施时,创建并执行算子对象的实例可以是:
(1-1)设置优先队列变量q,优先队列存放的是算子对象的sequence值;
(1-2)设置哈希变量m,哈希变量m的键值对分别映射到算子的sequence属性和sequence属性对应算子对象的实例的执行结果;其中m使用Object类型来存储算子的执行结果;
(1-3)遍历JSON格式的算子对象,判断是否已经遍历完了JSON格式的算子对象,若已遍历完成,则执行步骤(1-6);否则,取出首个未被处理的算子对象,执行步骤(1-4);
(1-4)获取首个未被处理的算子对象或优先队列中第一个算子对象,遍历该算子对象的fathers属性,若该节点的fathers属性的值为空或者其中的每个值都存在于变量m中,即对于每个sequence:fathers,每个m[sequence]都不为空(即当前算子对象的父节点对应的实例都执行完毕),则表明该算子对象可以直接执行,执行步骤(1-5),否则,将该算子对象的sequence值加入到优先队列变量q中,再次返回步骤(1-3);
(1-5)获取步骤(1-4)中的算子对象的信息,首先,通过JAVA语言的反射机制找到该算子类的名称,根据该算子的父节点列表从哈希变量m中依次取出其父节点的结果数据,根据用户手动输入的输入参数和该算子对象的父节点的执行结果,创建出该算子对象的一个实例。进一步的,执行该算子的execute()方法,得到执行结果,再将执行结果存入变量m中,返回步骤(1-3);
(1-6)若优先队列变量q为空,则执行结束;否则,取出优先队列中的第一个算子对象,执行步骤(1-4)。
具体的,系统设置有泛型编程接口Worker<E>,Worker拥有唯一方法execute,该方法的返回类型为泛型。算子必须使用JAVA语言编写并且实现Worker,算子的功能代码必须置于execute内,execute的返回类型为算子实现Worker时指定的数据类型。
具体实施时,各算子对象的实例均是依次定义在可调用业务流程的入口Main函数中,通过调用该Main函数,即可按照数据流动方式依次执行各算子对象的实例,实现相应的业务功能。本实施例中,通过创建并执行算子对象的实例,并将执行结果存入哈希变量中,能够通过查看哈希变量中该算子对象的父节点的实例执行结果,判断该算子对象的实例是否可以执行。
为清楚地说明本申请提供的面向数据流的大数据处理方法,下面结合一个具体实施例进行说明,包括以下步骤:
(1)获取用户终端上传的用户编写的算子代码(简称算子)及算子代码依赖的jar包,该代码应该被封装成一个jar包;
(2)获取步骤(1)所获取的全部算子,为每个算子生成图形算子;
(3)发送DAG图绘制消息至用户终端,以使用户根据业务流程自由拖拽图形算子组合成DAG图,并为算子图形输入参数;
(4)获取用户终端上传的DAG图和DAG图中各图形算子的输入参数;
(5)对DAG图进行合理性检查,包括检查DAG图中是否存在环,以及检查DAG图中各图形算子的输入参数的完整性和规范性,若DAG图合理,则进入步骤(6),否则,返回步骤(3);
(6)将DAG图转换成JSON格式的算子对象,并设置每个算子对象的name属性、sequence属性、fathers属性和parameter_list属性;
(7)遍历JSON格式的算子对象,结合输入参数,创建表征业务流程的调度入口Main函数;
(8)使用maven工具将整个项目封装成jar包,并将jar包提交到Spark运行,以执行Main函数,使得业务数据依据数据流向依次在算子对象实例之间迭代加工处理后得到最终的业务处理结果。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的面向数据流的大数据处理方法的面向数据流的大数据处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个面向数据流的大数据处理装置实施例中的具体限定可以参见上文中对于面向数据流的大数据处理方法的限定,在此不再赘述。
在一个实施例中,如图5所示,提供了一种面向数据流的大数据处理装置,包括:数据获取模块510、数据转换模块520和数据执行模块530,其中:
数据获取模块510,用于获取用户终端上传的DAG图,图形算子以图形界面的方式呈现,且表征封装有业务逻辑的算子代码,DAG图中图形算子之间的数据流向表征业务流程数据流;
数据转换模块520,用于当DAG图满足预设合理性要求时,将DAG图中的各图形算子对应转换为JSON格式的算子对象,JSON格式的算子对象存放有对应的图形算子的父节点在DAG图中的编号;
数据执行模块530,用于根据JSON格式的算子对象,创建业务流程调度入口函数。
上述面向数据流的大数据处理装置,首先,将表征业务模块的算子以图形算子的形式呈现,实现以图形界面的方式来表述业务功能的执行过程,降低了使用门槛和编程出错的概率,并提升了用户友好度和使用效率,其次,将表征封装有业务逻辑的算子代码的图形算子组合成DAG图,能够使得用户根据业务流程自由拖拽图形算子组合得到携带有业务流程数据流的DAG图,实现将业务流程代码调度顺序映射为DAG图中的数据流向,当用户要修改业务流程时,只需调整DAG图中的图形算子的顺序即可,无需重新编写调用语句,通过将DAG图中的各图形算子对应转换为JSON格式的算子对象,并在算子对象存放有对应的图形算子的父节点在DAG图中的编号,使得图形算子间的数据流向得以保存,最后,根据JSON格式的算子对象,创建业务流程调度入口函数,使得调用该业务流程调度入口函数能够使得业务数据按照业务流程对应的数据流向进行处理,实现了基于DAG图的数据流向完成业务流程的调度。综上所述,采用上述装置能够极大程度上提高面向数据流的大数据处理的效率。
如图6所示,在其中一个实施例中,装置还包括图形算子生成模块540,用于获取用户终端上传的算子jar包,算子jar包包括算子和算子所依赖的静态数据文件,根据预设图形算子生成规则,生成与算子对应的图形算子,发送DAG图绘制消息至用户终端,DAG图绘制消息携带图形算子,图形算子用于供用户根据业务流程进行排列组合得到DAG图。
如图6所示,在其中一个实施例中,装置还包括合理性检查模块550,用于检查DAG图中是否存在环,以及检查DAG图中各图形算子的输入参数的完整性和规范性,当DAG图中不存在环且DAG图中各图形算子的输入参数满足完整性和规范性要求时,判定DAG图满足预设合理性要求,否则,判定DAG图不满足预设合理性要求,发送DAG图重绘消息至用户终端。
在其中一个实施例中,数据转换模块520用于将DAG图中各图形算子对应转换为JSON格式的算子对象,并设置每个算子对象的属性,属性包括名称属性、编号属性、父节点编号属性和参数列表属性。
如图6所示,在其中一个实施例中,装置还包括项目封装执行模块560,用于发送项目封装请求至第三方项目管理应用,接收第三方项目管理应用反馈的可执行jar包,将可执行jar包提交至预设集群运行,以执行业务流程调度入口函数。
在其中一个实施例中,项目封装执行模块560用于依次获取各JSON格式的算子对象的输入参数列表和父节点列表,根据父节点列表从预设哈希变量中依次取出各算子对象的父节点的实例执行结果,预设哈希变量的键值对分别映射到算子对象的编号属性和编号属性对应的算子对象的实例执行结果,根据各算子对象的输入参数和各算子对象父节点的实例执行结果,创建各算子对象的实例,创建业务流程调度入口函数。
上述面向数据流的大数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储图形算子和DAG图数据等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种面向数据流的大数据处理方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在其中一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述面向数据流的大数据处理方法中的步骤。
在其中一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述面向数据流的大数据处理方法中的步骤。
在其中一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述面向数据流的大数据处理方法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种面向数据流的大数据处理方法,其特征在于,所述方法包括:
获取用户终端上传的DAG图,所述图形算子以图形界面的方式呈现,且表征封装有业务逻辑的算子代码,所述DAG图中图形算子之间的数据流向表征业务流程数据流;
当所述DAG图满足预设合理性要求时,将所述DAG图中的各图形算子对应转换为JSON格式的算子对象,所述JSON格式的算子对象存放有对应的图形算子的父节点在所述DAG图中的编号;
根据所述JSON格式的算子对象,创建业务流程调度入口函数。
2.根据权利要求1所述的面向数据流的大数据处理方法,其特征在于,所述获取用户终端上传的DAG图之前,还包括:
获取用户终端上传的算子jar包,所述算子jar包包括算子和算子所依赖的静态数据文件;
根据预设图形算子生成规则,生成与所述算子对应的图形算子;
发送DAG图绘制消息至所述用户终端,所述DAG图绘制消息携带所述图形算子,所述图形算子用于供用户根据业务流程进行排列组合得到DAG图。
3.根据权利要求1所述的面向数据流的大数据处理方法,其特征在于,判断所述DAG图是否满足预设合理性要求包括:
检查所述DAG图中是否存在环,以及检查所述DAG图中各图形算子的输入参数的完整性和规范性;
当所述DAG图中不存在环且所述DAG图中各图形算子的输入参数满足完整性和规范性要求时,判定所述DAG图满足预设合理性要求,否则,判定所述DAG图未通过合理性检查,发送DAG图重绘消息至所述用户终端。
4.根据权利要求1至3任意一项所述的面向数据流的大数据处理方法,其特征在于,所述将所述DAG图中的各图形算子对应转换为JSON格式的算子对象包括:
将所述DAG图中各图形算子对应转换为JSON格式的算子对象,并设置每个算子对象的属性,所述属性包括名称属性、编号属性、父节点编号属性和参数列表属性。
5.根据权利要求1至3任一项所述的面向数据流的大数据处理方法,其特征在于,所述根据所述JSON格式的算子对象,创建业务流程调度入口函数之后,还包括:
发送项目封装请求至第三方项目管理应用;
接收所述第三方项目管理应用反馈的可执行jar包,将所述可执行jar包提交至预设集群运行,以执行所述业务流程调度入口函数。
6.根据权利要求5所述的面向数据流的大数据处理方法,其特征在于,执行所述业务流程调度入口函数包括以下数据处理过程:
依次获取各JSON格式的算子对象的输入参数列表和父节点列表;
根据所述父节点列表从预设哈希变量中依次取出各算子对象的父节点的实例执行结果,所述预设哈希变量的键值对分别映射到算子对象的编号属性和编号属性对应的算子对象的实例执行结果;
根据各算子对象的输入参数和各算子对象父节点的实例执行结果,创建各算子对象的实例;
执行所述各算子对象的实例,得到执行结果,将所述执行结果存入所述预设哈希变量。
7.一种面向数据流的大数据处理装置,其特征在于,所述装置包括:
数据获取模块,用于获取用户终端上传的DAG图,所述图形算子以图形界面的方式呈现,且表征封装有业务逻辑的算子代码,所述DAG图中图形算子之间的数据流向表征业务流程数据流;
数据转换模块,用于当所述DAG图满足预设合理性要求时,将所述DAG图中的各图形算子对应转换为JSON格式的算子对象,所述JSON格式的算子对象存放有对应的图形算子的父节点在所述DAG图中的编号;
数据执行模块,用于根据所述JSON格式的算子对象,创建业务流程调度入口函数。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111427907.2A CN114217785A (zh) | 2021-11-26 | 2021-11-26 | 面向数据流的大数据处理方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111427907.2A CN114217785A (zh) | 2021-11-26 | 2021-11-26 | 面向数据流的大数据处理方法、装置和计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114217785A true CN114217785A (zh) | 2022-03-22 |
Family
ID=80698697
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111427907.2A Pending CN114217785A (zh) | 2021-11-26 | 2021-11-26 | 面向数据流的大数据处理方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114217785A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116151381A (zh) * | 2023-02-20 | 2023-05-23 | 北京百度网讯科技有限公司 | 量子电路处理方法、装置及电子设备 |
CN118377555A (zh) * | 2024-06-21 | 2024-07-23 | 山东捷瑞数字科技股份有限公司 | 人工智能模型的构建方法、装置、设备及可读存储介质 |
-
2021
- 2021-11-26 CN CN202111427907.2A patent/CN114217785A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116151381A (zh) * | 2023-02-20 | 2023-05-23 | 北京百度网讯科技有限公司 | 量子电路处理方法、装置及电子设备 |
CN116151381B (zh) * | 2023-02-20 | 2023-09-15 | 北京百度网讯科技有限公司 | 量子电路处理方法、装置及电子设备 |
CN118377555A (zh) * | 2024-06-21 | 2024-07-23 | 山东捷瑞数字科技股份有限公司 | 人工智能模型的构建方法、装置、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11669503B2 (en) | Building and managing data-processing attributes for modeled data sources | |
US20220147326A1 (en) | Automated api code generation | |
CN114217785A (zh) | 面向数据流的大数据处理方法、装置和计算机设备 | |
US10185558B2 (en) | Language-independent program composition using containers | |
CN113238740B (zh) | 代码生成方法、代码生成装置、存储介质及电子设备 | |
WO2021137767A1 (en) | Method and apparatus for constructing device model of iot device, and storage medium | |
US20130036143A1 (en) | Method and Device for Data Storage | |
CN112860247B (zh) | 一种模型组件的自定义生成方法、装置、设备及介质 | |
CN113177034A (zh) | 一种跨平台统一的分布式图数据处理方法 | |
CN113986424A (zh) | 一种页面显示方法及装置 | |
CN112187713B (zh) | 报文转换的方法、装置、计算机设备和存储介质 | |
CN110109983B (zh) | 一种操作Redis数据库的方法和装置 | |
CN111736835A (zh) | 一种表单处理的方法、装置及存储介质 | |
CN115982491A (zh) | 页面更新方法及装置、电子设备和计算机可读存储介质 | |
US10860297B2 (en) | Methods for efficiently managing data analytics using complex dependency pipelines and devices thereof | |
US8775555B2 (en) | Rest interface interaction with expectation management | |
EP2395468A1 (en) | Semantic user interface data assembling | |
CN115567526B (zh) | 数据监控方法、装置、设备及介质 | |
CN115756483A (zh) | 编译方法、装置、计算机设备和存储介质 | |
CN107451167B (zh) | 站内点击位的点击数据获取方法、装置和系统 | |
CN117149153A (zh) | 业务数据模型的生成方法、装置、计算机设备以及介质 | |
US20230418822A1 (en) | Method and system for configurable data analytics platform | |
CN118466971B (zh) | 打包优化方法、界面生成方法、设备及存储介质 | |
CN117112500B (zh) | 一种资源管理方法、装置、设备和存储介质 | |
US8688857B1 (en) | Filtering messages based on pruning profile generated from pruning profile schema |
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 |