一种函数的分析方法、装置及电子设备制造方法及图纸

技术编号:27059152 阅读:14 留言:0更新日期:2021-01-15 14:38
本公开提供了一种函数的分析方法、装置及电子设备,涉及数据库技术领域,包括:当程序启动后,获取函数并对黑名单进行检查;其中,函数包括用户定义函数和数据库系统的系统函数;黑名单用于记录函数中的写入数据库函数;如果黑名单中记录的写入数据库函数为空,则根据读写属性从系统函数中确定第一写入数据库函数;如果黑名单中记录有写入数据库函数,则基于黑名单执行用户定义函数,并根据执行结果在用户定义函数中确定第二写入数据库函数;将第一写入数据库函数和第二写入数据库函数加入至黑名单。本公开能够明显简化配置黑白名单的工作难度。

【技术实现步骤摘要】
一种函数的分析方法、装置及电子设备
本公开涉及数据库
,尤其涉及一种函数的分析方法、装置及电子设备。
技术介绍
读写分离,是指让主机服务器处理事务性增、改、删操作,而备机服务器处理SELECT查询操作。在处理函数过程中,现有的读写分离方案通常需要用户单独配置函数黑白名单,以识别函数的读写类型,进而做到读取数据库函数(可称为读函数)分发备机服务器,写入数据库函数(可称为写函数)发送主机服务器,提高集群整体处理能力。这样单独配置函数黑白名单的方案对用户来说非常繁琐,尤其是应用复杂并用到大量的函数时,配置黑白名单会变得困难且容易出错。
技术实现思路
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种函数的分析方法、装置及电子设备。本公开提供了一种函数的分析方法,所述方法包括:当程序启动后,获取函数并对黑名单进行检查;其中,所述函数包括用户定义函数和数据库系统的系统函数;所述黑名单用于记录所述函数中的写入数据库函数;如果所述黑名单中记录的写入数据库函数为空,则根据读写属性从所述系统函数中确定第一写入数据库函数;如果所述黑名单中记录有写入数据库函数,则基于所述黑名单执行所述用户定义函数,并根据执行结果在所述用户定义函数中确定第二写入数据库函数;将所述第一写入数据库函数和所述第二写入数据库函数加入至所述黑名单。进一步,所述根据读写属性从所述系统函数中确定第一写入数据库函数,包括:从预先建立的数据库表中查询读写属性为不稳定变量属性值的系统函数;其中,所述数据库表用于存储所述系统函数;将查询得到的系统函数确定为第一写入数据库函数。进一步,所述基于所述黑名单执行所述用户定义函数,并根据执行结果在所述用户定义函数中确定第二写入数据库函数,包括:从所述用户定义函数中解析出函数名称,判断所述函数名称是否记录于所述黑名单中;如果没有,将所述用户定义函数发送给备机服务器执行;接收所述备机服务器对所述用户定义函数的执行结果;当所述执行结果为执行错误时,将所述用户定义函数确定为第二写入数据库函数。进一步,所述方法还包括:将记录于所述黑名单中的写入数据库函数发送给主机服务器执行;接收所述主机服务器对所述用户定义函数的执行结果。进一步,所述用户定义函数的默认读写属性为不稳定变量属性值。进一步,所述方法还包括:根据用户指令将所述用户定义函数配置为第三写入数据库函数。进一步,所述方法还包括:将所述黑名单存储于预定义的容器中;其中,所述容器用于存储不重复的写入数据库函数。本公开还提供一种函数的分析装置,所述装置包括:检查模块,用于获取函数并对黑名单进行检查;其中,所述函数包括用户定义函数和数据库系统的系统函数;所述黑名单用于记录所述函数中的写入数据库函数;第一确定模块,用于如果所述黑名单中记录的写入数据库函数为空,则根据读写属性从所述系统函数中确定第一写入数据库函数;第二确定模块,用于如果所述黑名单中记录有写入数据库函数,则基于所述黑名单执行所述用户定义函数,并根据执行结果在所述用户定义函数中确定第二写入数据库函数;加入黑名单模块,用于将所述第一写入数据库函数和所述第二写入数据库函数加入至所述黑名单。本公开还提供一种电子设备,包括处理器和存储装置;所述存储装置上存储有计算机程序,所述计算机程序在被所述处理器运行时执行上述方法。本公开还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述方法的步骤。本公开实施例提供的技术方案与现有技术相比具有如下优点:本公开实施例提供的一种函数的分析方法、装置及电子设备,当程序启动后,获取函数并检查黑名单是否为空;如果黑名单中记录的写入数据库函数为空,则从系统函数中确定第一写入数据库函数;如果黑名单不为空,则基于黑名单执行用户定义函数,并根据执行结果在用户定义函数中确定第二写入数据库函数;最后将第一写入数据库函数和第二写入数据库函数加入至黑名单。上述方式无需用户配置函数的黑白名单,而是从系统函数和用户定义函数中自动分离出写入数据库函数,该方式能够明显简化配置黑白名单的工作难度,降低用户工作量和配置错误带来的影响。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本公开实施例所述函数的分析方法流程图;图2为本公开实施例所述函数的分析装置结构框图;图3为本公开实施例所述电子设备的结构示意图。具体实施方式为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。考虑到现有配置函数黑白名单的方式非常繁琐、易出错,本公开实施例提供了一种函数的分析方法、装置及电子设备。为便于理解,以下对本公开实施例进行详细介绍。实施例一:本实施例提供一种函数的分析方法,参照图1,该方法可以包括如下步骤:步骤S102,当程序启动后,获取函数并对黑名单进行检查;其中,函数包括系统函数和用户定义函数;黑名单用于记录函数中的写入数据库函数。在一些可能的实现方式中,上述程序可以为添加在主机服务器中的驱动程序,也可以为设计的代理(Proxy)程序等。函数可以包括数据库系统初始化时自带的系统函数,和用户为满足实际需求而预先创建的用户定义函数;同时,根据函数的操作类型为读取操作或写入操作,函数可分为写入数据库函数(即写函数)和读取数据库函数(即读函数);其中,写入数据库函数诸如为更新函数、修改数据库状态函数和不稳定函数等。为了便于准确地分离读函数和写函数,本实施例可以将写函数加入至黑名单中。对黑名单进行检查,可理解为检查黑名单中记录的写函数是否为空,而后基于检查结果执行后续步骤。步骤S104,如果黑名单中记录的写入数据库函数为空,则根据读写属性从系统函数中确定第一写入数据库函数。系统函数既包括读函数也包括写函数,其中,写函数可以通过设定的读写属性(provolatile)为不稳定变量属性值(表示为provolatile='v')确定;由此,将读写属性为不稳定变量属性值的系统函数确定为第一写入数据库函数。步骤S106,如果黑名单中记录有写入数据库函数,则基于黑名单执行用户定义函数,并根据执行结果在用户定义函数中确定第二写入数据库函数。如果黑名单中记录有写函数,则记录的写函数至少包括系统函数中的写函数,本文档来自技高网...

