业务数据查询方法、装置、计算机设备及存储介质与流程

文档序号:16608865发布日期:2019-01-14 21:24阅读:140来源:国知局
业务数据查询方法、装置、计算机设备及存储介质与流程

本发明属于数据处理领域,更具体地说,是涉及一种业务数据查询方法、装置、计算机设备及存储介质。



背景技术:

在业务系统中,需要通过相关算法来实现对相关业务数据进行计算,而算法是通过代码的形式写入到系统中来实现的。

由于目前系统中算法的步骤比较多,相应地代码也比较多,这样在计算相关数据时,系统资源的消耗就比较大,容易导致系统运行速度慢,返回计算的结果的速度也慢,效率较低。另外,目前在对业务数据进行查询时,系统的算法只能支持逐单进行查询,查询的效率比较低。



技术实现要素:

本发明实施例提供一种业务数据查询方法、装置、计算机设备及存储介质,以解决业务数据计算效率比较低的问题。

一种业务数据查询方法,包括:

接收业务查询字段和目标业务字段,根据所述业务查询字段和所述目标业务字段获取对应的业务算法;

获取所述业务算法对应的算法代码;

若所述算法代码中存在相同结构的语句,则合并所述相同结构的语句;

执行合并所述相同结构的语句后的所述算法代码,获取与所述业务查询字段关联的目标业务数据。

一种业务数据查询装置,包括:

业务算法获取模块,用于接收业务查询字段和目标业务字段,根据所述业务查询字段和所述目标业务字段获取对应的业务算法;

算法代码获取模块,用于获取所述业务算法对应的算法代码;

语句合并模块,用于若所述算法代码中存在相同结构的语句,则合并所述相同结构的语句;

目标业务数据获取模块,用于执行合并所述相同结构的语句后的所述算法代码,获取与所述业务查询字段关联的目标业务数据。

一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述业务数据查询方法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述业务数据查询方法的步骤。

上述业务数据查询方法、装置、计算机设备及存储介质,通过接收业务查询字段和目标业务字段,根据业务查询字段和目标业务字段获取对应的业务算法;然后获取业务算法在服务端中对应的算法代码,根据标识获取到对应的算法代码后,对算法代码中的语句进行判断,如果算法代码中存在相同结构的语句,则合并相同结构的语句,从而减少算法代码对应的步骤数,提高系统运算的效率;最后执行合并相同结构的语句后的算法代码,获取与业务查询字段关联的目标业务数据返回到客户端,供用户进行使用。通过对算法代码对应的步骤进行简化,减少游标数的同时减少了系统运算的次数,提高了系统的运行效率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例中业务数据查询方法的一应用环境示意图;

图2是本发明一实施例中业务数据查询方法的一流程图;

图3是本发明一实施例中业务数据查询方法的另一流程图;

图4是本发明一实施例中业务数据查询方法的另一流程图;

图5是本发明一实施例中业务数据查询装置的一原理框图;

图6是本发明一实施例中计算机设备的一示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请提供的业务数据查询方法,可应用在如图1的应用环境中,其中,客户端通过网络与服务端进行通信,客户端接收业务查询字段和目标业务字段并发送至服务端,服务端根据业务查询字段和目标业务字段获取对应的业务算法,然后服务端获取业务算法对应的算法代码,若算法代码中存在相同结构的语句,则合并相同结构的语句;最后服务端执行合并相同结构的语句后的算法代码,获取与业务查询字段关联的目标业务数据。其中,客户端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务端可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一实施例中,如图2所示,提供一种业务数据查询方法,以该方法应用在图1中的服务端为例进行说明,包括如下步骤:

s10:接收业务查询字段和目标业务字段,根据业务查询字段和目标业务字段获取对应的业务算法。

