首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

基于规则引擎的数据处理方法、装置、设备及存储介质 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:平安银行股份有限公司

摘要:本发明公开了一种基于规则引擎的数据处理方法、装置、设备及存储介质。所述方法包括:接收包含处理目标和目标数据源的数据获取指令,从目标数据源获取业务数据集;根据预设的Sql处理规则对业务数据集中的所有业务数据进行预处理后,得到业务数据结果集;调用分布式计算引擎遍历业务数据结果集,并将业务数据结果集中的每一组业务数据转换成一个第一对象;自预设规则数据库中确定与处理目标匹配的业务规则集;根据第一对象中的业务数据确定业务规则集中的业务规则;根据业务规则选取规则引擎,并通过选取的规则引擎调用业务规则对第一对象进行处理,并获取输出的处理结果。通过本发明提供的基于规则引擎的数据处理方法,可提升非专业人员操作效率。

主权项:1.一种基于规则引擎的数据处理方法,其特征在于,包括:接收包含处理目标和目标数据源的数据获取指令,从所述目标数据源获取业务数据集,所述业务数据集中包括至少一组业务数据;根据预设的Sql处理规则对所述业务数据集中的所有所述业务数据进行预处理后,得到业务数据结果集;所述根据预设的Sql处理规则对所述业务数据集中的所有所述业务数据进行预处理后,得到业务数据结果集,包括:确认对所述业务数据集进行预处理的预处理类型,所述预处理类型包括筛选处理、过滤处理和分组聚合处理中的一种或多种;根据所述预处理类型调取对应的Sql规则模板;获取用户输入的与所述预处理类型对应的数据属性;将所述数据属性插入所述Sql规则模板中的预设位置,生成与所述数据属性关联的Sql处理规则,所述Sql处理规则用于进行与所述预处理类型对应的预处理;通过预设的测试接口测试所述Sql处理规则是否为正确语句;若所述Sql处理规则为正确语句,则执行所述Sql处理规则并从所述测试接口返回与所述预处理类型以及所述数据属性对应的所述业务数据结果,并将所述业务数据结果放入所述业务数据结果集中;若所述Sql处理规则为错误语句,则提示所述用户所述Sql处理规则有误;调用分布式计算引擎遍历所述业务数据结果集,并将所述业务数据结果集中的每一组所述业务数据转换成一个第一对象;自预设规则数据库中确定与所述处理目标匹配的业务规则集,所述业务规则集中包括至少一个业务规则;根据所述第一对象中的所述业务数据确定所述业务规则集中与所述业务数据匹配的所述业务规则;根据与所述业务数据匹配的所述业务规则选取规则引擎,并通过选取的所述规则引擎调用与所述业务数据匹配的所述业务规则对所述第一对象进行处理,并获取输出的处理结果,所述处理结果与所述处理目标对应。

