数据处理方法、装置、电子设备、介质及产品与流程



1.本技术涉及数据处理领域,尤其涉及一种数据处理方法、装置、电子设备、介质及产品。


背景技术:



2.目前,使用大数据技术栈对数据进行加工和计算,能够满足各个领域用户对数据的处理需求。不同的领域的不同用户的数据场景不同,例如,数据场景可以为产能数据、设备工作效率数据以及原材料利用率等,需要针对不同的数据场景定义不同的规则引擎,通过不同的规则引擎处理对应的数据。
3.在实际应用中,用户的需求在不断变动,数据场景也在不断迭代。相应的,定义的规则引擎的数量也在不断增加。不同的规则引擎之间不能共用,因此在数据处理时每次数据场景更换都需要更换对应的规则引擎,导致数据处理效率低下,影响用户体验。


技术实现要素:



4.本技术提供一种数据处理方法、装置、电子设备、介质及产品,用于提高数据处理效率。
5.第一方面,本技术提供一种数据处理方法,包括:根据用户定义的业务规则以及源数据,生成规则模型文件;所述规则模型文件定义有多个模型节点以及多个计算引擎;针对所述多个模型节点,生成有向无环图,并根据所述规则模型文件,解析出所述多个模型节点对应的规则代码;遍历所述有向无环图中的所述多个模型节点,并针对当前遍历的模型节点,基于所述模型节点对应的源数据,调用所述模型节点对应的计算引擎执行所述模型节点对应的规则代码,直至遍历完所有模型节点,得到数据处理结果。
6.在一种可能的实施方式中,所述规则模型文件包括有向无环图依赖定义;所述针对所述多个模型节点,生成有向无环图,包括:根据所述业务规则中的所述有向无环图依赖定义,生成所述多个模型节点的有向无环图;其中,所述有向无环图依赖定义用于定义所述多个模型节点之间的依赖关系和依赖类型,所述依赖类型包括继续执行和结束执行。
7.在一种可能的实施方式中,所述规则模型文件包括模型节点的模型节点定义,所述模型节点的模型节点定义包括用于定义所述模型节点的节点类型的第一字段和用于定义所述模型节点对应的规则代码的第二字段;所述根据所述规则模型文件,解析出所述多个模型节点对应的规则代码,包括:根据所述业务规则中所述模型节点定义中的第一字段,确定每个模型节点的节点类型;若所述模型节点的节点类型为结构化查询语言类型,则对所述模型节点对应的所述第二字段中结构化查询语言格式的内置函数代码进行解析,获得所述模型节点对应的规则代码;若所述模型节点的节点类型为自定义类型,则读取所述第二字段中用户自定义的非结构化查询语言格式的代码,获得所述模型节点对应的规则代码。
8.在一种可能的实施方式中,所述规则模型文件还包括用户自定义函数定义,所述
用户自定义函数定义用于定义用户自定义的结构化查询语言格式的非内置函数代码;所述若所述模型节点的节点类型为结构化查询语言类型,则对所述模型节点对应的所述第二字段中结构化查询语言格式的内置函数代码进行解析,包括:若所述模型节点的节点类型为结构化查询语言类型,且所述模型节点对应的所述用户自定义函数定义为空值,则对所述模型节点对应的所述第二字段中结构化查询语言格式的内置函数代码进行解析。
9.在一种可能的实施方式中,所述方法还包括:若所述模型节点的节点类型为结构化查询语言类型,且所述模型节点对应的所述用户自定义函数定义不为空值,则根据所述用户自定义函数定义生成用户自定义函数;并从所述用户自定义函数中解析出代码合并至所述规则代码。
10.在一种可能的实施方式中,所述遍历所述有向无环图中的所述多个模型节点,包括:按照模型节点入度由小至大的顺序,将所述有向无环图中每个入度下的模型节点作为当前遍历的模型节点。
11.在一种可能的实施方式中,所述规则模型文件包括计算引擎定义;所述针对当前遍历的模型节点,基于所述模型节点对应的源数据,调用所述模型节点对应的计算引擎执行所述模型节点对应的规则代码,包括:根据当前遍历的模型节点对应的计算引擎定义,确定所述模型节点对应的计算引擎;其中,所述计算引擎定义包含用户为模型节点指定的计算引擎,所述计算引擎包括大数据引擎和/或数据库引擎;基于所述模型节点对应的源数据,调用所述模型节点对应的计算引擎执行所述模型节点对应的规则代码。
12.在一种可能的实施方式中,所述规则模型文件包括分布式锁定义;所述方法还包括:根据当前遍历的模型节点对应的分布式锁定义,确定所述模型节点对应的目标分布式锁;其中,所述分布式锁定义包含用户为模型节点指定的分布式锁;通过所述目标分布式锁锁定当前遍历的模型节点对应的源数据,直至所述模型节点对应的计算引擎执行完成所述模型节点对应的规则代码。
13.第二方面,本技术提供一种数据处理装置,包括:生成模块,用于根据用户定义的业务规则以及源数据,生成规则模型文件;所述规则模型文件定义有多个模型节点以及多个计算引擎;解析模块,用于针对所述多个模型节点,生成有向无环图,并根据所述规则模型文件,解析出所述多个模型节点对应的规则代码;处理模块,用于遍历所述有向无环图中的所述多个模型节点,并针对当前遍历的模型节点,基于所述模型节点对应的源数据,调用所述模型节点对应的计算引擎执行所述模型节点对应的规则代码,直至遍历完所有模型节点,得到数据处理结果。
14.在一种可能的实施方式中,所述规则模型文件包括有向无环图依赖定义;所述解析模块,具体用于根据所述业务规则中的所述有向无环图依赖定义,生成所述多个模型节点的有向无环图;其中,所述有向无环图依赖定义用于定义所述多个模型节点之间的依赖关系和依赖类型,所述依赖类型包括继续执行和结束执行。
15.在一种可能的实施方式中,所述规则模型文件包括模型节点的模型节点定义,所述模型节点的模型节点定义包括用于定义所述模型节点的节点类型的第一字段和用于定义所述模型节点对应的规则代码的第二字段;所述解析模块,具体用于根据所述业务规则中所述模型节点定义中的第一字段,确定每个模型节点的节点类型;所述解析模块,具体还用于若所述模型节点的节点类型为结构化查询语言类型,则对所述模型节点对应的所述第
二字段中结构化查询语言格式的内置函数代码进行解析,获得所述模型节点对应的规则代码;所述解析模块,具体还用于若所述模型节点的节点类型为自定义类型,则读取所述第二字段中用户自定义的非结构化查询语言格式的代码,获得所述模型节点对应的规则代码。
16.在一种可能的实施方式中,所述规则模型文件还包括用户自定义函数定义,所述用户自定义函数定义用于定义用户自定义的结构化查询语言格式的非内置函数代码;所述解析模块,具体还用于若所述模型节点的节点类型为结构化查询语言类型,且所述模型节点对应的所述用户自定义函数定义为空值,则对所述模型节点对应的所述第二字段中结构化查询语言格式的内置函数代码进行解析。
17.在一种可能的实施方式中,所述装置还包括:合并模块,用于若所述模型节点的节点类型为结构化查询语言类型,且所述模型节点对应的所述用户自定义函数定义不为空值,则根据所述用户自定义函数定义生成用户自定义函数;并从所述用户自定义函数中解析出代码合并至所述规则代码。
18.在一种可能的实施方式中,所述装置还包括:遍历模块,用于按照模型节点入度由小至大的顺序,将所述有向无环图中每个入度下的模型节点作为当前遍历的模型节点。
19.在一种可能的实施方式中,所述规则模型文件包括计算引擎定义;所述处理模块,具体用于根据当前遍历的模型节点对应的计算引擎定义,确定所述模型节点对应的计算引擎;其中,所述计算引擎定义包含用户为模型节点指定的计算引擎,所述计算引擎包括大数据引擎和/或数据库引擎;所述处理模块,具体还用于基于所述模型节点对应的源数据,调用所述模型节点对应的计算引擎执行所述模型节点对应的规则代码。
20.在一种可能的实施方式中,所述规则模型文件包括分布式锁定义;所述装置还包括:定义模块,用于根据当前遍历的模型节点对应的分布式锁定义,确定所述模型节点对应的目标分布式锁;其中,所述分布式锁定义包含用户为模型节点指定的分布式锁;所述定义模块,还用于通过所述目标分布式锁锁定当前遍历的模型节点对应的源数据,直至所述模型节点对应的计算引擎执行完成所述模型节点对应的规则代码。
21.第三方面,本技术提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;所述存储器存储计算机执行指令;所述处理器执行所述存储器存储的计算机执行指令,以实现第一方面中任一项所述的方法。
22.第四方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行如第一方面中任一项所述的方法。
23.第五方面,本技术提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行如第一方面中任一项所述的方法。
24.本技术提供的数据处理方法、装置、电子设备、介质及产品,所述方法包括:根据用户定义的业务规则以及源数据,生成规则模型文件;所述规则模型文件定义有多个模型节点以及多个计算引擎;针对所述多个模型节点,生成有向无环图,并根据所述规则模型文件,解析出所述多个模型节点对应的规则代码;遍历所述有向无环图中的所述多个模型节点,并针对当前遍历的模型节点,基于所述模型节点对应的源数据,调用所述模型节点对应的计算引擎执行所述模型节点对应的规则代码,直至遍历完所有模型节点,得到数据处理结果。以上方案,通过有向无环图对模型节点统一管理,每个节点有对应的计算引擎,多个
模型节点可以同时进行数据处理,从而提高数据处理效率。
附图说明
25.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
26.图1为本技术实施例提供的一种数据处理方法的应用场景示意图;
27.图2为本技术实施例一提供的一种数据处理方法的流程示意图;
28.图3为本技术实施例提供的有向无环图依赖定义示例;
29.图4为本技术实施例提供的有向无环图示例;
30.图5为本技术实施例提供的解析规则代码示例;
31.图6为本技术实施例二提供的一种数据处理装置的结构示例图;
32.图7为本技术实施例三提供的一种数据处理装置的装置框图;
33.图8为本技术实施例四中提供的一种电子设备的结构示意图。
34.通过上述附图,已示出本技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本技术构思的范围,而是通过参考特定实施例为本领域技术人员说明本技术的概念。
具体实施方式
35.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
36.首先对涉及的名词进行解释:
37.计算引擎:用于处理数据的软件框架,包括大数据类型以及关系型数据库类型;
38.结构化查询语言(structured query language,简称sql):一种计算机语言,用来存储、检索和修改关系型数据库中存储的数据。
39.有向无环图:在数据结构中的一个无回路的有向图。
40.图1为本技术实施例提供的一种数据处理方法的应用场景示意图,结合图示的场景进行举例:将模型节点进行统一管理生成有向无环图,有向无环图包括模型节点1、模型节点2以及模型节点3,每个模型节点有对应的计算引擎。模型节点1、模型节点2以及模型节点3可以同时分别通过各自对应的计算引擎进行数据处理。相比于每个模型节点依次进行数据处理,可以提高数据处理效率。
41.下面以具体的实施例对本技术的技术方案以及本技术的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。在本技术的描述中,除非另有明确的规定和限定,各术语应在本领域内做广义理解。下面将结合附图,对本技术的实施例进行描述。
42.实施例一
43.图2为本技术实施例一提供的一种数据处理方法的流程示意图,该方法包括以下步骤:
44.s201、根据用户定义的业务规则以及源数据,生成规则模型文件;所述规则模型文件定义有多个模型节点以及多个计算引擎;
45.s202、针对所述多个模型节点,生成有向无环图,并根据所述规则模型文件,解析出所述多个模型节点对应的规则代码;
46.s203、遍历所述有向无环图中的所述多个模型节点,并针对当前遍历的模型节点,基于所述模型节点对应的源数据,调用所述模型节点对应的计算引擎执行所述模型节点对应的规则代码,直至遍历完所有模型节点,得到数据处理结果。
47.作为示例,该实施例的执行主体可以为数据处理装置,该数据处理装置的实现有多种。例如,可以为程序软件,也可以为存储有相关计算机程序的介质,例如,u盘等;或者,该装置还可以为集成或安装有相关计算机程序的实体设备,例如,芯片、智能终端、电脑、服务器等。
48.在一个示例中,规则模型文件包括有向无环图依赖定义;s202包括:根据所述业务规则中的所述有向无环图依赖定义,生成所述多个模型节点的有向无环图;其中,所述有向无环图依赖定义用于定义所述多个模型节点之间的依赖关系和依赖类型,所述依赖类型包括继续执行和结束执行。
49.作为一种可实施方式,如图3所示,图3为有向无环图依赖定义示例。有向无环图依赖定义的开始节点和结束节点为内置的虚拟节点,分别表示有向无环图的开始和结束。依赖类型的1表示继续执行,依赖类型的0表示结束执行。依赖节点表示当前节点的上游节点。举例来说,模型节点4的数据处理需要在执行完模型节点3的数据处理之后进行。
50.在有向无环图依赖定义的基础上,如图4所示,图4为有向无环图示例。根据有向无环图依赖定义,生成有向无环图。举例来说,模型节点3执行结束后执行模型节点4,模型节点1、模型节点2以及模型节点4执行结束后进入结束节点。
51.基于以上实施方式,根据有向无环图依赖定义,生成的有向无环图可以体现用户对模型节点执行顺序的定义。
52.在一个示例中,规则模型文件包括模型节点的模型节点定义,所述模型节点的模型节点定义包括用于定义所述模型节点的节点类型的第一字段和用于定义所述模型节点对应的规则代码的第二字段;s202包括:根据所述业务规则中所述模型节点定义中的第一字段,确定每个模型节点的节点类型;若所述模型节点的节点类型为结构化查询语言类型,则对所述模型节点对应的所述第二字段中结构化查询语言格式的内置函数代码进行解析,获得所述模型节点对应的规则代码;若所述模型节点的节点类型为自定义类型,则读取所述第二字段中用户自定义的非结构化查询语言格式的代码,获得所述模型节点对应的规则代码。
53.作为一种可实施方式,若用户使用结构化查询语言类型代码定义业务规则,则模型文件的第一字段显示模型节点的类型为结构化查询语言类型。若用户使用非结构化查询语言类型的代码,例如java、scala、python以及shell等编程语言来编写业务规则,则模型文件的第一字段显示模型节点的类型为对应的编程语言类类型。其中非结构化查询语言类型的代码可以直接运行,因此不需要解析。
54.需要说明的是,本技术不限制具体的编程语言类型。
55.基于以上实施方式,通过设置模型节点的不同节点类型,可以适用于用户多种类
型的编程语言。
56.进一步的,在一个示例中,规则模型文件还包括用户自定义函数定义,所述用户自定义函数定义用于定义用户自定义的结构化查询语言格式的非内置函数代码;若所述模型节点的节点类型为结构化查询语言类型,则对所述模型节点对应的所述第二字段中结构化查询语言格式的内置函数代码进行解析,包括:若所述模型节点的节点类型为结构化查询语言类型,且所述模型节点对应的所述用户自定义函数定义为空值,则对所述模型节点对应的所述第二字段中结构化查询语言格式的内置函数代码进行解析。
57.结合场景示例来说,若结构化查询语言格式的内置函数不能满足用户的业务需求,用户可以使用结构化查询语言格式编写自定义函数,自定义函数同样可以实现数据的处理。
58.基于以上实施方式,通过自定义函数定义,可以更全面实现用户的数据处理需求。
59.另一方面,在另一个示例中,若所述模型节点的节点类型为结构化查询语言类型,且所述模型节点对应的所述用户自定义函数定义不为空值,则根据所述用户自定义函数定义生成用户自定义函数;并从所述用户自定义函数中解析出代码合并至所述规则代码。
60.结合上述示例,作为一种可实施方式,如图5所示,图5为解析规则代码示例。若模型节点对应的用户自定义函数定义不为空值,说明用户除了使用结构化查询语言类型的内置函数编写代码之外,还使用结构化查询语言类型的非内置函数进行自定义编写代码,则根据用户自定义函数定义生成用户自定义函数,并从所述用户自定义函数中解析出代码合并至所述规则代码,可以理解,合并后的规则代码包含用户定义的完整的数据处理规则。
61.基于以上实施方式,将自定义函数中解析出的代码合并至规则代码,从而通过完整的规则代码进行数据处理,保证数据处理的准确性。
62.在一个示例中,s203包括:按照模型节点入度由小至大的顺序,将所述有向无环图中每个入度下的模型节点作为当前遍历的模型节点。
63.作为一种可实施方式,如图4所示,模型节点1、模型节点2以及模型节点3为相同入度,可以同时作为当前遍历的模型节点。而模型节点4的入度大于模型节点3,模型节点4的遍历需要在完成模型节点3的遍历之后进行。可以理解,相同入度的模型节点同时遍历,可以提高数据处理的效率。
64.基于以上实施方式,按照模型节点入度对模型节点进行遍历,可以提高数据处理的效率并且符合用户设置的模型节点执行顺序逻辑。
65.在一个示例中,规则模型文件包括控制参数定义;s203包括:遍历所述有向无环图中的每个模型节点对应的控制参数定义;若控制参数定义为允许执行,则对当前模型节点执行规则代码;若控制参数定义为不允许执行,则对跳过模型节点。
66.结合场景示例来说,可以相同类型的业务设置业务规则的通用模板,由用户来定义控制参数定义,用户根据实际需求对通用模板中的模型节点定义控制参数定义,从而确定通用模板中的模型节点是否执行,对于同类型业务能快速完整业务规则定义。
67.基于以上实施方式,通过控制参数定义,相比于用户每次都重新定义业务规则,可以提高效率以及降低开发难度
68.在一个示例中,规则模型文件包括计算引擎定义;s203包括:根据当前遍历的模型节点对应的计算引擎定义,确定所述模型节点对应的计算引擎;其中,所述计算引擎定义包
含用户为模型节点指定的计算引擎,所述计算引擎包括大数据引擎和/或数据库引擎;基于所述模型节点对应的源数据,调用所述模型节点对应的计算引擎执行所述模型节点对应的规则代码。
69.作为一种可实施方式,大数据引擎包括spark以及hive等,数据库引擎包括mysql以及oracle等。用户可以根据实际应用的场景来定义计算引擎定义。
70.作为一种示例,通过认证类型定义实现计算引擎的认证,若认证通过则通过计算引擎执行规则代码。对于大数据引擎,认证类型为网络授权协议定义;对于数据库引擎,认证类型为密码定义。可以理解,通过认证类型可以提高数据处理的安全性,防止非正常渠道的数据处理。
71.基于以上实施方式,通过多种类型的数据引擎,可以满足用户多种业务场景的数据处理需求。
72.在一个示例中,规则模型文件包括分布式锁定义;数据处理方法还包括:根据当前遍历的模型节点对应的分布式锁定义,确定所述模型节点对应的目标分布式锁;其中,所述分布式锁定义包含用户为模型节点指定的分布式锁;通过所述目标分布式锁锁定当前遍历的模型节点对应的源数据,直至所述模型节点对应的计算引擎执行完成所述模型节点对应的规则代码。
73.作为一种可实施方式,计算引擎执行规则代码时会实例化源数据,分布式锁用于各个模型节点执行实例时对共享数据设置访问权限,举例来说,当实例a正在更新共享数据是,其他实例就只能等待,直至实例a更新完成共享示例或者超过预设的时间限制。分布式锁可以分为读锁和写锁,读锁之间不互斥但和写锁互斥可以有多个,写锁与其他锁都互斥只能有一把。
74.基于以上实施方式,通过分布式锁定义可以防止计算引擎执行规则代码时修改共享数据出现冲突,保证执行规则代码的成功率。
75.本实施例提供的数据处理方法中,根据用户定义的业务规则以及源数据,生成规则模型文件;所述规则模型文件定义有多个模型节点以及多个计算引擎;针对所述多个模型节点,生成有向无环图,并根据所述规则模型文件,解析出所述多个模型节点对应的规则代码;遍历所述有向无环图中的所述多个模型节点,并针对当前遍历的模型节点,基于所述模型节点对应的源数据,调用所述模型节点对应的计算引擎执行所述模型节点对应的规则代码,直至遍历完所有模型节点,得到数据处理结果。以上方案,通过有向无环图对模型节点统一管理,每个节点有对应的计算引擎,多个模型节点可以同时进行数据处理,从而提高数据处理效率。
76.实施例二
77.图6为本技术实施例二提供的一种数据处理装置的结构示意图,如图6所示,所述数据处理装置包括:
78.生成模块61,用于根据用户定义的业务规则以及源数据,生成规则模型文件;所述规则模型文件定义有多个模型节点以及多个计算引擎;
79.解析模块62,用于针对所述多个模型节点,生成有向无环图,并根据所述规则模型文件,解析出所述多个模型节点对应的规则代码;
80.处理模块63,用于遍历所述有向无环图中的所述多个模型节点,并针对当前遍历
的模型节点,基于所述模型节点对应的源数据,调用所述模型节点对应的计算引擎执行所述模型节点对应的规则代码,直至遍历完所有模型节点,得到数据处理结果。
81.在一个示例中,规则模型文件包括有向无环图依赖定义;解析模块62,具体用于根据所述业务规则中的所述有向无环图依赖定义,生成所述多个模型节点的有向无环图;其中,所述有向无环图依赖定义用于定义所述多个模型节点之间的依赖关系和依赖类型,所述依赖类型包括继续执行和结束执行。
82.作为一种可实施方式,如图3所示,图3为有向无环图依赖定义示例。有向无环图依赖定义的开始节点和结束节点为内置的虚拟节点,分别表示有向无环图的开始和结束。依赖类型的1表示继续执行,依赖类型的0表示结束执行。依赖节点表示当前节点的上游节点。举例来说,模型节点4的数据处理需要在执行完模型节点3的数据处理之后进行。
83.在有向无环图依赖定义的基础上,如图4所示,图4为有向无环图示例。根据有向无环图依赖定义,生成有向无环图。举例来说,模型节点3执行结束后执行模型节点4,模型节点1、模型节点2以及模型节点4执行结束后进入结束节点。
84.基于以上实施方式,根据有向无环图依赖定义,生成的有向无环图可以体现用户对模型节点执行顺序的定义。
85.在一个示例中,规则模型文件包括模型节点的模型节点定义,所述模型节点的模型节点定义包括用于定义所述模型节点的节点类型的第一字段和用于定义所述模型节点对应的规则代码的第二字段;解析模块62,具体用于根据所述业务规则中所述模型节点定义中的第一字段,确定每个模型节点的节点类型;解析模块62,具体还用于若所述模型节点的节点类型为结构化查询语言类型,则对所述模型节点对应的所述第二字段中结构化查询语言格式的内置函数代码进行解析,获得所述模型节点对应的规则代码;解析模块62,具体还用于若所述模型节点的节点类型为自定义类型,则读取所述第二字段中用户自定义的非结构化查询语言格式的代码,获得所述模型节点对应的规则代码。
86.作为一种可实施方式,若用户使用结构化查询语言类型代码定义业务规则,则模型文件的第一字段显示模型节点的类型为结构化查询语言类型。若用户使用非结构化查询语言类型的代码,例如java、scala、python以及shell等编程语言来编写业务规则,则模型文件的第一字段显示模型节点的类型为对应的编程语言类类型。其中非结构化查询语言类型的代码可以直接运行,因此不需要解析。
87.需要说明的是,本技术不限制具体的编程语言类型。
88.基于以上实施方式,通过设置模型节点的不同节点类型,可以适用于用户多种类型的编程语言。
89.进一步的,在一个示例中,规则模型文件还包括用户自定义函数定义,所述用户自定义函数定义用于定义用户自定义的结构化查询语言格式的非内置函数代码;解析模块,具体还用于若所述模型节点的节点类型为结构化查询语言类型,则对所述模型节点对应的所述第二字段中结构化查询语言格式的内置函数代码进行解析,包括:若所述模型节点的节点类型为结构化查询语言类型,且所述模型节点对应的所述用户自定义函数定义为空值,则对所述模型节点对应的所述第二字段中结构化查询语言格式的内置函数代码进行解析。
90.结合场景示例来说,若结构化查询语言格式的内置函数不能满足用户的业务需
求,用户可以使用结构化查询语言格式编写自定义函数,自定义函数同样可以实现数据的处理。
91.基于以上实施方式,通过自定义函数定义,可以更全面实现用户的数据处理需求。
92.另一方面,在另一个示例中,数据处理装置还包括:合并模块64,用于若所述模型节点的节点类型为结构化查询语言类型,且所述模型节点对应的所述用户自定义函数定义不为空值,则根据所述用户自定义函数定义生成用户自定义函数;并从所述用户自定义函数中解析出代码合并至所述规则代码。
93.结合上述示例,作为一种可实施方式,如图5所示,图5为解析规则代码示例。若模型节点对应的用户自定义函数定义不为空值,说明用户除了使用结构化查询语言类型的内置函数编写代码之外,还使用结构化查询语言类型的非内置函数进行自定义编写代码,则根据用户自定义函数定义生成用户自定义函数,并从所述用户自定义函数中解析出代码合并至所述规则代码,可以理解,合并后的规则代码包含用户定义的完整的数据处理规则。
94.基于以上实施方式,将自定义函数中解析出的代码合并至规则代码,从而通过完整的规则代码进行数据处理,保证数据处理的准确性。
95.在一个示例中,数据处理还包括:遍历模块65,用于按照模型节点入度由小至大的顺序,将所述有向无环图中每个入度下的模型节点作为当前遍历的模型节点。
96.作为一种可实施方式,如图4所示,模型节点1、模型节点2以及模型节点3为相同入度,可以同时作为当前遍历的模型节点。而模型节点4的入度大于模型节点3,模型节点4的遍历需要在完成模型节点3的遍历之后进行。可以理解,相同入度的模型节点同时遍历,可以提高数据处理的效率。
97.基于以上实施方式,按照模型节点入度对模型节点进行遍历,可以提高数据处理的效率并且符合用户设置的模型节点执行顺序逻辑。
98.在一个示例中,规则模型文件包括控制参数定义;处理模块63还用于遍历所述有向无环图中的每个模型节点对应的控制参数定义;若控制参数定义为允许执行,则对当前模型节点执行规则代码;若控制参数定义为不允许执行,则对跳过模型节点。
99.结合场景示例来说,可以相同类型的业务设置业务规则的通用模板,由用户来定义控制参数定义,用户根据实际需求对通用模板中的模型节点定义控制参数定义,从而确定通用模板中的模型节点是否执行,对于同类型业务能快速完整业务规则定义。
100.基于以上实施方式,通过控制参数定义,相比于用户每次都重新定义业务规则,可以提高效率以及降低开发难度
101.在一个示例中,规则模型文件包括计算引擎定义;处理模块63,具体用于根据当前遍历的模型节点对应的计算引擎定义,确定所述模型节点对应的计算引擎;其中,所述计算引擎定义包含用户为模型节点指定的计算引擎,所述计算引擎包括大数据引擎和/或数据库引擎;处理模块63,具体还用于基于所述模型节点对应的源数据,调用所述模型节点对应的计算引擎执行所述模型节点对应的规则代码。
102.作为一种可实施方式,大数据引擎包括spark以及hive等,数据库引擎包括mysql以及oracle等。用户可以根据实际应用的场景来定义计算引擎定义。
103.作为一种示例,通过认证类型定义实现计算引擎的认证,若认证通过则通过计算引擎执行规则代码。对于大数据引擎,认证类型为网络授权协议定义;对于数据库引擎,认
证类型为密码定义。可以理解,通过认证类型可以提高数据处理的安全性,防止非正常渠道的数据处理。
104.基于以上实施方式,通过多种类型的数据引擎,可以满足用户多种业务场景的数据处理需求。
105.在一个示例中,规则模型文件包括分布式锁定义;数据处理装置还包括:定义模块66,用于根据当前遍历的模型节点对应的分布式锁定义,确定所述模型节点对应的目标分布式锁;其中,所述分布式锁定义包含用户为模型节点指定的分布式锁;定义模块66,还用于通过所述目标分布式锁锁定当前遍历的模型节点对应的源数据,直至所述模型节点对应的计算引擎执行完成所述模型节点对应的规则代码。
106.作为一种可实施方式,计算引擎执行规则代码时会实例化源数据,分布式锁用于各个模型节点执行实例时对共享数据设置访问权限,举例来说,当实例a正在更新共享数据是,其他实例就只能等待,直至实例a更新完成共享示例或者超过预设的时间限制。分布式锁可以分为读锁和写锁,读锁之间不互斥但和写锁互斥可以有多个,写锁与其他锁都互斥只能有一把。
107.基于以上实施方式,通过分布式锁定义可以防止计算引擎执行规则代码时修改共享数据出现冲突,保证执行规则代码的成功率。
108.本实施例提供的数据处理装置中,生成模块,用于根据用户定义的业务规则以及源数据,生成规则模型文件;所述规则模型文件定义有多个模型节点以及多个计算引擎;解析模块,用于针对所述多个模型节点,生成有向无环图,并根据所述规则模型文件,解析出所述多个模型节点对应的规则代码;处理模块,用于遍历所述有向无环图中的所述多个模型节点,并针对当前遍历的模型节点,基于所述模型节点对应的源数据,调用所述模型节点对应的计算引擎执行所述模型节点对应的规则代码,直至遍历完所有模型节点,得到数据处理结果。以上方案,通过有向无环图对模型节点统一管理,每个节点有对应的计算引擎,多个模型节点可以同时进行数据处理,从而提高数据处理效率。
109.实施例三
110.图7是根据一示例性实施例示出的一种数据处理装置的装置框图,该装置可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
111.装置800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出接口812,传感器组件814,以及通信组件816。
112.处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
113.存储器804被配置为存储各种类型的数据以支持在装置800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(static random-access memory,简称sram),电可擦除可
编程只读存储器(electrically erasable programmable read-only memory,简称eeprom),可擦除可编程只读存储器(erasable programmable read-only memory,简称eprom),可编程只读存储器(programmable read-only memory,简称prom),只读存储器(read-only memory,简称rom),磁存储器,快闪存储器,磁盘或光盘。
114.电源组件806为装置800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
115.多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(liquid crystal display,简称lcd)和触摸面板(touch panel,简称tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当装置800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
116.音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(microphone,简称mic),当装置800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
117.输入/输出接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
118.传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到装置800的打开/关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如互补金属氧化物半导体(complementary metal oxide semiconductor,简称cmos)图像传感器或电荷耦合元件(charge-coupled device,简称ccd),用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
119.通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如wifi,第二代移动通信技术(2nd-generation communication technology,简称2g),第三代移动通信技术(3rd-generation communication technology,简称3g),第四代移动通信技术(4th-generation communication technology,简称4g)或第五代移动通信技术(5th-generation communication technology,简称5g)或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施
例中,所述通信组件816还包括近场通信(near field communication,简称nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(radio frequency identification,简称rfid)技术,红外数据协会(infrared data association,简称irda)技术,超宽带(ultra wide band,简称uwb)技术,蓝牙(bluetooth,简称bt)技术和其他技术来实现。
120.在示例性实施例中,装置800可以被一个或多个应用专用集成电路(application specific integrated circuit,简称asic)、数字信号处理器(digital signal process,简称dsp)、数字信号处理设备(digital signal process device,简称dspd)、可编程逻辑器件(programmable logic device,简称pld)、现场可编程门阵列(field programmable gate array,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
121.在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(random access memory,简称ram)、cd-rom、磁带、软盘和光数据存储设备等。
122.实施例四
123.图8为本技术实施例中提供的一种电子设备的结构示意图,如图8所示,该电子设备包括:
124.处理器(processor)291,电子设备还包括了存储器(memory)292;还可以包括通信接口(communication interface)293和总线294。其中,处理器291、存储器292、通信接口293、可以通过总线294完成相互间的通信。通信接口293可以用于信息传输。处理器291可以调用存储器292中的逻辑指令,以执行上述实施例的方法。
125.此外,上述的存储器292中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
126.存储器292作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本技术实施例中的方法对应的程序指令/模块。处理器291通过运行存储在存储器292中的软件程序、指令以及模块,从而执行功能应用以及数据处理,即实现上述方法实施例中的方法。
127.存储器292可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器292可以包括高速随机存取存储器,还可以包括非易失性存储器。
128.本技术实施例提供一种非临时性计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如前述实施例所述的方法。
129.本技术实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如前述实施例所述的方法。
130.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由下面的
权利要求书指出。
131.应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求书来限制。

技术特征:


1.一种数据处理方法,其特征在于,包括:根据用户定义的业务规则以及源数据,生成规则模型文件;所述规则模型文件定义有多个模型节点以及多个计算引擎;针对所述多个模型节点,生成有向无环图,并根据所述规则模型文件,解析出所述多个模型节点对应的规则代码;遍历所述有向无环图中的所述多个模型节点,并针对当前遍历的模型节点,基于所述模型节点对应的源数据,调用所述模型节点对应的计算引擎执行所述模型节点对应的规则代码,直至遍历完所有模型节点,得到数据处理结果。2.根据权利要求1所述的方法,其特征在于,所述规则模型文件包括有向无环图依赖定义;所述针对所述多个模型节点,生成有向无环图,包括:根据所述业务规则中的所述有向无环图依赖定义,生成所述多个模型节点的有向无环图;其中,所述有向无环图依赖定义用于定义所述多个模型节点之间的依赖关系和依赖类型,所述依赖类型包括继续执行和结束执行。3.根据权利要求1所述的方法,其特征在于,所述规则模型文件包括模型节点的模型节点定义,所述模型节点的模型节点定义包括用于定义所述模型节点的节点类型的第一字段和用于定义所述模型节点对应的规则代码的第二字段;所述根据所述规则模型文件,解析出所述多个模型节点对应的规则代码,包括:根据所述业务规则中所述模型节点定义中的第一字段,确定每个模型节点的节点类型;若所述模型节点的节点类型为结构化查询语言类型,则对所述模型节点对应的所述第二字段中结构化查询语言格式的内置函数代码进行解析,获得所述模型节点对应的规则代码;若所述模型节点的节点类型为自定义类型,则读取所述第二字段中用户自定义的非结构化查询语言格式的代码,获得所述模型节点对应的规则代码。4.根据权利要求3所述的方法,其特征在于,所述规则模型文件还包括用户自定义函数定义,所述用户自定义函数定义用于定义用户自定义的结构化查询语言格式的非内置函数代码;所述若所述模型节点的节点类型为结构化查询语言类型,则对所述模型节点对应的所述第二字段中结构化查询语言格式的内置函数代码进行解析,包括:若所述模型节点的节点类型为结构化查询语言类型,且所述模型节点对应的所述用户自定义函数定义为空值,则对所述模型节点对应的所述第二字段中结构化查询语言格式的内置函数代码进行解析。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:若所述模型节点的节点类型为结构化查询语言类型,且所述模型节点对应的所述用户自定义函数定义不为空值,则根据所述用户自定义函数定义生成用户自定义函数;并从所述用户自定义函数中解析出代码合并至所述规则代码。6.根据权利要求2所述的方法,其特征在于,所述遍历所述有向无环图中的所述多个模型节点,包括:按照模型节点入度由小至大的顺序,将所述有向无环图中每个入度下的模型节点作为当前遍历的模型节点。
7.根据权利要求1所述的方法,其特征在于,所述规则模型文件包括计算引擎定义;所述针对当前遍历的模型节点,基于所述模型节点对应的源数据,调用所述模型节点对应的计算引擎执行所述模型节点对应的规则代码,包括:根据当前遍历的模型节点对应的计算引擎定义,确定所述模型节点对应的计算引擎;其中,所述计算引擎定义包含用户为模型节点指定的计算引擎,所述计算引擎包括大数据引擎和/或数据库引擎;基于所述模型节点对应的源数据,调用所述模型节点对应的计算引擎执行所述模型节点对应的规则代码。8.根据权利要求1-7中任一项所述的方法,其特征在于,所述规则模型文件包括分布式锁定义;所述方法还包括:根据当前遍历的模型节点对应的分布式锁定义,确定所述模型节点对应的目标分布式锁;其中,所述分布式锁定义包含用户为模型节点指定的分布式锁;通过所述目标分布式锁锁定当前遍历的模型节点对应的源数据,直至所述模型节点对应的计算引擎执行完成所述模型节点对应的规则代码。9.一种数据处理装置,其特征在于,包括:生成模块,用于根据用户定义的业务规则以及源数据,生成规则模型文件;所述规则模型文件定义有多个模型节点以及多个计算引擎;解析模块,用于针对所述多个模型节点,生成有向无环图,并根据所述规则模型文件,解析出所述多个模型节点对应的规则代码;处理模块,用于遍历所述有向无环图中的所述多个模型节点,并针对当前遍历的模型节点,基于所述模型节点对应的源数据,调用所述模型节点对应的计算引擎执行所述模型节点对应的规则代码,直至遍历完所有模型节点,得到数据处理结果。10.根据权利要求9所述的装置,其特征在于,所述规则模型文件包括有向无环图依赖定义;所述解析模块,具体用于根据所述业务规则中的所述有向无环图依赖定义,生成所述多个模型节点的有向无环图;其中,所述有向无环图依赖定义用于定义所述多个模型节点之间的依赖关系和依赖类型,所述依赖类型包括继续执行和结束执行。11.根据权利要求9所述的装置,其特征在于,所述规则模型文件包括模型节点的模型节点定义,所述模型节点的模型节点定义包括用于定义所述模型节点的节点类型的第一字段和用于定义所述模型节点对应的规则代码的第二字段;所述解析模块,具体用于根据所述业务规则中所述模型节点定义中的第一字段,确定每个模型节点的节点类型;所述解析模块,具体还用于若所述模型节点的节点类型为结构化查询语言类型,则对所述模型节点对应的所述第二字段中结构化查询语言格式的内置函数代码进行解析,获得所述模型节点对应的规则代码;所述解析模块,具体还用于若所述模型节点的节点类型为自定义类型,则读取所述第二字段中用户自定义的非结构化查询语言格式的代码,获得所述模型节点对应的规则代码。12.根据权利要求11所述的装置,其特征在于,所述规则模型文件还包括用户自定义函
数定义,所述用户自定义函数定义用于定义用户自定义的结构化查询语言格式的非内置函数代码;所述解析模块,具体还用于若所述模型节点的节点类型为结构化查询语言类型,且所述模型节点对应的所述用户自定义函数定义为空值,则对所述模型节点对应的所述第二字段中结构化查询语言格式的内置函数代码进行解析。13.根据权利要求12所述的装置,其特征在于,所述装置还包括:合并模块,用于若所述模型节点的节点类型为结构化查询语言类型,且所述模型节点对应的所述用户自定义函数定义不为空值,则根据所述用户自定义函数定义生成用户自定义函数;并从所述用户自定义函数中解析出代码合并至所述规则代码。14.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;所述存储器存储计算机执行指令;所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1-8中任一项所述的方法。15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-8中任一项所述的方法。16.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-8中任一项所述的方法。

技术总结


本申请提供一种数据处理方法、装置、电子设备、介质及产品,涉及数据处理领域。包括:根据用户定义的业务规则以及源数据,生成规则模型文件;规则模型文件定义有多个模型节点以及多个计算引擎;针对多个模型节点,生成有向无环图,并根据规则模型文件,解析出多个模型节点对应的规则代码;遍历有向无环图中的多个模型节点,并针对当前遍历的模型节点,基于模型节点对应的源数据,调用模型节点对应的计算引擎执行模型节点对应的规则代码,直至遍历完所有模型节点,得到数据处理结果。以上方案,通过有向无环图对模型节点统一管理,每个节点有对应的计算引擎,多个模型节点可以同时进行数据处理,从而提高数据处理效率。从而提高数据处理效率。从而提高数据处理效率。


技术研发人员:

蒋松

受保护的技术使用者:

建信金融科技有限责任公司

技术研发日:

2022.09.06

技术公布日:

2022/11/18

本文发布于:2024-09-20 12:33:36,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/3290.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:节点   所述   模型   定义
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议