其中,业务查询字段是指在业务系统中进行业务相关数据查询时输入的字段数据,例如,要查询保险理赔金的业务数据时,输入保单号作为业务查询字段。可选地,业务查询字段由客户端输入,经客户端发送到服务端。目标业务字段是指需要经过查询获得的字段,例如,理赔金的计算。可选地,目标业务字段也是由客户端输入,经客户端发送到服务端。业务算法是指业务系统中用于计算业务相关数据的算法,例如保险金算法。可选地,业务算法存储在服务端的数据库中。

具体地,接收业务查询字段和目标业务字段,将业务查询字段和目标业务字段发送至服务端,服务端根据业务查询字段和目标业务字段从数据库中获取相应的业务算法。

例如:用户通过客户端输入保单号作为业务查询字段,输入理赔金作为目标业务字段,客户端将保单号和理赔金字段发送至服务端后,服务端根据保单号获取到对应的保单类型、保单人、保单人年龄等信息,再根据这些信息从数据库中获取与该保单号相对应的理赔金的业务算法。

应理解,进行业务计算时,输入条件的不同,采用的业务算法也是不一样的。例如,在进行理赔金的计算时,如果年龄在18-60岁之间时用算法a进行计算,如果年龄在60岁以上用算法b进行计算,若保单号对应的保单人年龄为65岁,则应该用算法b进行计算。

s20:获取业务算法对应的算法代码。

其中,算法代码是指业务系统中用于执行相应的业务算法的代码。可选地,算法代码存储在服务端,与业务算法具有一一对应的标识,即根据业务算法标识可以获取对应的算法代码。

具体地,获取业务算法标识,根据业务算法标识从服务端中获取与业务算法标识相对应的算法代码。可选地,业务算法标识为业务算法在服务端的顺序号,算法代码存储在服务端时也是按顺序号进行存储的,并且与业务算法的顺序号一一对应,这样根据业务算法标识就可以获取对应的算法代码。

s30:若算法代码中存在相同结构的语句,则合并相同结构的语句。

其中,相同结构的语句是指在算法代码的步骤中具有相同数据库语言结构的算法语句。算法代码的步骤是以游标来区分的,一个游标的开始代表一个算法代码的步骤的开始。可选地,相同结构的语句是指算法代码中存在相同数据库语言结构且操作相同的数据表的语句。其中,数据表是指在算法代码中具体调用的数据表。

具体地,判断业务算法对应的算法代码中是否存在相同结构的语句,如果有,则将存在相同结构的算法语句进行合并,从而减少业务算法在算法代码中的步骤数,即减少游标数。

在一个具体的实施方式中,在合并相同结构的算法代码时,服务端采用结构化查询语言(structuredquerylanguage,简称sql)中的unionall的公式将具有相同结构的语句合并在一起,从而减少游标数。

例如,以理赔金计算为例,运算逻辑为:当月理赔金=当月理赔增量-历史理赔,而原来部分的算法代码为:

步骤1:cursor......select当月理赔增量金额

from理赔表

where条件1

and条件2

and条件3

步骤2:cursor......select历史理赔金额

from理赔表

where条件4

and条件5

and条件6

以上代码的意思是从理赔表中分别取出当月理赔增量金额和历史理赔金额。由于用到的表格都是相同的数据表(理赔表),采用的sql的结构也相同(select、from、where和and),因此可以判定以上算法步骤中存在相同结构的语句。

因此,可以采用sql中的unionall公式将存在相同结构的算法步骤进行合并。

以下是用unionall公式将上面例子中的步骤进行合并后的部分代码:

步骤1:cursor......select当月理赔增量金额

from理赔表

where条件1

and条件2

and条件3

unionall

select历史理赔金额

from理赔表

where条件4

and条件5

and条件6

应理解,在系统运算时,是根据算法步骤数即游标数来决定执行的次数,即游标数越多,系统运算时执行的次数越多,系统资源消耗越大。由于业务系统中涉及的数据量很大,因此在运算时,特别是批量运算,如果运算次数过多,很容易导致业务系统的性能下降。因此,通过unionall公式对算法步骤进行合并,可以减少游标数,提高系统运算效率。

s40:执行合并相同结构的语句后的算法代码,获取与业务查询字段关联的目标业务数据。