全文数据:基于规则引擎的数据处理方法、装置、设备及存储介质技术领域本发明涉及数据处理领域,尤其涉及一种基于规则引擎的数据处理方法、装置、设备及存储介质。背景技术规则引擎是一种嵌入在应用程序中的组件,使用规则引擎可以降低实现复杂业务逻辑组件的复杂性,提高应用程序的可维护性和可扩展性。在现有技术中,由于规则引擎并不适用于数据量大且规则复杂多变的场景,若需要将规则引擎与大数据结合时,需要具备充裕的大数据技术、编程专业知识及编程经验的专业人员,因此,如需将规则引擎与大数据进行结合,需要专业技术很强的专业人员,对于非专业人员来说,非常容易出错并且操作效率低下,因此,寻找一种能解决以上问题的技术方案成为本领域技术人员亟需解决的问题。发明内容基于此,有必要针对上述技术问题,提供一种基于规则引擎的数据处理方法、装置、设备及存储介质,可以将规则引擎与大数据进行结合,且本发明适用于非专业人员,提升了操作效率和用户体验。一种基于规则引擎的数据处理方法,包括:接收包含处理目标和目标数据源的数据获取指令,从所述目标数据源获取业务数据集,所述业务数据集中包括至少一组业务数据;根据预设的Sql处理规则对所述业务数据集中的所有所述业务数据进行预处理后,得到业务数据结果集;调用分布式计算引擎遍历所述业务数据结果集,并将所述业务数据结果集中的每一组所述业务数据转换成一个第一对象;自预设规则数据库中确定与所述处理目标匹配的业务规则集,所述业务规则集中包括至少一个业务规则;根据所述第一对象中的所述业务数据确定所述业务规则集中与所述业务数据匹配的所述业务规则;根据与所述业务数据匹配的所述业务规则选取规则引擎,并通过选取的所述规则引擎调用与所述业务数据匹配的所述业务规则对所述第一对象进行处理,并获取输出的处理结果,所述处理结果与所述处理目标对应。一种基于规则引擎的数据处理装置,包括:接收模块,用于接收包含处理目标和目标数据源的数据获取指令,从所述目标数据源获取业务数据集,所述业务数据集中包括至少一组业务数据;预处理模块,用于根据预设的Sql处理规则对所述业务数据集中的所有所述业务数据进行预处理后,得到业务数据结果集;转换模块,用于调用分布式计算引擎遍历所述业务数据结果集,并将所述业务数据结果集中的每一组所述业务数据转换成一个第一对象;第一确定模块,用于自预设规则数据库中确定与所述处理目标匹配的业务规则集,所述业务规则集中包括至少一个业务规则;第二确定模块,用于根据所述第一对象中的所述业务数据确定所述业务规则集中与所述业务数据匹配的所述业务规则;获取模块,用于根据与所述业务数据匹配的所述业务规则选取规则引擎,并通过选取的所述规则引擎调用与所述业务数据匹配的所述业务规则对所述第一对象进行处理,并获取输出的处理结果,所述处理结果与所述处理目标对应。一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于规则引擎的数据处理方法。一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于规则引擎的数据处理方法。上述基于规则引擎的数据处理方法、装置、设备及存储介质,本发明接收包含处理目标和目标数据源的数据获取指令,从所述目标数据源获取业务数据集,所述业务数据集中包括至少一组业务数据;根据预设的Sql处理规则对所述业务数据集中的所有所述业务数据进行预处理后,得到业务数据结果集;调用分布式计算引擎遍历所述业务数据结果集,并将所述业务数据结果集中的每一组所述业务数据转换成一个第一对象;自预设规则数据库中确定与所述处理目标匹配的业务规则集,所述业务规则集中包括至少一个业务规则;根据所述第一对象中的所述业务数据确定所述业务规则集中与所述业务数据匹配的所述业务规则;根据与所述业务数据匹配的所述业务规则选取规则引擎,并通过选取的所述规则引擎调用与所述业务数据匹配的所述业务规则对所述第一对象进行处理,并获取输出的处理结果,所述处理结果与所述处理目标对应。本发明通过上述对目标数据源中的业务数据的数据处理过程,自动选取可以与业务数据业务规则匹配的规则引擎,进而根据该规则引擎调取业务规则对业务数据转换而成的第一对象进行处理,上述处理过程可以通过服务器将规则引擎与业务数据大数据紧密结合,无需充裕的大数据技术、编程专业知识及编程经验的专业人士参与处理,且规则引擎和其他拓展工具比如分布式计算引擎,各种拓展接口等能相互配合重复使用;本发明也适用于大数据的离线处理和大数据的实时处理等不同数据处理场景。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本发明一实施例中基于规则引擎的数据处理方法的一应用环境示意图;图2是本发明一实施例中基于规则引擎的数据处理方法的一流程图;图3是本发明一实施例中基于规则引擎的数据处理方法步骤S20在一个应用环境下的流程示意图;图4是本发明一实施例中基于规则引擎的数据处理方法步骤S50在一个应用环境下的流程示意图;图5是本发明一实施例中基于规则引擎的数据处理方法步骤在一个应用环境下若业务规则集中与第一对象中的业务数据匹配的业务规则的数量为零个的流程示意图;图6是本发明一实施例中基于规则引擎的数据处理方法步骤S505在一个应用环境下的流程示意图;图7是本发明一实施例中基于规则引擎的数据处理装置的结构示意图;图8是本发明一实施例中计算机设备的一示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明提供的基于规则引擎的数据处理方法,可应用在如图1的应用环境中,其中,客户端通过网络与服务器进行通信。其中,客户端可以但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。在一实施例中,如图2所示,提供一种基于规则引擎的数据处理方法,以该方法应用在图1中的服务器为例进行说明,包括如下步骤:S10,接收包含处理目标和目标数据源的数据获取指令,从所述目标数据源获取业务数据集,所述业务数据集中包括至少一组业务数据。可以理解的是,处理目标是指对业务数据在本发明中进行数据处理可能包括Sql处理规则处理、Java插件接口处理或者规则引擎处理等其中的一种或多种数据处理方式,具体可以应用在大数据的离线处理场景下之后,所期望得到的一个处理结果,比如,若业务数据为税前工资包括基本工资或绩效工资,可以通过数据处理后得到个税、五险一金或税后工资等处理结果,此时,可以将个税、五险一金或税后工资等设定为处理目标;目标数据源可以包括但不限于关系数据库如Oracle、Mysql等、非关系数据库如Hbase、ElasticSearch、MongoDB等和文件如Excel、CSV等或者消息服务器如kafka或RocketMQ等等;具体地,在接收到一个处理目标,并确定该处理目标所需的业务数据所在目标数据源时,服务器接收到包含处理目标和目标数据源的数据获取指令,并自目标数据源的业务数据集中获取业务数据;业务数据集中包括通过多个不同插件接口多个插件接口的数据源可以作为目标数据源调取的业务数据,由于自多个不同插件接口调取的业务数据可能存在不同的数据类型比如是字符、数组、字符串等,此时可以在服务器自业务数据集之中获取业务数据之前,首先将不同数据类型的业务数据进行归一化处理,同时将相同属性的业务数据进行整合,得到一个具有完整性和兼容性的业务数据集。S20,根据预设的Sql处理规则对所述业务数据集中的所有所述业务数据进行预处理后,得到业务数据结果集。在此步骤中,Sql处理规则包含至少一个可以包含多个可以实现某种预处理操作的Sql语句,此Sql处理规则可以完成业务数据的预处理筛选处理、过滤处理和分组聚合处理等预处理操作中的一种或多种;业务数据结果集为业务数据进行预处理后,得到与业务数据集中各个业务数据对应的数据处理结果。本实施例中,对S10步骤从目标数据源得到的业务数据集中业务数据进行预处理,包括对存在且无用的业务数据进行筛选过滤处理后,对所需的业务数据进行分组聚合,从而可以从大量的业务数据中再进一步确定出所需的业务数据,也能对所需的业务数据进行规范化的整理,得到一个较整洁的业务数据结果集此时的业务数据结果集中业务数据与处理目标完全吻合,且不存咋无用数据,同时已被分组聚合,且可以减少规则引擎的工作量。进一步地,如图3所示,所述步骤S20,包括:S201,确认对所述业务数据集进行预处理的预处理类型,所述预处理类型包括筛选处理、过滤处理和分组聚合处理中的一种或多种。在此步骤中,预处理类型中的筛选处理、过滤处理和分组聚合处理。S202,根据所述预处理类型调取对应的Sql规则模板。可理解地,由于每种预处理类型对应的Sql规则模板都存在差异性,Sql规则模板可能由多种预处理类型对应的Sql规则模板组成;每一个Sql规则模板都可以在其预设位置填入对应的数据属性之后,生成一个Sql处理规则,该Sql处理规则可以执行至少一个预处理操作。S203,获取用户输入的与所述预处理类型对应的数据属性。具体地,用户可以在输入接口输入想要进行的预处理类型对应的数据属性,比如,输入的数据属性为筛选处理就可以在接下来的步骤中生成相应的操作。S204,将所述数据属性插入所述Sql规则模板中的预设位置,生成与所述数据属性关联的Sql处理规则,所述Sql处理规则用于进行与所述预处理类型对应的预处理。可理解地,每个Sql处理规则可能存在至少一个的Sql语句,且每个Sql语句都能完成其相应的功能。也即,通过上述步骤S201至步骤S204,即可生成一个完整的Sql处理规则,且在该过程中,用户无需熟悉Sql编程语言即可完成该Sql处理规则的生成规则,因此可以广泛被非专业人员使用。S205,通过预设的测试接口测试所述Sql处理规则是否为正确语句。在此步骤中,Sql处理规则中的Sql语句可能会出现个别原因比如在步骤S10中获取到的业务数据集中,无法获取到与该Sql处理规则中的数据属性对应的属性值时,此时Sql处理规则无法运行并进行预处理导致得不到最后的业务数据结果即运行结果,因此,只需要通过预设的测试接口去运行Sql处理规则,即可验证Sql处理规则中的Sql语句是否为正确语句,在Sql处理规则正确的情况下,通过预设的测试接口能进行与数据属性以及预处理类型对应的预处理。也即,在本实施例中,测试Sql处理规则是否为正确语句的过程仅需要调用预设测试接口即可自动进行,降低了Sql处理规则的出错概率,同时,该过程无需熟悉Sql编程语言的专业人士参与,因此,大大拓展了应用范围,也提升了测试效率。S206,若所述Sql处理规则为正确语句,则执行所述Sql处理规则并从所述测试接口返回与所述预处理类型以及所述数据属性对应的所述业务数据结果,并将所述业务数据结果放入所述业务数据结果集中。在此步骤中,当Sql处理规则为正确语句时,直接使用此Sql处理规则对业务数据集中的所有各业务数据进行预处理,并将与每一组业务数据对应的业务数据结果放入业务数据结果集中。S207,若所述Sql处理规则为错误语句,则提示所述用户所述Sql处理规则有误。在此步骤中,当Sql处理规则为错误语句时,说明使用此Sql处理规则不能得到任意一个业务数据结果。此时需要提示该Sql处理规则有误,同时可以提示该Sql处理规则的有误之处并在该有误之处进行修改同时可根据此前历史用户的修改记录提示用户可以参照的修改方式,或提示用户重新返回至步骤S201中重新生成新的Sql处理规则。S30,调用分布式计算引擎遍历所述业务数据结果集,并将所述业务数据结果集中的每一组所述业务数据转换成一个第一对象。可以理解的是,分布式计算是一种计算方法,和集中式计算是相对的;随着计算技术的发展,有些应用需要非常巨大的计算能力才能完成,如果采用集中式计算,需要耗费相当长的时间来完成;分布式计算可以总结为数据读取、计算和存储的过程将该应用分解成许多小的部分,分配给多台计算机进行处理,这样可以节约整体计算时间,大大提高计算效率,此时,分布式计算引擎比如Mapreduce、Spark等能应用到分布式计算;具体地,由于业务数据结果集中的数据量还可能很大,此时,调用分布式计算引擎遍历业务数据结果集,可以将业务数据结果集中的业务数据进行分布式分配之后,使得其中的每一组或者多组业务数据即记录被分配给不同的计算机进行处理,同时将在不同计算机中进行处理的每一组业务数据转换成一个第一对象即Po,PersisentObject,持久对象,将业务数据转换成Po对象之后可以直接将该Po对象通过业务规则该业务规则与该Po对象匹配,也即该业务规则可以用于处理该Po对象进行处理以获取处理结果,也可以在需要的情况下将该Po对象转换为其它对象之后,通过其他业务规则其他业务规则与其他对象匹配,并可以对其他对象进行处理进行处理并获取处理结果。在本实施例中,通过分布式计算引擎的调用,对大量的业务数据结果集也即大数据进行分布式处理,可以节约处理时间,提升处理效率,进而可以提高业务数据结果集中的业务数据转换成第一对象的转换效率.。S40,自预设规则数据库中确定与所述处理目标匹配的业务规则集,所述业务规则集中包括至少一个业务规则。可以理解的是,与处理目标匹配的业务规则集中包含的业务规则,均是指可以对业务数据进行数据处理,且进行数据处理之后所得到的处理结果与处理目标匹配的业务规则,业务规则集以及其中的业务规则可以根据处理目标等来进行命名。业务规则中的规则内容可以根据需求进行设定,且所有的业务规则或业务规则集均存储在自预设规则数据库中。在另一实施例中,自预设规则数据库中可能未找到与处理目标匹配的业务规则集也即与处理目标匹配的业务规则集为空,则可以通知用户自预设规则数据库中并不存在与该处理目标对应的业务规则集,亦可以通知用户增加新的业务规则,此时,可以接收通过业务规则添加接口输入的新增业务规则,并将新增业务规则存储至自预设规则数据库中与其对应的业务规则集中若不存在该业务规则集,则可以根据该新增业务规则对应的处理结果新建业务规则集。S50,根据所述第一对象中的所述业务数据确定所述业务规则集中与所述业务数据匹配的所述业务规则。可以理解的是,由于不同的业务数据可以通过不同的业务规则计算得出不同的处理结果,此时,由不同的业务数据也可以确定与该业务数据匹配的不同的业务规则,比如业务数据为税前工资数据包括基本工资或绩效工资,处理目标为个税,若业务规则可以根据税前工资数据其中的部分或所有税前工资数据经过数据处理之后得出个税这一个处理结果,该业务规则与该税前工资数据业务数据匹配;比如业务数据为一个业务经理的客户的存款业务数据,处理目标为个税,若业务规则可以根据该存款业务数据其中的部分或所有存款业务数据计算该业务经理的佣金这一个处理结果,则该业务规则为与该存款业务数据匹配的业务规则;具体地,若第一对象中的业务数据包含业务规则中的所有待输入业务数据业务规则计算与其对应的处理结果所需要的所有业务数据,即可将其确定为与第一对象中的业务数据匹配的业务规则;若第一对象中的业务数据不包含业务规则中的所有待输入业务数据,则说明该第一对象中的业务数据不是与业务规则匹配的业务数据。本实施例中,由于业务规则引擎不止处理一种业务数据,且处理的业务数据也可以包括多种与其对应的业务规则,因此,所建立的业务规则集是与业务数据对应的处理目标匹配得到,并在匹配得到业务规则集确定与第一对对象中的业务数据匹配的业务规则,从而可以避免业务数据直接与业务规则匹配,进而可以减少业务规则的匹配时间。进一步地,如图4所示,所述步骤S50,包括:S501,判断所述业务规则集中与所述第一对象中的所述业务数据匹配的所述业务规则的数量是否大于一个。可理解地,业务数据集中与第一对象中的业务数据匹配的业务规则的数量可能为零个、一个或两个以上大于一个。S502,若所述业务规则集中与所述第一对象中的所述业务数据匹配的所述业务规则的所述数量大于一个,则将所述业务集中的所有所述业务规则确定为所述业务规则集中待匹配规则引擎的业务规则。在此步骤中,当业务规则集中与业务数据匹配的业务规则的数量大于一个时,此时,可以选取业务规则集中所有的业务规则作为业务规则集中待匹配规则引擎的业务规则,也即,被选取进行数据处理并得出处理结果的业务规则可以包括多个。本实施例中,通过判断业务规则集中与第一对象中的业务数据匹配的业务规则的数量是否大于一个,最后可根据匹配的业务规则的数量作出相应的措施,从而可以防止匹配的业务规则的数量的多变性对规则引擎处理结果的影响。在一实施例中,所述步骤S501之后,还包括:若所述业务规则集中与所述第一对象中的所述业务数据匹配的所述业务规则的所述数量等于一个,则将所述业务规则集中的该业务规则确定为待匹配规则引擎的业务规则。在此步骤中,当业务规则集中与业务数据匹配的业务规则的数量是等于一个时,则可以直接选取其并进入步骤S60中,根据该业务规则匹配规则引擎。在一实施例中,如图5所示,所述步骤S501之后,还包括:S503,若所述业务规则集中与所述第一对象中的所述业务数据匹配的所述业务规则的所述数量为零个,则获取所述业务规则集中的其他业务规则,并获取所述其他业务规则所需的待输入业务数据。S504,根据所述第一对象中的所述业务数据与所述其他业务规则所需的所述待输入业务数据之间的转换关系调取预设的自定义函数和拦截器,并通过所述预设的自定义函数和所述拦截器将包含所述业务数据的所述第一对象转换为包含所述待输入业务数据的第二对象。S505,将所述其他业务规则确定为待匹配规则引擎的业务规则。在该实施例中,当业务规则集中与第一对象中的业务数据匹配的业务规则的数量是等于零个时,此时可能是第一对象中的业务数据与业务规则集中的所有业务规则均不匹配,此时,可以先在业务规则集中确定一个依旧可以得出与处理目标匹配的处理结果的其他业务规则,并将其他业务规则作为后续需要进行数据处理的业务规则也即匹配规则引擎的业务规则;此后,通过Java插件接口调取预设的自定义函数UDF函数和拦截器Interceptor将第一对象转换为第二对象第二对象中包含其他业务规则中所需的所有待输入业务数据后,获取与业务规则集中的其他业务规则匹配的第二对象,并在后续步骤中通过其他业务规则对第二对象进行数据处理之后得到与处理目标匹配的处理结果。可理解地,若业务规则集中也不存在其他业务规则,或者第一对象并不能转换没有对应的自定义函数和拦截器为包含其他业务规则的待输入业务数据的第二对象;此时,可以提示用户切换选取的处理目标或者提示用户新增业务规则或者新增自定义函数和拦截器均可。在本实施例中,在业务规则集中与第一对象中的业务数据匹配的业务规则的数量为零个时,通过预设的自定义函数和拦截器将包含业务数据的第一对象转换为包含待输入业务数据的第二对象,并将与第二对象匹配的业务规则作为待匹配规则引擎的业务规则。从而可以保证在未匹配到业务规则时,服务器可以确定一个与第二对象匹配的业务规则。进一步地,如图6所示,所述步骤S504,包括:S5041,通过Java插件接口调用所述预设的自定义函数,并将所述第一对象中的所述业务数据输入所述预设的自定义函数中运行,得到一个运行结果,所述运行结果由多个对象组成。在本实施例中,可以在Hive中去自定义编写UDF函数预设的自定义函数,具体地,需提前编写UDF函数相关的代码即按照UDF的规范,要继承UDF类和创建临时函数,将代码打包成jar包并上传到服务器,从服务器中将jar包添加到hive中,将临时函数与jar包中编写的代码相关的类class绑定,最后才去调用UDF函数去对第一对象进行运行。S5042,通过所述Java插件接口调用预先设置的所述拦截器,拦截所述运行结果中预设行为对象,将除所述预设行为对象之外的所述运行结果中的其他对象记录为所述第二对象。可以理解的是,拦截器Interceptor提供一种机制使开发者可以定义在一个行为执行前阻止其执行该行为即为上述行为对象。拦截器是分散关注的编程方法,它能将通用需求功能从不相关类之中分离出来;同时,能够共享一个行为,一旦行为发生变化,不必修改很多类,只要修改这个行为就可以;拦截器将很多功能独立出来,大量减少了代码数量。S60,根据与所述业务数据匹配的所述业务规则选取规则引擎,并通过选取的所述规则引擎调用与所述业务数据匹配的所述业务规则对所述第一对象进行处理,并获取输出的处理结果,所述处理结果与所述处理目标对应。可以理解的是,业务规则中包括多个规则参数,由于每种业务规则都具有不同的规则参数规则参数可以代码来表示,而不同的规则参数需要不同的规则引擎去进行处理,只有在该规则引擎可以处理该业务规则的规则参数也即该规则参数支持该规则引擎时,该规则引擎才可以调用该业务规则;因此,可以根据业务规则业务规则中的规则参数去确定选取规则引擎该规则引擎可以用于处理该业务规则中的规则参数,也即该规则引擎可调用该业务规则,并按照确定出来的规则引擎调用对应的业务规则去对第一对象进行数据处理,得到一个处理结果,且该处理结果与处理目标相同。本实施例中,由于不同规则引擎中对应不同的规则参数,且业务规则是基于规则参数建立的,因此,通过与业务数据匹配的业务规则选取规则引擎,可以快速确定出能真正成功处理业务数据的规则引擎。进一步地,所述步骤S60之后,还包括:A、根据所述业务数据结果集中的各组所述业务数据以及与各组所述业务数据对应的所述处理结果,生成映射关系表,并将所述映射关系表存储至目标数据存储源。在此步骤中,处理结果与其对应的业务数据结果集中各组业务数据能按照一定的映射关系如表名、索引名称、文件名称等生成映射关系表。也即本实施例可以确保处理结果呈现出一种有各种联系的关系标,方便于人员查看。进一步地,所述映射关系表中包括与不同存储数据属性对应的业务数据,所述步骤A之后,还包括:通过预设插件接口获取其他数据源中与所述映射关系表中各所述存储数据属性对应的目标数据,并将所述目标数据存储至所述目标数据存储源中的所述映射关系表中。在此步骤中,其他数据源的目标数据是可以被用来映射关系表中的业务数据进行整合的业务数据,但目标数据应为预设的存储数据属性与映射关系表中各业务数据的数据属性相同。也即本实施例可以整合其他数据源中的目标数据至映射关系表中,从而可以让映射关系表趋于全面。进一步地,所述步骤S60之前,还包括:预先配置所述业务规则,并将所述业务规则存储至所述自预设规则数据库,所述业务规则中包含所述待输入业务数据与所述处理结果之间的对应关系,以及用于支持所述规则引擎的规则参数。可以理解的是,待输入业务数据为通过业务规则进行数据处理时所需要使用的业务数据,若需要通过业务规则对第一对象中的业务数据进行处理,则该第一对象的业务数据中应包含该业务规则中的所有待输入业务数据;在通过业务规则处理第一对象中的业务数据之后,生成一个处理结果,即待输入业务数据对应的一个处理结果也即上述处理目标。可理解地,由于每种业务规则都具有不同的规则参数规则参数可以用代码来表示,而不同的规则参数需要不同的规则引擎去进行处理,只有在该规则引擎可以处理该业务规则的规则参数也即该规则参数支持该规则引擎时,该规则引擎才可以调用该业务规则;可理解地,业务规则中的规则参数可以包括代码与数据属性值的混合。进一步地,所述步骤S60之前,还包括:接收业务规则修改接口输入的业务规则修改信息,根据所述业务规则修改信息对所述自预设规则数据库中的所述业务规则进行修改;或接收业务规则添加接口输入的新增业务规则,将所述新增业务规则存储至所述自预设规则数据库。可以理解的是,当某项业务发生变化时,用户根据业务的变化修改业务规则,生成业务规则修改信息,并通过业务规则修改接口输入业务规则修改信息,利用业务规则修改信息对自预设数据库中相应的业务规则集中的业务规则进行修改。同理,当有新增的业务时,用户根据新增的业务编写新增业务规则,通过业务规则添加接口输入新增业务规则,将新增业务规则存储至自预设数据库中和新增业务规则对应的新增业务规则集。综上所述,上述提供了一种基于规则引擎的数据处理方法,接收包含处理目标和目标数据源的数据获取指令,从所述目标数据源获取业务数据集,所述业务数据集中包括至少一组业务数据;根据预设的Sql处理规则对所述业务数据集中的所有所述业务数据进行预处理后,得到业务数据结果集;调用分布式计算引擎遍历所述业务数据结果集,并将所述业务数据结果集中的每一组所述业务数据转换成一个第一对象;自预设规则数据库中确定与所述处理目标匹配的业务规则集,所述业务规则集中包括至少一个业务规则;根据所述第一对象中的所述业务数据确定所述业务规则集中与所述业务数据匹配的所述业务规则;根据与所述业务数据匹配的所述业务规则选取规则引擎,并通过选取的所述规则引擎调用与所述业务数据匹配的所述业务规则对所述第一对象进行处理,并获取输出的处理结果,所述处理结果与所述处理目标对应。本发明通过上述对目标数据源中的业务数据的数据处理过程,自动选取可以与业务数据业务规则匹配的规则引擎,进而根据该规则引擎调取业务规则对业务数据转换而成的第一对象进行处理,上述处理过程可以通过服务器将规则引擎与业务数据大数据紧密结合,无需充裕的大数据技术、编程专业知识及编程经验的专业人士参与处理,且规则引擎和其他拓展工具比如分布式计算引擎,各种拓展接口等能相互配合重复使用;本发明也适用于大数据的离线处理和大数据的实时处理等不同数据处理场景。应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。在一实施例中,提供一种基于规则引擎的数据处理装置,该基于规则引擎的数据处理装置与上述实施例中基于规则引擎的数据处理方法一一对应。如图7所示,该基于规则引擎的数据处理装置包括接收模块11、预处理模块12、转换模块13、第一确定模块14、第二确定模块15和获取模块16。各功能模块详细说明如下:接收模块11,用于接收包含处理目标和目标数据源的数据获取指令,从所述目标数据源获取业务数据集,所述业务数据集中包括至少一组业务数据;预处理模块12,用于根据预设的Sql处理规则对所述业务数据集中的所有所述业务数据进行预处理后,得到业务数据结果集;转换模块13,用于调用分布式计算引擎遍历所述业务数据结果集,并将所述业务数据结果集中的每一组所述业务数据转换成一个第一对象;第一确定模块14,用于自预设规则数据库中确定与所述处理目标匹配的业务规则集,所述业务规则集中包括至少一个业务规则;第二确定模块15,用于根据所述第一对象中的所述业务数据确定所述业务规则集中与所述业务数据匹配的所述业务规则;获取模块16,用于根据与所述业务数据匹配的所述业务规则选取规则引擎,并通过选取的所述规则引擎调用与所述业务数据匹配的所述业务规则对所述第一对象进行处理,并获取输出的处理结果,所述处理结果与所述处理目标对应。进一步地,所述预处理模块包括:确认子模块,用于确认对所述业务数据集进行预处理的预处理类型,所述预处理类型包括筛选处理、过滤处理和分组聚合处理中的一种或多种;调取子模块,用于根据所述预处理类型调取对应的Sql规则模板;第一获取子模块,用于获取用户输入的与所述预处理类型对应的数据属性;生成子模块,用于将所述数据属性插入所述Sql规则模板中的预设位置,生成与所述数据属性关联的Sql处理规则,所述Sql处理规则用于进行与所述预处理类型对应的预处理;测试子模块,用于通过预设的测试接口测试所述Sql处理规则是否为正确语句;执行子模块,用于若所述Sql处理规则为正确语句,则执行所述Sql处理规则并从所述测试接口返回与所述预处理类型以及所述数据属性对应的所述业务数据结果,并将所述业务数据结果放入所述业务数据结果集中;提示子模块,用于若所述Sql处理规则为错误语句,则提示所述用户所述Sql处理规则有误。进一步地,所述第二确定模块包括:判断子模块,用于判断所述业务规则集中与所述第一对象中的所述业务数据匹配的所述业务规则的数量是否大于一个;第一确定子模块,用于若所述业务规则集中与所述第一对象中的所述业务数据匹配的所述业务规则的所述数量大于一个,则将所述业务集中的所有所述业务规则确定为所述业务规则集中待匹配规则引擎的业务规则。进一步地,所述判断子模块还包括:第二获取子模块,用于若所述业务规则集中与所述第一对象中的所述业务数据匹配的所述业务规则的所述数量为零个,则获取所述业务规则集中的其他业务规则,并获取所述其他业务规则所需的待输入业务数据;转换子模块,用于根据所述第一对象中的所述业务数据与所述其他业务规则所需的所述待输入业务数据之间的转换关系调取预设的自定义函数和拦截器,并通过所述预设的自定义函数和所述拦截器将包含所述业务数据的所述第一对象转换为包含所述待输入业务数据的第二对象;第二确定子模块,用于将所述其他业务规则确定为待匹配规则引擎的业务规则。进一步地,所述转换子模块包括:调用单元,用于通过Java插件接口调用所述预设的自定义函数,并将所述第一对象中的所述业务数据输入所述预设的自定义函数中运行,得到一个运行结果,所述运行结果由多个对象组成;记录单元,用于通过所述Java插件接口调用预先设置的所述拦截器,拦截所述运行结果中预设行为对象,将除所述预设行为对象之外的所述运行结果中的其他对象记录为所述第二对象。进一步地,所述基于规则引擎的数据处理装置还包括:生成模块,用于根据所述业务数据结果集中的各组所述业务数据以及与各组所述业务数据对应的所述处理结果,生成映射关系表,并将所述映射关系表存储至目标数据存储源。进一步地,所述基于规则引擎的数据处理装置还包括:配置模块,用于预先配置所述业务规则,并将所述业务规则存储至所述自预设规则数据库,所述业务规则中包含所述待输入业务数据与所述处理结果之间的对应关系,以及用于支持所述规则引擎的规则参数。关于基于规则引擎的数据处理装置的具体限定可以参见上文中对于基于规则引擎的数据处理方法的限定,在此不再赘述。上述基于规则引擎的数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储基于规则引擎的数据处理方法中涉及到的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于规则引擎的数据处理方法。在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中基于规则引擎的数据处理方法的步骤,例如图2所示的步骤S10至步骤S60。或者,处理器执行计算机程序时实现上述实施例中基于规则引擎的数据处理装置的各模块单元的功能,例如图7所示模块11至模块16的功能。为避免重复,这里不再赘述。在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中基于规则引擎的数据处理方法的步骤,例如图2所示的步骤S10至步骤S60。或者,计算机程序被处理器执行时实现上述实施例中基于规则引擎的数据处理装置的各模块单元的功能,例如图7所示模块11至模块16的功能。为避免重复,这里不再赘述。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和或易失性存储器。非易失性存储器可包括只读存储器ROM、可编程ROMPROM、电可编程ROMEPROM、电可擦除可编程ROMEEPROM或闪存。易失性存储器可包括随机存取存储器RAM或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAMSRAM、动态RAMDRAM、同步DRAMSDRAM、双数据率SDRAMDDRSDRAM、增强型SDRAMESDRAM、同步链路SynchlinkDRAMSLDRAM、存储器总线Rambus直接RAMRDRAM、直接存储器总线动态RAMDRDRAM、以及存储器总线动态RAMRDRAM等。所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