【技术保护点】
1.一种函数的分析方法,其特征在于,所述方法包括:/n当程序启动后,获取函数并对黑名单进行检查;其中,所述函数包括用户定义函数和数据库系统的系统函数;所述黑名单用于记录所述函数中的写入数据库函数;/n如果所述黑名单中记录的写入数据库函数为空,则根据读写属性从所述系统函数中确定第一写入数据库函数;/n如果所述黑名单中记录有写入数据库函数,则基于所述黑名单执行所述用户定义函数,并根据执行结果在所述用户定义函数中确定第二写入数据库函数;/n将所述第一写入数据库函数和所述第二写入数据库函数加入至所述黑名单。/n

【技术特征摘要】
1.一种函数的分析方法,其特征在于,所述方法包括:
当程序启动后,获取函数并对黑名单进行检查;其中,所述函数包括用户定义函数和数据库系统的系统函数;所述黑名单用于记录所述函数中的写入数据库函数;
如果所述黑名单中记录的写入数据库函数为空,则根据读写属性从所述系统函数中确定第一写入数据库函数;
如果所述黑名单中记录有写入数据库函数,则基于所述黑名单执行所述用户定义函数,并根据执行结果在所述用户定义函数中确定第二写入数据库函数;
将所述第一写入数据库函数和所述第二写入数据库函数加入至所述黑名单。


2.根据权利要求1所述的方法,其特征在于,所述根据读写属性从所述系统函数中确定第一写入数据库函数,包括:
从预先建立的数据库表中查询读写属性为不稳定变量属性值的系统函数;其中,所述数据库表用于存储所述系统函数;
将查询得到的系统函数确定为第一写入数据库函数。


3.根据权利要求1所述的方法,其特征在于,所述基于所述黑名单执行所述用户定义函数,并根据执行结果在所述用户定义函数中确定第二写入数据库函数,包括:
从所述用户定义函数中解析出函数名称,判断所述函数名称是否记录于所述黑名单中;
如果没有,将所述用户定义函数发送给备机服务器执行;
接收所述备机服务器对所述用户定义函数的执行结果;
当所述执行结果为执行错误时,将所述用户定义函数确定为第二写入数据库函数。


4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将记录于所述黑名单中的写入数据库函数发送给主机服务器执行;
接收所述主机服务...

【专利技术属性】
技术研发人员:李楠韩慧敏
申请(专利权)人:北京人大金仓信息技术股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1