其中,目标业务数据是指根据业务查询字段关联的基础数据返回的与目标业务字段相对应的数据,业务查询字段关联的基础数据存储于服务端的数据库中,可通过业务查询字段从数据库中获取到,当执行算法代码时,服务端先根据业务查询字段从数据库中获取关联的基础数据,然后根据基础数据返回相对应的目标业务数据。例如,若目标业务字段是理赔金,业务查询字段是保单号,与业务查询字段关联的基础数据为保单人年龄、性别、参保年限等等数据,则目标业务数据即为根据理赔金的业务算法和保单号对应的基础数据返回的具体运算结果(理赔金的数值)。

具体地,根据业务查询字段从数据库中返回关联的基础数据,然后执行合并相同结构的语句后的算法代码,根据业务查询字段关联的基础数据返回目标业务数据。

例如,服务端接收到保单号的业务查询字段和理赔金的目标业务字段,根据保单号获取到具体的基础数据,执行根据步骤s30合并相同结构的语句后得到的算法代码,根据基础数据返回具体的运算结果,即为理赔金的数值(目标业务数据)。

在图2对应的实施例中,接收业务查询字段和目标业务字段,根据业务查询字段和目标业务字段获取对应的业务算法;然后获取业务算法在服务端中对应的算法代码,根据标识获取到对应的算法代码后,对算法代码中的语句进行判断,如果算法代码中存在相同结构的语句,则合并相同结构的语句,从而减少算法代码对应的步骤数,提高系统运算的效率;最后执行合并相同结构的语句后的算法代码,获取与业务查询字段关联的目标业务数据返回到客户端,供用户进行使用。通过对算法代码对应的步骤进行简化,减少游标数的同时减少了系统运算的次数,提高了系统的运行效率。

在一实施例中,如图3所示,步骤s10中,即接收业务查询字段和目标业务字段,根据业务查询字段和目标业务字段获取对应的业务算法,具体包括如下步骤:

s11:接收业务查询字段,根据业务查询字段获取算法参数。

其中,算法参数是指用于判断采用何种业务算法的参数。例如:保单号、保单人性别和保单人年龄等等。可选地,业务查询字段为其中一个算法参数。应理解,算法参数的不同,会导致采用的业务算法的不同,例如,保单人的性别不同或者年龄的不同会导致采用的业务算法不同。

具体地,客户端接收业务查询字段,将接收的业务查询字段发送至服务端后,服务端根据业务查询字段获取与业务查询字段相关的算法参数。

例如,输入保单号作为业务查询字段,服务端根据接收的保单号从数据库中返回与该保单号相关的保单人性别、年龄和参保年限等等算法参数。

s12:获取算法配置表,整合算法配置表,得到算法配置总表。

其中,算法配置表是指包含业务算法及相应的算法参数的表格,例如算法配置表包括算法主表和算法条件表。可选地,算法配置表存储于服务端的数据库中,基于表格名称或字段采用数据库语言可以调取相应的算法配置表。算法配置总表是指对算法配置表整合之后得到的新表格。

具体地,基于算法配置表的名称或字段采用数据库语言从数据库中调取算法配置表,用数据库语言将算法配置表整合为一个新的表格,即算法配置总表。

可选地,可以用sql中的withas指令将算法配置表进行整合。其中,withas指令可以通过相同的字段将两个以上的表格进行关联整合成一个表格。例如,算法配置表a和算法配置表b具有相同的c字段,则可以采用withas指令根据c字段将算法配置表a和算法配置表b整合成算法配置总表。

应理解,由于算法条件的不同,对应的采用的业务算法也是不一样的,因此,在选择业务算法时,例如算法配置表包括算法主表和算法条件表时,既要用到算法主表也要用到算法条件表。在步骤s12中,通过将算法配置表整合为算法配置总表,则算法配置总表既包括了业务算法也包括了业务算法相关的算法参数,方便了业务算法的取用。