权利要求:1.一种基于规则引擎的数据处理方法,其特征在于,包括:接收包含处理目标和目标数据源的数据获取指令,从所述目标数据源获取业务数据集,所述业务数据集中包括至少一组业务数据;根据预设的Sql处理规则对所述业务数据集中的所有所述业务数据进行预处理后,得到业务数据结果集;调用分布式计算引擎遍历所述业务数据结果集,并将所述业务数据结果集中的每一组所述业务数据转换成一个第一对象;自预设规则数据库中确定与所述处理目标匹配的业务规则集,所述业务规则集中包括至少一个业务规则;根据所述第一对象中的所述业务数据确定所述业务规则集中与所述业务数据匹配的所述业务规则;根据与所述业务数据匹配的所述业务规则选取规则引擎,并通过选取的所述规则引擎调用与所述业务数据匹配的所述业务规则对所述第一对象进行处理,并获取输出的处理结果,所述处理结果与所述处理目标对应。2.根据权利要求1所述的基于规则引擎的数据处理方法,其特征在于,所述根据预设的Sql处理规则对所述业务数据集中的所有所述业务数据进行预处理后,得到业务数据结果集,包括:确认对所述业务数据集进行预处理的预处理类型,所述预处理类型包括筛选处理、过滤处理和分组聚合处理中的一种或多种;根据所述预处理类型调取对应的Sql规则模板;获取用户输入的与所述预处理类型对应的数据属性;将所述数据属性插入所述Sql规则模板中的预设位置,生成与所述数据属性关联的Sql处理规则,所述Sql处理规则用于进行与所述预处理类型对应的预处理;通过预设的测试接口测试所述Sql处理规则是否为正确语句;若所述Sql处理规则为正确语句,则执行所述Sql处理规则并从所述测试接口返回与所述预处理类型以及所述数据属性对应的所述业务数据结果,并将所述业务数据结果放入所述业务数据结果集中;若所述Sql处理规则为错误语句,则提示所述用户所述Sql处理规则有误。3.根据权利要求1所述的基于规则引擎的数据处理方法,其特征在于,所述根据所述第一对象中的所述业务数据确定所述业务规则集中与所述业务数据匹配的所述业务规则,包括:判断所述业务规则集中与所述第一对象中的所述业务数据匹配的所述业务规则的数量是否大于一个;若所述业务规则集中与所述第一对象中的所述业务数据匹配的所述业务规则的所述数量大于一个,则将所述业务集中的所有所述业务规则确定为所述业务规则集中待匹配规则引擎的业务规则。4.根据权利要求3所述的基于规则引擎的数据处理方法,其特征在于,所述判断所述业务规则集中与所述第一对象中的所述业务数据匹配的所述业务规则的数量是否大于一个之后,还包括:若所述业务规则集中与所述第一对象中的所述业务数据匹配的所述业务规则的所述数量为零个,则获取所述业务规则集中的其他业务规则,并获取所述其他业务规则所需的待输入业务数据;根据所述第一对象中的所述业务数据与所述其他业务规则所需的所述待输入业务数据之间的转换关系调取预设的自定义函数和拦截器,并通过所述预设的自定义函数和所述拦截器将包含所述业务数据的所述第一对象转换为包含所述待输入业务数据的第二对象;将所述其他业务规则确定为待匹配规则引擎的业务规则。5.根据权利要求4所述的基于规则引擎的数据处理方法,其特征在于,所述根据所述第一对象中的所述业务数据与所述其他业务规则所需的所述待输入业务数据之间的转换关系调取预设的自定义函数和拦截器,并通过所述预设的自定义函数和所述拦截器将包含所述业务数据的所述第一对象转换为包含所述待输入业务数据的第二对象,包括:通过Java插件接口调用所述预设的自定义函数,并将所述第一对象中的所述业务数据输入所述预设的自定义函数中运行,得到一个运行结果,所述运行结果由多个对象组成;通过所述Java插件接口调用预先设置的所述拦截器,拦截所述运行结果中预设行为对象,将除所述预设行为对象之外的所述运行结果中的其他对象记录为所述第二对象。6.根据权利要求1所述的基于规则引擎的数据处理方法,其特征在于,所述根据与所述业务数据匹配的所述业务规则选取规则引擎,并通过选取的所述规则引擎调用与所述业务数据匹配的所述业务规则对所述第一对象进行处理,并获取输出的处理结果之后,还包括:根据所述业务数据结果集中的各组所述业务数据以及与各组所述业务数据对应的所述处理结果,生成映射关系表,并将所述映射关系表存储至目标数据存储源。7.根据权利要求1所述的基于规则引擎的数据处理方法,其特征在于,所述根据与所述业务数据匹配的所述业务规则选取规则引擎,并通过选取的所述规则引擎调用与所述业务数据匹配的所述业务规则对所述第一对象进行处理,并获取输出的处理结果之前,还包括:预先配置所述业务规则,并将所述业务规则存储至所述自预设规则数据库,所述业务规则中包含所述待输入业务数据与所述处理结果之间的对应关系,以及用于支持所述规则引擎的规则参数。8.一种基于规则引擎的数据处理装置,其特征在于,包括:接收模块,用于接收包含处理目标和目标数据源的数据获取指令,从所述目标数据源获取业务数据集,所述业务数据集中包括至少一组业务数据;预处理模块,用于根据预设的Sql处理规则对所述业务数据集中的所有所述业务数据进行预处理后,得到业务数据结果集;转换模块,用于调用分布式计算引擎遍历所述业务数据结果集,并将所述业务数据结果集中的每一组所述业务数据转换成一个第一对象;第一确定模块,用于自预设规则数据库中确定与所述处理目标匹配的业务规则集,所述业务规则集中包括至少一个业务规则;第二确定模块,用于根据所述第一对象中的所述业务数据确定所述业务规则集中与所述业务数据匹配的所述业务规则;获取模块,用于根据与所述业务数据匹配的所述业务规则选取规则引擎,并通过选取的所述规则引擎调用与所述业务数据匹配的所述业务规则对所述第一对象进行处理,并获取输出的处理结果,所述处理结果与所述处理目标对应。9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述基于规则引擎的数据处理方法。10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述基于规则引擎的数据处理方法。

百度查询: 平安银行股份有限公司 基于规则引擎的数据处理方法、装置、设备及存储介质

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。