本申请涉及计算机技术领域,特别是涉及一种数据处理方法、装置、计算机设备和存储介质。
背景技术:
随着信息技术的发展,目前所需处理的数据类型和数量越来越多,如何高效对数据进行处理已经成为难题。
以与评分卡相关的数据为例,评分卡作为规则引擎一个重要的功能,很多规则引擎都会提供类似功能。常用的评分卡包括行为评分卡、信用评分卡、信贷评分卡等。这些评分卡中分别设置有不同的评分条件以及对应的分数取值,在执行评分卡时,通过对多个评分条件单独打分,最终考虑所有评分条件之间相关性,得出最终评分结果,再以最终评分结果作为引擎后续操作的依据。
可见,评分卡相关的数据处理效率影响着生产、生活中多个行业,传统评分卡相关数据处理都是简单依赖历史经验数据或者人工操作进行处理,导致其数据处理效率低且处理结果不准确。
技术实现要素:
基于此,有必要针对上述技术问题,提供一种高效且准确处理评分卡相关数据的数据处理方法、装置、计算机设备和存储介质。
一种数据处理方法,所述方法包括:
访问数据源服务器并调用存储在所述数据源服务器的数据源;
解析所述数据源的数据结构,定义变量组,其中所述变量组用于定义所述数据源中数据的结构;
根据所述变量组获取方法库,其中所述方法库存储有处理所述变量组的方法;
根据所述变量组、方法库以及数据源配置评分规则;
获取待处理数据,根据评分规则获取待处理数据的处理结果。
在其中一个实施例中,所述获取待处理数据,根据评分规则获取待处理数据的处理结果包括:
将所述评分规则中携带的结构化数据转换为可执行脚本;
获取待处理数据,通过所述可执行脚本调用所述评分规则,得到所述待处理数据的处理结果。
在其中一个实施例中,所述将所述评分规则中携带的结构化数据转换为可执行脚本包括:
解析所述评分规则中携带的结构化数据,获取核心结构节点;
获取所述核心结构节点包含的业务变量组以及条件表达式;
将所述业务变量组和所述条件表达式拼接成表格,通过json(javascriptobjectnotation,js对象简谱)结构规则引擎解析所述表格的结构,生成可执行脚本数据。
在其中一个实施例中,所述核心结构节点包括columns节点和cells节点,所述获取所述核心结构节点包含的业务变量组以及条件表达式包括:
根据columns节点获得业务变量组,根据cells节点获得条件表达式;
所述将所述业务变量组和所述条件表达式拼接成表格,通过json结构规则引擎解析所述表格的结构,生成可执行脚本数据包括:
将所述columns节点和所述cells节点拼接成表格,通过json结构规则引擎解析所述表格的结构,生成可执行脚本数据。
在其中一个实施例中,所述将所述columns节点和所述cells节点拼接成表格,通过json结构规则引擎解析所述表格的结构,生成可执行脚本数据包括:
以所述columns节点作为列集合、并以所述cells节点作为行集合,将所述columns节点和所述cells节点拼接成表格;
根据所述表格中所述columns节点,识别业务变量组中已经合并的单元格;
缓存已合并的单元格,获取合并单元格的坐标;
根据所述合并单元格的坐标,获取合并单元格的条件表达式;
根据所述条件表达式表达式,得到所述合并单元格的可执行脚本。
在其中一个实施例中,所述缓存已合并的单元格包括:
采用临时map缓存已经合并过的单元格。
在其中一个实施例中,所述获取合并单元格的坐标包括:
以各单元格的坐标作为关键词,所跨起始行和结束行的行数范围作为数值,遍历变量组中每个单元格;
若当前单元格对应的起始列不是第一列,则判断所述当前单元格所在的行数是否处于所述表格中行数范围内;
根据判断结果,获得合并单元格坐标。
一种数据处理装置,所述装置包括:
数据源模块,用于访问数据源服务器并调用存储在所述数据源服务器的数据源;
变量组模块,用于解析所述数据源的数据结构,定义变量组,其中所述变量组用于定义所述数据源中数据的结构;
方法库模块,用于根据所述变量组获取方法库,其中所述方法库存储有处理所述变量组的方法;
配置模块,用于根据所述变量组、方法库以及数据源配置评分规则;
处理模块,用于获取待处理数据,根据评分规则获取待处理数据的处理结果。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的方法的步骤。
上述数据处理方法、装置、计算机设备和存储介质,通过访问数据源服务器获取数据源,对数据源结构进行解析定义变量组,再获取处理变量组的方法构建的方法库,基于数据源、变量组以及方法库配置评分规则,当需要进行数据处理时,获取待处理数据,根据评分规则获取待处理数据的处理结果,其无需依赖人工操作,又由于评分规则基于数据源服务器中存储数据源构建,数据源服务器中存储数据变化时,评分规则也可以相应动态调整,以使数据处理符合当前场景,从而实现数据的高效且准确处理。
附图说明
图1为一个实施例中数据处理方法的应用环境图;
图2为一个实施例中数据处理方法的流程示意图;
图3为另一个实施例中数据处理方法的流程示意图;
图4为一个实施例中数据处理装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的数据处理方法,可以应用于如图1所示的应用环境中。其中,服务器102通过网络与数据源服务器104通过网络进行通信。终端访问数据源服务器104并调用存储在数据源服务器104的数据源,解析该数据源的数据结构,定义变量,该变量组用于定义数据源中数据的结构,根据变量组获取方法库,在该方法库中存储有处理该变量组的方法,根据变量组、方法库以及数据源配置评分规则,当服务器102获取到待处理数据时,根据评分规则获取待处理数据的处理结果。
在一个实施例中,如图2所示,提供了一种数据处理方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
s100:访问数据源服务器并调用存储在数据源服务器的数据源。
数据源是指后续操作需要调用的基础数据,终端通过访问数据源服务器,调用存储在数据源服务器中的数据源。数据源可以是预先存储在数据源服务器中还可以是即时更新导入到数据源服务器的。具体来说,终端可以发送访问请求至数据源服务器,数据源服务器返回携带有数据源的返回消息至终端,实现终端访问数据源服务器并调用存储在数据源服务器的数据源。在实际应用中,不同的应用场景可以设置不同的数据源服务器,服务器可以通过访问这些不同应用场景对应的数据源服务器获取当前应用场景所需的数据源,例如,当针对信贷评分应用场景下,服务器可以访问信贷数据源服务器,从信贷数据源服务器中获取包括对象年龄、身份、收入区间、历史信贷逾期情况等的数据源。
s200:解析数据源的数据结构,定义变量组,其中变量组用于定义数据源中数据的结构。
变量组用于定义数据源只能够数据的结构。具体来说,服务器在获取到数据源之后,提取数据源中携带的结构体函数,根据结构体函数分析数据源的数据结构,定义变量组。
s300:根据变量组获取方法库,其中方法库存储有处理变量组的方法。
方法库中存储有多个方法,这些方法用于处理变量组。
s400:根据变量组、方法库以及数据源配置评分规则。
在得到变量组、方法库以及数据源之后可以基于这些数据配置评分规则。具体来说,评分规则可以由评分卡来体现,例如在信贷业务场景下时,得到评分规则可以为信贷评分卡。
s500:获取待处理数据,根据评分规则获取待处理数据的处理结果。
服务器获取外部导入的待处理数据,根据评分规则对待处理数据进行处理,得到处理结果,处理结果具体可以为评分分值。
上述数据处理方法,通过访问数据源服务器获取数据源,对数据源结构进行解析定义变量组,再获取处理变量组的方法构建的方法库,基于数据源、变量组以及方法库配置评分规则,当需要进行数据处理时,获取待处理数据,根据评分规则获取待处理数据的处理结果,其无需依赖人工操作,又由于评分规则基于数据源服务器中存储数据源构建,数据源服务器中存储数据变化时,评分规则也可以相应动态调整,以使数据处理符合当前场景,从而实现数据的高效且准确处理。
如图3所示,在其中一个实施例中,步骤s500包括:
s520:将评分规则中携带的结构化数据转换为可执行脚本。
s540:获取待处理数据,通过可执行脚本调用评分规则,得到待处理数据的处理结果。
可执行脚本用于在处理待处理数据时,调用评分规则,得到处理结果。具体来说,评分规则可以通过评分卡来体现,评分规则中携带的结构化数据可以为评分卡的结构化数据,将评分卡的结构化数据转换为可执行脚本。
在其中一个是实例中,将评分规则中携带的结构化数据转换为可执行脚本包括:解析评分规则中携带的结构化数据,获取核心结构节点;获取核心结构节点包含的业务变量组以及条件表达式;将业务变量组和条件表达式拼接成表格,通过json结构规则引擎解析表格的结构,生成可执行脚本数据。
对评分规则中携带的结构化数据进行解析,得到其核心结构节点,获取核心结构节点包含的业务变量组以及条件表达式,将业务变量组和条件表达式进行拼接成表格,该表格可以以json结构返回规则引擎,json结构规则引擎根据这个表格解析成可执行脚本,得到用于执行评分卡的可执行脚本数据。具体来说,评分卡的核心结构节点包括评分卡行集合和列集合,在列集合中包括含所需用到的业务变量组,在行集合中包含有条件表达式。具体来说,评分卡中核心结构节点包括columns节点和cells节点;根据columns节点获得业务变量组,根据cells节点获得条件表达式,根据columns节点和cells节点拼接,得到可执行脚本。上述拼接的过程具体可以是根据columns节点,识别业务变量组中已经合并的单元格;缓存已合并的单元格,获取合并单元格的坐标;根据合并单元格的坐标,获取合并单元格的条件表达式;根据条件表达式表达式,得到合并单元格的可执行脚本。非必要的,在拼接过程中可以采用临时map缓存已经合并过的单元格。
在其中一个实施例中,获取合并单元格的坐标包括:以各单元格的坐标作为关键词,所跨起始行和结束行的行数范围作为数值,遍历变量组中每个单元格;若当前单元格对应的起始列不是第一列,则判断当前单元格所在的行数是否处于初始评分卡中行数范围内;根据判断结果,获得合并单元格坐标。
为详细说明上述实施例中,解析评分规则的结构化数据为可执行脚本涉及的具体处理过程,下面将以评分卡体现评分规则,并采用针对评分卡的结构化数据为可执行脚本为应用实例进行描述。
在应用实例中,某个评分卡结构如下:
核心结构节点有columns、cells,columns节点是评分卡的列集合,其中包含需要用到的所有业务变量组,而cells节点是评分卡的行集合,其中每个元素都是一个条件表达式,而这一个个条件表达式最终会拼凑成一个完整的可计算出评分的可执行脚本。
columns节点是列集合节点,对应着评分卡的列,其中每一个元素代表着一个业务变量组,如上表格,columns节点的值应为[变量组1,变量组2,得分];最后一列是固定的,为得分列。cells节点是行集合节点,结构是一个二维数组,其中每一个元素均代表着一行,每行又有多个单元格,每个单元格均是一个条件表达式,最后一行也是固定的,为得分值;如上表格,cells节点为[[1,2,3],[4,5],[6],[7,8,9]]。
columns节点的值应为[变量组1,变量组2,得分];最后一列是固定的,为得分列,cells节点是行集合节点。拼接时,如上述表格中4的条件表达式时就要首先获取到1的条件表达式,而遍历二维数组的时候,每一行所含单元格并不会包含上一行中合并过的单元格。通过一个map暂存合并过的单元格,并以单元格的坐标作为key(关键词),所跨起始行和结束行的行数范围作为value(数值),每次遍历的时候,如果起始列不是第一列,则判断当前单元格所在的行数是不是在表格行数范围内,然后反推出合并的单元格的坐标,从而获得该合并单元格的条件表达式,并且拼接在当前单元格的条件表达式的前面。每个单元格的条件表达式之间的关系都是并且的关系。以此类推,可以拼接出完整的可执行脚本。
应该理解的是,虽然图2-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
如图4所示,一种数据处理装置,装置包括:
数据源模块100,用于访问数据源服务器并调用存储在数据源服务器的数据源;
变量组模块200,用于解析数据源的数据结构,定义变量组,其中变量组用于定义数据源中数据的结构;
方法库模块300,用于根据变量组获取方法库,其中方法库存储有处理变量组的方法;
配置模块400,用于根据变量组、方法库以及数据源配置评分规则;
处理模块500,用于获取待处理数据,根据评分规则获取待处理数据的处理结果。
上述数据处理装置,通过访问数据源服务器获取数据源,对数据源结构进行解析定义变量组,再获取处理变量组的方法构建的方法库,基于数据源、变量组以及方法库配置评分规则,当需要进行数据处理时,获取待处理数据,根据评分规则获取待处理数据的处理结果,其无需依赖人工操作,又由于评分规则基于数据源服务器中存储数据源构建,数据源服务器中存储数据变化时,评分规则也可以相应动态调整,以使数据处理符合当前场景,从而实现数据的高效且准确处理。
在其中一个实施例中,处理模块500还用于将评分规则中携带的结构化数据转换为可执行脚本;获取待处理数据,通过可执行脚本调用评分规则,得到待处理数据的处理结果。
在其中一个实施例中,所处理模块500还用于解析评分规则中携带的结构化数据,获取核心结构节点;获取核心结构节点包含的业务变量组以及条件表达式;将业务变量组和条件表达式拼接成表格,通过json结构规则引擎解析表格的结构,生成可执行脚本数据。
在其中一个实施例中,核心结构节点包括columns节点和cells节点,处理模块500还用于根据columns节点获得业务变量组,根据cells节点获得条件表达式;将columns节点和cells节点拼接成表格,通过json结构规则引擎解析表格的结构,生成可执行脚本数据。
在其中一个实施例中,处理模块500还用于以columns节点作为列集合、并以cells节点作为行集合,将columns节点和cells节点拼接成表格;根据表格中columns节点,识别业务变量组中已经合并的单元格;缓存已合并的单元格,获取合并单元格的坐标;根据合并单元格的坐标,获取合并单元格的条件表达式;根据条件表达式表达式,得到合并单元格的可执行脚本。
在其中一个实施例中,处理模块500还用于采用临时map缓存已经合并过的单元格。
在其中一个实施例中,处理模块500还用于以各单元格的坐标作为关键词,所跨起始行和结束行的行数范围作为数值,遍历变量组中每个单元格;若当前单元格对应的起始列不是第一列,则判断当前单元格所在的行数是否处于表格中行数范围内;根据判断结果,获得合并单元格坐标。
关于数据处理装置的具体限定可以参见上文中对于数据处理方法的限定,在此不再赘述。上述数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储有业务场景与对应的初始评分卡以及所需数据等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据处理方法。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
访问数据源服务器并调用存储在数据源服务器的数据源;
解析数据源的数据结构,定义变量组,其中变量组用于定义数据源中数据的结构;
根据变量组获取方法库,其中方法库存储有处理变量组的方法;
根据变量组、方法库以及数据源配置评分规则;
获取待处理数据,根据评分规则获取待处理数据的处理结果。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
将评分规则中携带的结构化数据转换为可执行脚本;获取待处理数据,通过可执行脚本调用评分规则,得到待处理数据的处理结果。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
解析评分规则中携带的结构化数据,获取核心结构节点;获取核心结构节点包含的业务变量组以及条件表达式;将业务变量组和条件表达式拼接成表格,通过json结构规则引擎解析表格的结构,生成可执行脚本数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
根据columns节点获得业务变量组,根据cells节点获得条件表达式;将业务变量组和条件表达式拼接成表格,通过json结构规则引擎解析表格的结构,生成可执行脚本数据包括:将columns节点和cells节点拼接成表格,通过json结构规则引擎解析表格的结构,生成可执行脚本数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:以columns节点作为列集合、并以cells节点作为行集合,将columns节点和cells节点拼接成表格;根据表格中columns节点,识别业务变量组中已经合并的单元格;缓存已合并的单元格,获取合并单元格的坐标;根据合并单元格的坐标,获取合并单元格的条件表达式;根据条件表达式表达式,得到合并单元格的可执行脚本。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
采用临时map缓存已经合并过的单元格。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
以各单元格的坐标作为关键词,所跨起始行和结束行的行数范围作为数值,遍历变量组中每个单元格;若当前单元格对应的起始列不是第一列,则判断当前单元格所在的行数是否处于表格中行数范围内;根据判断结果,获得合并单元格坐标。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
访问数据源服务器并调用存储在数据源服务器的数据源;
解析数据源的数据结构,定义变量组,其中变量组用于定义数据源中数据的结构;
根据变量组获取方法库,其中方法库存储有处理变量组的方法;
根据变量组、方法库以及数据源配置评分规则;
获取待处理数据,根据评分规则获取待处理数据的处理结果。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
将评分规则中携带的结构化数据转换为可执行脚本;获取待处理数据,通过可执行脚本调用评分规则,得到待处理数据的处理结果。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
解析评分规则中携带的结构化数据,获取核心结构节点;获取核心结构节点包含的业务变量组以及条件表达式;将业务变量组和条件表达式拼接成表格,通过json结构规则引擎解析表格的结构,生成可执行脚本数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
根据columns节点获得业务变量组,根据cells节点获得条件表达式;将业务变量组和条件表达式拼接成表格,通过json结构规则引擎解析表格的结构,生成可执行脚本数据包括:将columns节点和cells节点拼接成表格,通过json结构规则引擎解析表格的结构,生成可执行脚本数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:以columns节点作为列集合、并以cells节点作为行集合,将columns节点和cells节点拼接成表格;根据表格中columns节点,识别业务变量组中已经合并的单元格;缓存已合并的单元格,获取合并单元格的坐标;根据合并单元格的坐标,获取合并单元格的条件表达式;根据条件表达式表达式,得到合并单元格的可执行脚本。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
采用临时map缓存已经合并过的单元格。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
以各单元格的坐标作为关键词,所跨起始行和结束行的行数范围作为数值,遍历变量组中每个单元格;若当前单元格对应的起始列不是第一列,则判断当前单元格所在的行数是否处于表格中行数范围内;根据判断结果,获得合并单元格坐标。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。