s13:接收目标业务字段,根据算法参数和目标业务字段从算法配置总表中获取对应的业务算法。

具体地,接收目标业务字段,根据业务查询字段获得的算法参数和目标业务字段,判断算法配置总表中是否有符合这些条件的业务算法,若有,则获取该业务算法。

例如,根据保单号获取到保单人的性别为男,年龄大于65周岁,需要计算的数据为理赔金,即目标业务字段为理赔金,则从算法配置总表中根据这些条件获取符合条件的理赔金的业务算法。

在图3对应的实施例中,通过接收业务查询字段,根据业务查询字段从服务端的数据库中获取算法参数;然后将算法配置表整合成算法配置总表;接收目标业务字段,再根据算法参数和目标业务字段从算法配置总表中获取对应的业务算法。通过将算法配置表整合成算法配置总表,可以方便业务算法的取用,相应地,算法代码中对算法配置表的调用次数减少,提高了运算的效率。

在一个实施中,如图4所示,步骤s30中,即若算法代码中存在相同结构的语句,则合并相同结构的语句,包括以下步骤:

s31:若算法代码中存在相同数据库语言结构且操作相同的数据表的语句,则该语句为相同结构的语句。

具体地,将业务算法中包括的算法步骤进行语法扫描,获取数据库语言的结构。例如select、from和where等语法用词以及出现的位置。具体地,可以采用indexof()方法来查找对应的字符串(“select”、“from”或“where”等)来获取数据库语言的结构。其中,数据表是指from语法用词后面跟的数据表,表示这些语句指向的数据表,即从该数据表获取数据。如果两个步骤间采用的数据库语句相同,且操作的数据表都是指向相同的数据表,则判定两个算法步骤间的语句为相同结构的语句。

例如:

步骤1:cursor......select当月理赔增量金额

from理赔表

where条件1

and条件2

and条件3

步骤2:cursor......select历史理赔金额

from理赔表

where条件4

and条件5

and条件6

将以上两个步骤通过语法扫描后比较可知,它们都是采用相同的select、from、where和and的结构的语句,且操作的数据表都是指向理赔表,即从理赔表中获取相应的数据,因此,可以判定这两个算法步骤是采用相同结构的语句。

s32:采用数据库语言合并该相同结构的语句。

具体地,当判断两个算法步骤采用相同结构的语句时,获取两个算法步骤的标识,根据算法的标识获取相应的算法代码的起始位置;然后采用数据库语言中的合并语法将两个算法步骤的代码进行头尾相接完成合并。其中,合并语法可以采用sql中的unionall公式将存在相同结构的算法步骤进行合并,从而减少算法代码中的游标数。

在图4对应的实施例中,通过判断算法代码是否存在相同结构的语句,若存在则采用unionall公式将相同结构的语句进行合并,可以减少业务算法对应的算法步骤数,提高运算的效率。

在一实施例中,步骤s10中,即接收业务查询字段和目标业务字段,根据业务查询字段和目标业务字段获取对应的业务算法,还包括:

当业务查询字段包括业务字段名和业务字段值时,基于业务字段名获取每一业务字段值,根据每一业务字段值获取算法参数,再根据算法参数和目标业务字段从算法配置总表中获取对应的业务算法。

其中,业务字段名是指在以关系模型为数据结构的二维表中每一列的标识。业务字段值是指业务字段名列标识下的具体数值。

具体地,当业务查询字段包括业务字段名和业务字段值时,客户端在接收业务查询字段时,基于业务字段名获取业务字段名下的每一业务字段值。可选地,可以在客户端建立一个接口,采用业务字段名与业务字段值的表格输入形式,即接口将输入的第一行作为业务字段名,第二行作为业务字段值的形式输入,将输入的每个业务字段值分别发送到服务端,服务端根据业务字段值从数据库中返回与业务字段值相关的算法参数,然后根据获得的算法参数和目标业务字段进行判断,判断算法配置总表中是否存在符合条件的业务算法,如果有,则从算法配置总表中返回相应的业务算法。

