本发明专利技术涉及一种基于规则的数据处理工作流定义方法、装置、终端及介质,以文本代码的方式基于规则编写工作流,将工作流编译成易于匹配和执行的数据单元,以规则作为工作流描述的基础单元,集成了目标、依赖以及动作,可以表述任务之间的复杂依赖关系。使工作流定义可以直接进入版本管理,更新工作流定义无需重新计算所有步骤,具有良好的可重复性。本发明专利技术支持的依赖动态解析、模式匹配、动作协议等功能,可以对不同输入采用不同的运行方式,大大增强装置的表达能力与集成能力,可以根据需要进行多语言调用。本发明专利技术在大数据分析处理、可重复研究等领域具有较好的应用前景。等领域具有较好的应用前景。等领域具有较好的应用前景。
【技术实现步骤摘要】
基于规则的数据处理工作流定义方法、装置、终端及介质
[0001]本申请涉及数据处理
,特别是涉及一种基于规则的数据处理工作流定义方法、装置、终端及介质。
技术介绍
[0002]随着大数据时代的到来,构建有效的数据处理装置对学术研究和工程实现都提出了巨大挑战。组合各类现有模块来构建复杂工具是解决复杂数据处理问题的必要途径,但是由于现有模块技术路线驳杂,对模块组合工具的能力提出了挑战。另一方面,数据处理是一种迭代演进的能力,需要不断集成新的工具或优化流程,为此需要工具能够利用之前运行的结果进行渐进处理。这些因素都制约了构建有效数据处理工具的开发效率。
[0003]现有的工作流处理工具多数采用图模型作为底层逻辑。用户通过可视化的拖拽,将装置提供的功能按照所需逻辑组合成一个大型数据处理装置。这种方法的主要缺点是图模型难以通过易于读写的文本表达,描述工作流的数据包只能通过单一软件进行处理,这使得工作流本身无法进行良好的版本管理,模块组合能力也受到一定限制,部分工具如Kepler等支持开发插件扩展生态,但是处理工具和生态一起是一个技术路线单一的巨型装置,如果要引入当前插件尚不支持的功能仍需开发转换组件。另一类工作流处理工具是基于工作流处理语言的装置,如Jupyter Notebook,Makefile,Knitr等,这些工具或者不是为了数据处理开发,或者主要面向的是交互式展示,对数据处理依赖关系的表达能力不足,装置层面不支持渐进执行等工作流装置的必要功能。
技术实现思路
[0004]基于此,有必要针对上述技术问题,提供一种能够增强数据处理工作流逻辑的表达能力,实现模块快速调用的基于规则的数据处理工作流定义方法、装置、终端及介质。
[0005]一种基于规则数据处理工作流定义的方法,所述方法包括:基于规则定义工作流结构,所述工作流结构包括依序执行的一系列动作,所述动作以及所述动作与其它动作的关系由一条规则定义;所述规则包括:目标单元、依赖单元以及动作单元;根据所述目标单元中的正则表达式,构建文本匹配与提取的相关例程;基于相关例程,将用户给定的输出与所述目标单元进行匹配,提取执行上下文信息;根据所述执行上下文信息,动态搜寻需要调用的依赖单元,将相应的依赖单元编译成具体的依赖,将所述具体的依赖加入所述执行上下文信息中,得到新的上下文信息;根据所述具体的依赖,判断输出要求的依赖是否均已存在;若否,将所述具体的依赖作为输出进行解析,递归寻找生成依赖的规则;将所述新的上下文信息提供给动作单元,对所述动作单元中的代码进行编译,得到动作代码;将所述动作代码提供给所述动作单元,根据所述动作单元中指明的协议执行相应的动作。
[0006]在一个实施例中,所述正则表达式用于对可匹配的用户给定输出进行限制,并设
置捕获组提取输出中的部分文本。
[0007]在一个实施例中,基于相关例程,将用户给定的输出与所述目标单元进行匹配,提取执行上下文信息,包括:基于相关例程,将用户给定的输出与目标的正则表达式进行匹配运算,匹配后形成结构化的执行上下文信息;正则表达式中的捕获组提取到的信息作为额外的上下文信息。
[0008]在一个实施例中,根据所述执行上下文信息,动态搜寻需要调用的依赖单元,将相应的依赖单元编译成具体的依赖,包括:根据所述执行上下文信息以及额外的上下文信息对所述依赖单元进行编译,得到前序输出;根据所述前序输出,动态搜寻需要调用的依赖单元,将相应的依赖单元编译成具体的依赖。
[0009]在一个实施例中,在根据所述具体的依赖,判断输出要求的依赖是否均已存在之前,还包括:判断用户定义的输出是否存在且为最新,若是,则不需要执行该规则定义的动作;若否,则根据所述具体的依赖,判断输出要求的依赖是否均已存在。
[0010]一种基于规则数据处理工作流定义的装置,所述装置包括:规则编译模块;用于基于规则定义工作流结构,所述工作流结构包括依序执行的一系列动作,所述动作以及所述动作与其它动作的关系由一条规则定义;所述规则包括:目标单元、依赖单元以及动作单元;根据所述目标单元中的正则表达式,构建文本匹配与提取的相关例程;依赖解析模块;基于相关例程,将用户给定的输出与所述目标单元进行匹配,提取执行上下文信息;根据所述执行上下文信息,动态搜寻需要调用的依赖单元,将相应的依赖单元编译成具体的依赖,将所述具体的依赖加入所述执行上下文信息中,得到新的上下文信息;规则执行模块;根据所述具体的依赖,判断输出要求的依赖是否均已存在;若否,将所述具体的依赖作为输出进行解析,递归寻找生成依赖的规则;动作协议模块,用于获取所述新的上下文信息,对所述动作单元中的代码进行编译,得到动作代码;将所述动作代码提供给所述动作单元,根据所述动作单元中指明的协议执行相应的动作。
[0011]在一个实施例中,所述目标单元包括目标类型以及一个及以上的节;所述节包含至少一个正则表达式;所述依赖单元包括主要依赖以及次要依赖;所述主要依赖由包含多个节的目标自动用除最后一个节的所有节构建的,所述次要依赖为装置中已经显式指明的部分依赖;所述动作单元包括一个及以上的动作协议以及直接嵌入的多种语言的代码;所述动作协议支持动态配置,在规则脚本中进行统一配置,或在单个规则内覆写配置。
[0012]在一个实施例中,所述动作协议模块采用插件式结构,模块实现脚本生成、脚本执行基础功能即可在规则定义中进行调用。
[0013]一种计算机终端设备,包括存储器和处理器,所述存储器存储有计算机程序,所述
处理器执行所述计算机程序时实现以下步骤:步骤A,基于规则定义工作流结构,所述工作流结构包括依序执行的一系列动作,所述动作以及所述动作与其它动作的关系由一条规则定义;所述规则包括:目标单元、依赖单元以及动作单元;根据所述目标单元中的正则表达式,构建文本匹配与提取的相关例程;步骤B,基于相关例程,将用户给定的输出与所述目标单元进行匹配,提取执行上下文信息;根据所述执行上下文信息,动态搜寻需要调用的依赖单元,将相应的依赖单元编译成具体的依赖,将所述具体的依赖加入所述执行上下文信息中,得到新的上下文信息;步骤C,根据所述具体的依赖,判断输出要求的依赖是否均已存在;若否,将所述具体的依赖作为输出进行解析,递归寻找生成依赖的规则;步骤D,将所述新的上下文信息提供给动作单元,对所述动作单元中的代码进行编译,得到动作代码;将所述动作代码提供给所述动作单元,根据所述动作单元中指明的协议执行相应的动作。
[0014]一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:步骤A,基于规则定义工作流结构,所述工作流结构包括:目标单元、依赖单元以及动作单元;根据所述目标单元中的正则表达式,构建文本匹配与提取的相关例程;步骤B,基于相关例程,将用户给定的输出与所述目标单元进行匹配,提取执行上下文信息;根据所述执行上下文信息,动态搜寻需要调用的依赖单元,将相应的依赖单元编译成具体的依赖,将所述具体的依赖加入所述执行上下文信息中,得到新的上下文信息;步骤C本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于规则数据处理工作流定义的方法,其特征在于,所述方法包括:基于规则定义工作流结构,所述工作流结构包括依序执行的一系列动作,所述动作以及所述动作与其它动作的关系由一条规则定义;所述规则包括:目标单元、依赖单元以及动作单元;根据所述目标单元中的正则表达式,构建文本匹配与提取的相关例程;基于相关例程,将用户给定的输出与所述目标单元进行匹配,提取执行上下文信息;根据所述执行上下文信息,动态搜寻需要调用的依赖单元,将相应的依赖单元编译成具体的依赖;将所述具体的依赖加入所述执行上下文信息中,得到新的上下文信息;根据所述具体的依赖,判断输出要求的依赖是否均已存在;若否,将所述具体的依赖作为输出进行解析,递归寻找生成依赖的规则;将所述新的上下文信息提供给动作单元,对所述动作单元中的代码进行编译,得到动作代码;将所述动作代码提供给所述动作单元,根据所述动作单元中指明的协议执行相应的动作。2.根据权利要求1所述的方法,其特征在于,所述正则表达式用于对可匹配的用户给定输出进行限制,并设置捕获组提取输出中的部分文本。3.根据权利要求1或2所述的方法,其特征在于,基于相关例程,将用户给定的输出与所述目标单元进行匹配,提取执行上下文信息,包括:基于相关例程,将用户给定的输出与目标的正则表达式进行匹配运算,匹配后形成结构化的执行上下文信息;正则表达式中的捕获组提取到的信息作为额外的上下文信息。4.根据权利要求3所述的方法,其特征在于,根据所述执行上下文信息,动态搜寻需要调用的依赖单元,将相应的依赖单元编译成具体的依赖,包括:根据所述执行上下文信息以及额外的上下文信息对所述依赖单元进行编译,得到前序输出;根据所述前序输出,动态搜寻需要调用的依赖单元,将相应的依赖单元编译成具体的依赖。5.根据权利要求4所述的方法,其特征在于,在根据所述具体的依赖,判断输出要求的依赖是否均已存在之前,还包括:判断用户定义的输出是否存在且为最新,若是,则不需要执行该规则定义的动作;若否,则根据所述具体的依赖,判断输出要求的依...
【专利技术属性】
技术研发人员:杨岸然,贾庆仁,马梦宇,李军,陈荦,钟志农,欧阳雪,彭双,
申请(专利权)人:中国人民解放军国防科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。