在本实施例中,通过以业务字段值的输入形式,分别从数据库中返回算法参数,然后根据算法参数和目标业务字段从算法配置总表中获取对应的业务算法,这样可以根据多个业务字段值批量返回多个结果,实现批量查询,提高查询的效率。

在一实施例中,在步骤s40之后,即执行合并相同结构的语句后的算法代码,获取与业务查询字段关联的目标业务数据的步骤之后,还包括:将目标业务数据与业务查询字段关联后形成查询结果并返回。

具体地,采用数据库语言将目标业务数据与业务查询字段进行关联,形成一一对应的形式作为查询结果返回到客户端。可选地,可以用sql中的leftjoin公式将业务查询字段与目标业务数据进行关联并返回。

例如,可以用以下sql语句(部分代码)对业务查询字段与目标业务数据进行合并:

select保单号

from保单表

leftjoin(select理赔金

from理赔表

where......

以上代码的意思是将保单表中的保单号作为业务查询字段,理赔表中的理赔金作为目标业务数据进行合并作为查询结果返回。

通过将业务查询字段和目标业务数据形成查询结果返回,可以使返回的结果的可读性更高,方便查询结果的查看。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

在一实施例中,提供一种业务数据查询装置,该业务数据查询装置与上述实施例中业务数据查询方法一一对应。如图5所示,该业务数据查询装置包括业务算法获取模块10、算法代码获取模块20、语句合并模块30和目标业务数据获取模块40。各功能模块详细说明如下:

业务算法获取模块10,用于接收业务查询字段和目标业务字段,根据业务查询字段和目标业务字段获取对应的业务算法。

算法代码获取模块20,用于获取业务算法对应的算法代码。

语句合并模块30,用于若算法代码中存在相同结构的语句,则合并相同结构的语句。

目标业务数据获取模块40,用于执行合并相同结构的语句后的算法代码,获取与业务查询字段关联的目标业务数据。

进一步地,业务算法获取模块10包括算法参数获取单元11、算法配置表整合单元12和业务算法获取单元13。

算法参数获取单元11,用于接收业务查询字段,根据业务查询字段获取算法参数。

算法配置表整合单元12,用于获取算法配置表,整后算法配置表,得到算法配置总表。

业务算法获取单元13,用于接收目标业务字段,根据算法参数和目标业务字段从算法配置总表中获取对应的业务算法。

进一步地,语句合并模块30包括结构判断单元31和语句合并单元32。

结构判断单元31,用于若算法代码中存在相同数据库语言结构且操作相同的数据表的语句,则该语句为相同结构的语句。

语句合并单元32,用于采用数据库语言合并相同结构的语句。

进一步地,业务算法获取模块10还包括:当业务查询字段包括业务字段名和业务字段值时,基于业务字段名获取每一业务字段值;根据每一业务字段值获取算法参数;再根据算法参数和目标业务字段从算法配置总表中获取对应的业务算法。

进一步地,该业务数据查询装置还包括结果关联模块50。

结果关联模块50,用于将目标业务数据与业务查询字段关联后形成查询结果并返回。

关于业务数据查询装置的具体限定可以参见上文中对于业务数据查询方法的限定,在此不再赘述。上述业务数据查询装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储基础数据、业务算法、算法配置表、算法代码、算法参数和目标业务数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种业务数据查询方法。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:

接收业务查询字段和目标业务字段,根据业务查询字段和目标业务字段获取对应的业务算法;

获取业务算法对应的算法代码;

若算法代码中存在相同结构的语句,则合并相同结构的语句;

执行合并相同结构的语句后的算法代码,获取与业务查询字段关联的目标业务数据。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

接收业务查询字段和目标业务字段,根据业务查询字段和目标业务字段获取对应的业务算法;

获取业务算法对应的算法代码;

若算法代码中存在相同结构的语句,则合并相同结构的语句;

执行合并相同结构的语句后的算法代码,获取与业务查询字段关联的目标业务数据。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1