CN111930545A - 程序脚本处理方法、装置和服务器 - Google Patents

程序脚本处理方法、装置和服务器 Download PDF

Info

Publication number
CN111930545A
CN111930545A CN201910395000.9A CN201910395000A CN111930545A CN 111930545 A CN111930545 A CN 111930545A CN 201910395000 A CN201910395000 A CN 201910395000A CN 111930545 A CN111930545 A CN 111930545A
Authority
CN
China
Prior art keywords
program script
abnormal
detecting
key feature
parameter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910395000.9A
Other languages
English (en)
Other versions
CN111930545B (zh
Inventor
王卉
雷中杰
樊炼
盛勇
毛在清
薛超
李林
徐庆
张欣
黄璐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Communications Group Co Ltd
China Mobile Group Hubei Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Group Hubei Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Mobile Communications Group Co Ltd, China Mobile Group Hubei Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201910395000.9A priority Critical patent/CN111930545B/zh
Publication of CN111930545A publication Critical patent/CN111930545A/zh
Application granted granted Critical
Publication of CN111930545B publication Critical patent/CN111930545B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3447Performance evaluation by modeling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明实施例涉及数据库技术领域,公开了一种程序脚本处理方法、装置和设备,该方法包括:获取程序脚本信息;从所述程序脚本信息中提取关键特征;对所述关键特征进行异常检测;将检测结果为异常的程序脚本进行拦截或校正;执行拦截或校正后的程序脚本。通过上述方式,本发明实施例实现了将异常的脚本拦截或校正,提高了异常排查的效率,在大量用户请求访问的情况下,减轻了数据库执行非法SQL的消耗。

Description

程序脚本处理方法、装置和服务器
技术领域
本发明实施例涉及数据库技术领域,具体涉及一种程序脚本处理方法、装置和服务器。
背景技术
目前在通信服务提供上的系统架构中的结构化数据库上运行的业务基本上都是核心业务,比如:Oracle或SQL Server数据库,主要包括分为营业、账务等对用户体验有明显感知的业务系统。由于这些系统承载的是移动最核心的业务,所以在线处理事务量大,数据交互频繁,对系统的实时性要求十分高,是对性能指标要求十分严格的业务系统。如何保证业务系统在这样趋势下的性能优越,是当前一个非常重要的课题。
随着数据库应用越来越广泛,经常出现因为应用开发SQL编写不当或者语法错误,在高频次下,需要频繁解析错误SQL,对数据库内存造成冲击,导致对业务系统的严重影响。而且随着业务增长迅速,数据量剧增,开发阶段由于数据量较小并发较少,导致在开发阶段的测试无法发现潜在的性能威胁,而且目前开发人员质量参差不齐,低效SQL极具破坏性,在很多生产系统中,程序员经意不经意写下的一条SQL都可能带来性能上的巨大隐患。
发明内容
鉴于上述问题,本发明实施例提供了一种程序脚本处理方法、装置和服务器,克服了上述问题或者至少部分地解决了上述问题。
根据本发明实施例的一个方面,提供了一种程序脚本处理方法,所述方法包括:
获取程序脚本信息;
从所述程序脚本信息中提取关键特征;
对所述关键特征进行异常检测;
将检测结果为异常的程序脚本进行拦截或校正;
执行拦截或校正后的程序脚本。
优选的,获取程序脚本之前进一步包括:
获取训练数据;
从所述训练数据中提取特征参数;
将所述训练数据通过向量空间模型进行处理;
根据所述特征参数在通过向量空间模型处理过程中的运行参数、消耗时间和消耗资源,确定关键特征参数。
优选的,所特征参数为执行频次信息、执行计划信息、资源消耗信息,和\或,相关表的统计信息。
优选的,所述将所述训练数据通过向量空间模型进行处理,包括:
将所述训练数据转化为空间向量;
通过所述空间向量之间的余弦距离判断所述空间向量之间的相似性;
根据所述空间向量之间的相似性对所述训练数据进行处理。
优选的,所述从所述程序脚本信息中提取关键特征,包括:
通过决策树分类器对所述程序脚本进行分解;
根据所述关键特征参数从所述分解后的程序脚本中提取关键特征。
优选的,所述对所述关键特征进行异常检测,包括:
检测所述关键特征参数值长度的异常值p,和/或,检测所述关键特征的字符分布的异常值p,和/或,检测所述关键特征的参数缺失的异常值p,和/或,检测所述关键特征的参数顺序的异常值p,和/或,检测所述关键特征的访问频率的异常值p,和/或,检测所述关键特征的访问时间间隔的异常值p;
将上述一个或多个异常值p进行融合,获取异常得分;
根据所述异常得分判断所述关键特征是否异常。
优选的,所述检测所述关键特征参数值长度的异常值p,具体为:
利用切比雪夫不等式计算所述异常值p;
所述检测所述关键特征的字符分布的异常值p,具体为:
通过卡方检验计算所述异常值p;
所述检测所述关键特征的参数缺失的异常值p,具体为:
建立参数表,通过查询所述参数表检测参数错误或缺失;
所述检测所述关键特征的参数顺序的异常值p,具体为:
建立参数顺序有向图,根据所述参数顺序有向图判断是否有违规顺序关系;
所述检测所述关键特征的访问频率的异常值p,具体为:
利用切比雪夫不等式计算所述异常值p;
所述检测所述关键特征的访问时间间隔的异常值p,具体为:
通过卡方检验计算所述异常值p。
根据本发明实施例的另一方面,还提供了一种程序脚本处理装置,包括:
程序脚本获取模块:用于获取程序脚本信息;
关键特征提取模块:用于从所述程序脚本信息中提取关键特征;
异常检测模块:用于对所述关键特征进行异常检测;
拦截/校正模块:用于对检索结果为异常的程序脚本进行拦截或校正;
程序执行模块:用于执行所述拦截或校正后的程序脚本。
本发明实施例还提供了一种服务器,包括处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行所述程序脚本处理方法。
本发明实施例还提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行所述程序脚本处理方法。
本发明实施例通过利用关键特征提取,对关键特征进行异常检测,将检测为异常的脚本进行拦截或校正,可以使得不合法的SQL错误提前暴露,不会渗入数据库,而是在中间层就收集到异常信息,继而抛出自定义的异常,并缓存起来做为分析依据,提高了异常排查的效率,在大量用户请求访问的情况下,减轻了数据库执行非法SQL的消耗。同时,本发明实施例通过关键特征分类和机器学习算法生成中间层,采用独立的中间层,对应用是透明的,无需任何改造即可应用到现有的数据库系统。
上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的程序脚本处理方法应用框架图;
图2示出了本发明实施例提供的程序脚本处理方法流程图;
图3示出了本发明实施例提供的一种向量空间模型;
图4示出了本发明实施例提供的决策树模型;
图5示出了本发明实施例提供的另一程序脚本处理方法流程图;
图6示出了本发明实施例提供的另一程序脚本处理方法应用框架图;
图7示出了本发明实施例提供的程序脚本处理装置结构图;
图8示出了本发明实施例提出的另一程序脚本处理装置结构图;
图9示出了本发明实施例提出的一种程序脚本处理设备结构图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
本发明实施例提供的程序脚本处理方式实施例中,程序脚本可以为结构型数据库或面向对象型数据库的程序脚本处理方法,在这里以结构型数据库为例进行说明,比如SQLServer数据库或Oracle数据库等。本发明实施例在客户端与数据库端连接之间设计中间层,在数据库端采集数据库及相关SQL语句运行信息,通过特定的特征分类提取和神经网络学习算法,进行特征的分解和学习,并存储在中间层中,当中间层接收客户端请求后,根据采集信息和预测模型决定处理方式,并转发至数据库端。
如图1所示,为本发明实施例常用的网络架构,包括客户端和服务器,服务器端安装有数据库软件,所述客户端和服务器可以在同一物理实体的机器上,也可以是分开安装的两台机器,中间层和数据库安装在一起,当数据库接收客户端发送请求时,中间层从网络层获取Oracle数据库的TNS协议包,对通信协议进行解析,获取操作数据库的SQL语句的脚本信息。将获取到的数据作为训练样本,包括:从客户端获取的SQL语句的文本信息、从服务端抓取的sql执行频次、执行计划、相关表的统计信息、本次执行产生的数据库逻辑读和物理读等数据。在数据训练过程中,将通过特征提取,提取出有代表性的特征,并通过向量空间模型对所述特征进行处理,提取出关键特征参数,同时,通过向量空间模型处理后,将训练样本的文本数据就转换成了计算机可以处理的结构化数据,文本数据之间的相似性问题转变成向量之间的相似性问题。所有这些处理过程都是神经网络的深度学习来实现的。当然在训练过程中,不能影响正常的程序执行,在这个过程中,中间层需要将客户端请求信息转发至数据库服务端运行,并接收结果数据集和执行结果反馈给客户端,同时将数据库服务端抓取的sql执行频次,执行计划,相关表的统计信息,本次执行产生的数据库逻辑读和物理读等资源消耗信息作为训练样本的特征参数。
图2示出了本发明实施例提供的一种程序脚本处理方法实施例的流程图,在数据生产环境上进行正式程序脚本处理之前,需要进行机器学习,即样本训练,图2为样本训练的一般流程,该方法应用于上述服务器中。该方法包括以下步骤:
步骤101:获取训练数据。
训练数据的获取可以将一些代表数据特性的数据作为训练数据样本。也可以将一些生产环境的数据放到测试环境中,作为训练数据,对神经网络进行训练。
步骤120:从所述训练数据中提取特征参数。
从所述训练数据中提取特征参数,所述特征参数的选择一般选取能会影响到当前sql执行的特征,之后跑多组实验数据,并在跑实验过程中,记录所选特征值。之后对所选特征进行筛选,筛选出影响不大的特征,从而得出预测模型,之后把学习结果应用到对sql的自动校正。所述特征参数通常为执行频次信息、执行计划信息、资源消耗信息,和\或,相关表的统计信息等信息。
步骤103:将所述训练数据通过向量空间模型进行处理;
对于程序脚本来说,SQL脚本文本输入的背后,是后台代码的解析,通常来说,复杂的sql语句通过解析与改写可以分解为单句sql。
下面来看单句SQL语句的解析方案:
select c1,c2,c3from t1,t2where condi3=3or condi4=5order by o1,o2
通过观察可以发现,select子句是select c1,c2,c3from,它的起始标志是select,结束标志是from;from子句是from t1,t2where,它的起始标志是from,结束标志是where;where子句是where condi3=3or condi4=5,它的起始标志是where,结束标志是order by;order by子句是order by o1,o2其起始标志是order by,刚才在整句SQL尾后加上了"ENDOFSQL"字样,因此,order by子句的结束标志是"ENDOFSQL"。
这个分析给解析SQL语句提供了一个思路,如果能找到各个子句的前后标志,在正则表达式的帮助下就可以轻松的获得每一种子句,下面给出一个找到from子句的完整正则表达式:
"(from)(.+)(where|on|having|groups+by|orders+by|ENDOFSQL)"
这句正则表示式让程序到整句SQL中查找符合这样条件的文本单元:它以from开头,结束标志是where,on,having,group by,order by或语句结束中间的一个,开始标志和结束标志之间可以是任何字符。这样,from子句的各种情况就都囊括进这个正则表达式了,它能找到以下类型的各种form子句:
from....where
from....on
from....having
from....group by
from....order by
from....ENDOFSQL
由上面可以看出程序脚本的一些基本规律信息,系统将这些信息提取出来,对程序脚本进行分析。
本发明实施例汇总,采用向量空间模型(VSM:Vector Space Model)对sql文本进行预处理和建模。VSM概念非常直观——把对文本内容的处理简化为向量空间中的向量运算,并且它以空间上的相似度表达语义的相似度,直观易懂。当文档被表示为文档空间的向量时,就可以通过计算向量之间的相似性来度量文档间的相似性。文本处理中最常用的相似性度量方式是余弦距离。文本挖掘系统采用向量空间模型,用特征词条(T1,T2,…Tn)及其权值Wi代表目标信息,在进行信息匹配时,使用这些特征项评价未知文本与目标样本的相关程度。特征词条及其权值的选取称为目标样本的特征提取,特征提取算法的优劣将直接影响到系统的运行效果。
设D为一个包含m个文档的文档集合,Di为第i个文档的特征向量,则有D={D1,D2,......,Dm},Di=(di1,di2,di3,......,dij),其中i=1,2,......,m,j=1,2,......,n。dij(i=1,2,......,m;j=1,2,......,n)为文档Di中第j个词条Tj的权值,它一般被定义为Tj在Di中出现的频率Tij的函数,例如采用TF-IDF函数,即Dij=Tij*log(N/nj),其中N是文档数据库中文档总数,nj是文档数据库含有词条tj的文档数目。假设用户给定的文档向量为D2,未知的文档向量为q,两者的相似程度可用两向量的夹角余弦来度量,夹角越小说明相似度越高,如图3所示,相似度的计算公式如下:
Figure BDA0002057874060000071
通过上述的向量空间模型,文本数据就转换成了计算机可以处理的结构化数据,两个文档之间的相似性问题转变成了两个向量之间的相似性问题。
以上过程将所述训练数据转化为空间向量,通过所述空间向量之间的余弦距离判断所述空间向量之间的相似性,根据所述空间向量之间的相似性对特征参数进行相似性处理,可以将类似的特征参数进行合并处理等,同时也对所述训练数据进行其他处理,将训练数据转化为可处理的向量数据。
步骤104:根据所述特征参数确定关键特征参数。
根据所述特征参数在通过向量空间模型处理过程中的运行参数、消耗时间和消耗资源,确定关键特征参数。
在本发明实施例中,采用决策树的方式对获取到的程序脚本进行分解,并根据所述训练数据提取关键特征参数。决策树分类器把文本处理过程看作是一个等级分层分解完成的复杂任务。如图4所示,决策树是一棵树,树的根节点是整个数据集合空间,每个分结点是对一个单一变量的测试,该测试将数据集合空间分割成两个或更多个类别,即决策树可以是二叉树也可以是多叉树。每个叶结点是属于单一类别的记录。构造决策树分类器时,首先要通过训练生成决策树,然后再通过测试集对决策树进行修剪。一般可通过递归分割的过程构建决策树,其生成过程通常是自上而下的,选择分割的方法有很多种,但是目标都是一致的,就是对目标文档进行最佳分割。
针对不同的目的,关键特征提取的主要参考特征被提出,包括召回率、正确率和F-测度值。设定a表示分类器将输入文本正确分类到某个类别的个数;b表示分类器将输入文本错误分类到某个类别的个数;c表示分类器将输入文本错误地排除在某个类别之外的个数;d表示分类器将输入文本正确地排除在某个类别之外的个数。
该分类器的召回率、正确率和F-测度值分别采用以下公式计算:
召回率r=a/(a+c)*100%
正确率p=a/(a+b)*100%
测度值F=(2*p*r)/(p+r)
由于在分类结果中,对应每个类别都会有一个召回率和正确率,因此,可以根据每个类别的分类结果评价分类器的整体性能,通常方法有两种:微平均和宏平均。微平均是根据正确率和召回率计算公式直接计算出总得正确率和召回率值。宏平均是指首先计算出每个类别的正确率和召回率,然后对正确率和召回率分别取平均得到总的正确率和召回率。不难看出,宏平均平等对待每一个类别,所以它的值主要受到稀有类别的影响,而微平均平等考虑文档集中的每一个文档,所以它的值受到常见类别的影响比较大。
在本发明实施例中,采用宏平均的方式,确定特征参数的重要程度,根据所述正确率和召回率,确定关键特征参数。
图5示出了本发明实施例提出的一种程序脚本处理方法的流程图,在上述实施例的基础上,基于生成的关键特征参数等信息,本实施例将对正式环境的数据操作进行说明。如图6所示,为该程序脚本处理方法的应用框架图,在生产环境中,神经网络利用在训练阶段建立的模型和提取的关键特征参数,对生产环境的数据进行关键特征提取,然后根据建立的异常判断规则,对关键特征进行异常检测,根据异常检测的结果,对脚本进行相应的处理。
该程序脚本处理方法包括以下步骤:
步骤210:获取程序脚本信息;
中间层在执行过程中,监控客户端发送的程序脚本,对所述输入的脚本信息进行处理。
步骤220:从所述程序脚本信息中提取关键特征;
根据在训练阶段获取的关键特征参数,通过决策树分类器对所述程序脚本进行分解,根据所述关键特征参数从所述分解后的程序脚本中提取关键特征。
在本发明实施例中,采用决策树的方式对获取到的程序脚本进行分解,并根据所述关键特征参数提取关键特征。决策树分类器把文本处理过程看作是一个等级分层分解完成的复杂任务。如图4所示,决策树是一棵树,树的根节点是整个数据集合空间,每个分结点是对一个单一变量的测试,该测试将数据集合空间分割成两个或更多个类别,即决策树可以是二叉树也可以是多叉树。每个叶结点是属于单一类别的记录。构造决策树分类器时,首先要通过训练生成决策树,然后再通过测试集对决策树进行修剪。一般可通过递归分割的过程构建决策树,其生成过程通常是自上而下的,选择分割的方法有很多种,但是目标都是一致的,就是对目标文档进行最佳分割。
步骤203:对所述关键特征进行异常检测;
针对所述关键特征,对所述程序脚本进行异常检测,所述异常检测主要检测所述关键特征参数值长度、字符分布、参数缺失、参数顺序、访问频率、访问时间间隔等等。
特征1:参数值value长度
模型:长度值分布,利用切比雪夫不等式计算异常值p。
Figure BDA0002057874060000101
其中μ为均值,σ2为方差;
意义:任意一个数据集中,位于其平均数k个标准差范围内的比例总是至少为1-1/k2
特征2:字符分布
模型:对字符分布建立模型,通过卡方检验计算异常值p。
Figure BDA0002057874060000102
意义:测试观察值的评率分布是否符合理论分布。
特征3:参数缺失
模型:建立参数表,通过查询所述参数表检测参数错误或缺失。
特征4:参数顺序
模型:参数顺序有向图,根据所述顺序有向图判断是否有违规顺序关系。
(1).通过有向图表示参数顺序
uid=123and ordered=12345and valid=false
(2).求取强连图子图;
(3).形成顺序约束表。
特征5:访问频率
模型:时段内访问频率分布,利用切比雪夫不等式计算异常值p;
Figure BDA0002057874060000111
其中μ为均值,σ2为方差。
特征6:访问时间间隔
模型:访问间隔时间分布,通过卡方检验计算异常值p
Figure BDA0002057874060000112
最终,通过上述异常打分模型,将上述一个或多个异常值p进行融合,获取最终异常得分:
Figure BDA0002057874060000113
根据上述异常得分判断所述关键特征是否异常。
步骤204:将检测结果为异常的程序脚本进行拦截或校正;
根据上述步骤中的针对关键特征的异常评分,将检测结果为异常的程序脚本进行拦截或校正,通常会设定一个阈值,当所述异常评分超过该阈值时,则进行拦截或校正,当低于其时,则不进行处理。当然,也可以根据所述异常评分,对所述关键特征进行分类处理,比如评分较高的直接拦截,评分较低的可以直接进行校正,对于中间评分的,可以输出异常给用户,由用户进行判断。
步骤205:执行拦截或矫正后的程序脚本。
由上可知,本发明实施例提供的程序脚本处理方法,通过利用关键特征提取,对关键特征进行异常检测,将检测为异常的脚本进行拦截或校正,可以使得不合法的SQL错误提前暴露,不会渗入数据库,而是在中间层就收集到异常信息,继而抛出自定义的异常,并缓存起来做为分析依据,提高了异常排查的效率,在大量用户请求访问的情况下,减轻了数据库执行非法SQL的消耗。同时,本发明实施例通过关键特征分类和机器学习算法生成中间层,采用独立的中间层,对应用是透明的,无需任何改造即可应用到现有的数据库系统。
图7示出了本发明实施例提出的一种程序脚本处理装置的结构示意图。该程序脚本处理装置700包括:程序脚本获取模块720、关键特征提取模块730、异常检测模块740、拦截/校正模块750和程序执行模块750;
所述程序脚本获取模块720:用于获取程序脚本信息;
所述关键特征提取模块730:用于从所述程序脚本信息中提取关键特征;
所述异常检测模块740:用于对所述关键特征进行异常检测;
所述拦截/校正模块750:用于对检索结果为异常的程序脚本进行拦截或校正;
所述程序执行模块760:用于对检索结果为异常的程序脚本进行拦截或校正,并执行所述拦截或校正后的程序脚本。
进一步的,如图8所示,所述程序脚本处理装置700还包括训练模块710,所述训练模块用于获取训练数据,从所述训练数据中提取特征参数,将所述训练数据通过向量空间模型进行处理,根据所述特征参数在通过向量空间模型处理过程中的运行参数、消耗时间和消耗资源,确定关键特征参数。
所述训练模块700还包括:空间向量处理单元7101和决策树分类器单元7102;
所述空间向量处理单元7101:用于将所述训练数据转化为空间向量,通过所述空间向量之间的余弦距离判断所述空间向量之间的相似性,根据所述空间向量之间的相似性对所述训练数据进行处理。
所述决策树分类器单元7102,用于对所述程序脚本进行分解,根据所述关键特征参数从所述分解后的程序脚本中提取关键特征。
进一步的,所述异常检测模块740,还用于检测所述关键特征参数值长度的异常值p,和/或,检测所述关键特征的字符分布的异常值p,和/或,检测所述关键特征的参数缺失的异常值p,和/或,检测所述关键特征的参数顺序的异常值p,和/或,检测所述关键特征的访问频率的异常值p,和/或,检测所述关键特征的访问时间间隔的异常值p,将上述一个或多个异常值p进行融合,获取异常得分:
Figure BDA0002057874060000121
根据所述异常得分判断所述关键特征是否异常。
由上可知,本发明实施例提供的程序脚本处理装置,通过利用关键特征提取,对关键特征进行异常检测,将检测为异常的脚本进行拦截或校正,可以使得不合法的SQL错误提前暴露,不会渗入数据库,而是在中间层就收集到异常信息,继而抛出自定义的异常,并缓存起来做为分析依据,提高了异常排查的效率,在大量用户请求访问的情况下,减轻了数据库执行非法SQL的消耗。同时,本发明实施例通过关键特征分类和机器学习算法生成中间层,采用独立的中间层,对应用是透明的,无需任何改造即可应用到现有的数据库系统。
本发明实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的程序脚本处理方法。
可执行指令具体可以用于使得处理器执行以下操作:
获取程序脚本信息;
从所述程序脚本信息中提取关键特征;
对所述关键特征进行异常检测;
将检测结果为异常的程序脚本进行拦截或校正;
执行拦截或校正后的程序脚本。
优选的,获取程序脚本之前进一步包括:
获取训练数据;
从所述训练数据中提取特征参数;
将所述训练数据通过向量空间模型进行处理;
根据所述特征参数在通过向量空间模型处理过程中的运行参数、消耗时间和消耗资源,确定关键特征参数。
优选的,所特征参数为执行频次信息、执行计划信息、资源消耗信息,和\或,相关表的统计信息。
优选的,所述将所述训练数据通过向量空间模型进行处理,包括:
将所述训练数据转化为空间向量;
通过所述空间向量之间的余弦距离判断所述空间向量之间的相似性;
根据所述空间向量之间的相似性对所述训练数据进行处理。
优选的,所述从所述程序脚本信息中提取关键特征,包括:
通过决策树分类器对所述程序脚本进行分解;
根据所述关键特征参数从所述分解后的程序脚本中提取关键特征。
优选的,所述对所述关键特征进行异常检测,包括:
检测所述关键特征参数值长度的异常值p,和/或,检测所述关键特征的字符分布的异常值p,和/或,检测所述关键特征的参数缺失的异常值p,和/或,检测所述关键特征的参数顺序的异常值p,和/或,检测所述关键特征的访问频率的异常值p,和/或,检测所述关键特征的访问时间间隔的异常值p;
将上述一个或多个异常值p进行融合,获取异常得分:
Figure BDA0002057874060000141
根据所述异常得分判断所述关键特征是否异常。
优选的,所述检测所述关键特征参数值长度的异常值p,具体为:
利用切比雪夫不等式计算所述异常值p:
Figure BDA0002057874060000142
其中μ为均值,σ2为方差;
所述检测所述关键特征的字符分布的异常值p,具体为:
通过卡方检验计算所述异常值p:
Figure BDA0002057874060000143
所述检测所述关键特征的参数缺失的异常值p,具体为:
建立参数表,通过查询所述参数表检测参数错误或缺失;
所述检测所述关键特征的参数顺序的异常值p,具体为:
建立参数顺序有向图,根据所述参数顺序有向图判断是否有违规顺序关系;
所述检测所述关键特征的访问频率的异常值p,具体为:
利用切比雪夫不等式计算所述异常值p:
Figure BDA0002057874060000144
其中μ为均值,σ2为方差;
所述检测所述关键特征的访问时间间隔的异常值p,具体为:
通过卡方检验计算所述异常值p:
Figure BDA0002057874060000145
由上可知,本发明实施例提供的程序脚本处理装置,通过利用关键特征提取,对关键特征进行异常检测,将检测为异常的脚本进行拦截或校正,可以使得不合法的SQL错误提前暴露,不会渗入数据库,而是在中间层就收集到异常信息,继而抛出自定义的异常,并缓存起来做为分析依据,提高了异常排查的效率,在大量用户请求访问的情况下,减轻了数据库执行非法SQL的消耗。同时,本发明实施例通过关键特征分类和机器学习算法生成中间层,采用独立的中间层,对应用是透明的,无需任何改造即可应用到现有的数据库系统。
图9示出了本发明实施例提供的服务器设备的结构示意图,本发明具体实施例并不对服务器设备的具体实现做限定。
如图9所示,该服务器可以包括:处理器(processor)902、通信接口(Communications Interface)904、存储器(memory)906、以及通信总线908。
其中:处理器902、通信接口904、以及存储器906通过通信总线908完成相互间的通信。通信接口904,用于与其它设备比如客户端或其它服务器等的网元通信。处理器902,用于执行程序910,具体可以执行上述用于程序脚本处理方法实施例中的相关步骤。
具体地,程序910可以包括程序代码,该程序代码包括计算机操作指令。
处理器902可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。所述服务器包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器906,用于存放程序910。存储器906可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序910具体可以用于使得处理器902执行以下操作:
获取程序脚本信息;
从所述程序脚本信息中提取关键特征;
对所述关键特征进行异常检测;
将检测结果为异常的程序脚本进行拦截或校正;
执行拦截或校正后的程序脚本。
优选的,获取程序脚本之前进一步包括:
获取训练数据;
从所述训练数据中提取特征参数;
将所述训练数据通过向量空间模型进行处理;
根据所述特征参数在通过向量空间模型处理过程中的运行参数、消耗时间和消耗资源,确定关键特征参数。
优选的,所特征参数为执行频次信息、执行计划信息、资源消耗信息,和\或,相关表的统计信息。
优选的,所述将所述训练数据通过向量空间模型进行处理,包括:
将所述训练数据转化为空间向量;
通过所述空间向量之间的余弦距离判断所述空间向量之间的相似性;
根据所述空间向量之间的相似性对所述训练数据进行处理。
优选的,所述从所述程序脚本信息中提取关键特征,包括:
通过决策树分类器对所述程序脚本进行分解;
根据所述关键特征参数从所述分解后的程序脚本中提取关键特征。
优选的,所述对所述关键特征进行异常检测,包括:
检测所述关键特征参数值长度的异常值p,和/或,检测所述关键特征的字符分布的异常值p,和/或,检测所述关键特征的参数缺失的异常值p,和/或,检测所述关键特征的参数顺序的异常值p,和/或,检测所述关键特征的访问频率的异常值p,和/或,检测所述关键特征的访问时间间隔的异常值p;
将上述一个或多个异常值p进行融合,获取异常得分:
Figure BDA0002057874060000161
根据所述异常得分判断所述关键特征是否异常。
优选的,所述检测所述关键特征参数值长度的异常值p,具体为:
利用切比雪夫不等式计算所述异常值p:
Figure BDA0002057874060000171
其中μ为均值,σ2为方差;
所述检测所述关键特征的字符分布的异常值p,具体为:
通过卡方检验计算所述异常值p:
Figure BDA0002057874060000172
所述检测所述关键特征的参数缺失的异常值p,具体为:
建立参数表,通过查询所述参数表检测参数错误或缺失;
所述检测所述关键特征的参数顺序的异常值p,具体为:
建立参数顺序有向图,根据所述参数顺序有向图判断是否有违规顺序关系;
所述检测所述关键特征的访问频率的异常值p,具体为:
利用切比雪夫不等式计算所述异常值p:
Figure BDA0002057874060000173
其中μ为均值,σ2为方差;
所述检测所述关键特征的访问时间间隔的异常值p,具体为:
通过卡方检验计算所述异常值p:
Figure BDA0002057874060000174
由上可知,本发明实施例提供的程序脚本处理装置,通过利用关键特征提取,对关键特征进行异常检测,将检测为异常的脚本进行拦截或校正,可以使得不合法的SQL错误提前暴露,不会渗入数据库,而是在中间层就收集到异常信息,继而抛出自定义的异常,并缓存起来做为分析依据,提高了异常排查的效率,在大量用户请求访问的情况下,减轻了数据库执行非法SQL的消耗。同时,本发明实施例通过关键特征分类和机器学习算法生成中间层,采用独立的中间层,对应用是透明的,无需任何改造即可应用到现有的数据库系统。
在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。

Claims (10)

1.一种程序脚本处理方法,其特征在于,包括:
获取程序脚本信息;
从所述程序脚本信息中提取关键特征;
对所述关键特征进行异常检测;
将检测结果为异常的程序脚本进行拦截或校正;
执行拦截或校正后的程序脚本。
2.如权利要求1所述的程序脚本处理方法,其特征在于,所述获取程序脚本之前进一步包括:
获取训练数据;
从所述训练数据中提取特征参数;
将所述训练数据通过向量空间模型进行处理;
根据所述特征参数在通过向量空间模型处理过程中的运行参数、消耗时间和消耗资源,确定关键特征参数。
3.如权利要求2所述的程序脚本处理方法,其特征在于,所述特征参数为执行频次信息、执行计划信息、资源消耗信息,和\或,相关表的统计信息。
4.如权利要求2所述的程序脚本处理方法,其特征在于,所述将所述训练数据通过向量空间模型进行处理,包括:
将所述训练数据转化为空间向量;
通过所述空间向量之间的余弦距离判断所述空间向量之间的相似性;
根据所述空间向量之间的相似性对所述训练数据进行处理。
5.如权利要求2所述的程序脚本处理方法,其特征在于,所述从所述程序脚本信息中提取关键特征,包括:
通过决策树分类器对所述程序脚本进行分解;
根据所述关键特征参数从所述分解后的程序脚本中提取关键特征。
6.如权利要求1或5所述的程序脚本处理方法,其特征在于,所述对所述关键特征进行异常检测,包括:
检测所述关键特征参数值长度的异常值p,和/或,检测所述关键特征的字符分布的异常值p,和/或,检测所述关键特征的参数缺失的异常值p,和/或,检测所述关键特征的参数顺序的异常值p,和/或,检测所述关键特征的访问频率的异常值p,和/或,检测所述关键特征的访问时间间隔的异常值p;
将上述一个或多个异常值p进行融合,获取异常得分;
根据所述异常得分判断所述关键特征是否异常。
7.如权利要求6所述的程序脚本处理方法,其特征在于,
所述检测所述关键特征参数值长度的异常值p,具体为:
利用切比雪夫不等式计算所述异常值;
所述检测所述关键特征的字符分布的异常值p,具体为:
通过卡方检验计算所述异常值p;
所述检测所述关键特征的参数缺失的异常值p,具体为:
建立参数表,通过查询所述参数表检测参数错误或缺失;
所述检测所述关键特征的参数顺序的异常值p,具体为:
建立参数顺序有向图,根据所述参数顺序有向图判断是否有违规顺序关系;
所述检测所述关键特征的访问频率的异常值p,具体为:
利用切比雪夫不等式计算所述异常值p;
所述检测所述关键特征的访问时间间隔的异常值p,具体为:
通过卡方检验计算所述异常值p。
8.一种程序脚本处理装置,其特征在于,包括:
程序脚本获取模块:用于获取程序脚本信息;
关键特征提取模块:用于从所述程序脚本信息中提取关键特征;
异常检测模块:用于对所述关键特征进行异常检测;
拦截/校正模块:用于对检索结果为异常的程序脚本进行拦截或校正;
程序执行模块:用于执行所述拦截或校正后的程序脚本。
9.一种服务器,包括处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-7任意一项所述的程序脚本处理方法。
10.一种计算机存储介质,其特征在于,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-7任意一项所述的程序脚本处理方法。
CN201910395000.9A 2019-05-13 2019-05-13 Sql脚本处理方法、装置和服务器 Active CN111930545B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910395000.9A CN111930545B (zh) 2019-05-13 2019-05-13 Sql脚本处理方法、装置和服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910395000.9A CN111930545B (zh) 2019-05-13 2019-05-13 Sql脚本处理方法、装置和服务器

Publications (2)

Publication Number Publication Date
CN111930545A true CN111930545A (zh) 2020-11-13
CN111930545B CN111930545B (zh) 2023-11-03

Family

ID=73282656

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910395000.9A Active CN111930545B (zh) 2019-05-13 2019-05-13 Sql脚本处理方法、装置和服务器

Country Status (1)

Country Link
CN (1) CN111930545B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100223276A1 (en) * 2007-03-27 2010-09-02 Faleh Jassem Al-Shameri Automated Generation of Metadata for Mining Image and Text Data
CN104636449A (zh) * 2015-01-27 2015-05-20 厦门大学 基于lsa-gcc的分布式大数据系统风险识别方法
CN107340456A (zh) * 2017-05-25 2017-11-10 国家电网公司 基于多特征分析的配电网工况智能识别方法
CN107797924A (zh) * 2017-10-12 2018-03-13 中国平安人寿保险股份有限公司 一种sql脚本的异常检测方法及其终端
CN107918564A (zh) * 2017-11-13 2018-04-17 泰康保险集团股份有限公司 数据传输异常处理方法、装置、电子设备及存储介质
CN108255704A (zh) * 2017-11-07 2018-07-06 中国平安人寿保险股份有限公司 一种脚本调用事件的异常响应方法及其终端
CN108255710A (zh) * 2017-12-28 2018-07-06 中国平安人寿保险股份有限公司 一种脚本的异常检测方法及其终端
CN108616498A (zh) * 2018-02-24 2018-10-02 国家计算机网络与信息安全管理中心 一种web访问异常检测方法和装置
CN109325865A (zh) * 2018-08-13 2019-02-12 中国平安人寿保险股份有限公司 异常处理方法、装置、计算机设备及存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100223276A1 (en) * 2007-03-27 2010-09-02 Faleh Jassem Al-Shameri Automated Generation of Metadata for Mining Image and Text Data
CN104636449A (zh) * 2015-01-27 2015-05-20 厦门大学 基于lsa-gcc的分布式大数据系统风险识别方法
CN107340456A (zh) * 2017-05-25 2017-11-10 国家电网公司 基于多特征分析的配电网工况智能识别方法
CN107797924A (zh) * 2017-10-12 2018-03-13 中国平安人寿保险股份有限公司 一种sql脚本的异常检测方法及其终端
CN108255704A (zh) * 2017-11-07 2018-07-06 中国平安人寿保险股份有限公司 一种脚本调用事件的异常响应方法及其终端
CN107918564A (zh) * 2017-11-13 2018-04-17 泰康保险集团股份有限公司 数据传输异常处理方法、装置、电子设备及存储介质
CN108255710A (zh) * 2017-12-28 2018-07-06 中国平安人寿保险股份有限公司 一种脚本的异常检测方法及其终端
CN108616498A (zh) * 2018-02-24 2018-10-02 国家计算机网络与信息安全管理中心 一种web访问异常检测方法和装置
CN109325865A (zh) * 2018-08-13 2019-02-12 中国平安人寿保险股份有限公司 异常处理方法、装置、计算机设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
安全客: "基于机器学习的Web异常检测", pages 1 - 7, Retrieved from the Internet <URL:https://mp.weixin.qq.com/s/f7x8JtDeKf0Sz7-EXX2FLA> *
张健: "达观数据分享文本大数据的机器学习自动分类方法", pages 2 - 26, Retrieved from the Internet <URL:https://mp.weixin.qq.com/s/RTxLTwNgmpXcuPe7vzI82g> *

Also Published As

Publication number Publication date
CN111930545B (zh) 2023-11-03

Similar Documents

Publication Publication Date Title
CN109697162B (zh) 一种基于开源代码库的软件缺陷自动检测方法
CN110020422B (zh) 特征词的确定方法、装置和服务器
CN107204960B (zh) 网页识别方法及装置、服务器
CN110263009B (zh) 日志分类规则的生成方法、装置、设备及可读存储介质
US10565253B2 (en) Model generation method, word weighting method, device, apparatus, and computer storage medium
CN110704603B (zh) 一种通过资讯发掘当前热点事件的方法和装置
CN112035599B (zh) 基于垂直搜索的查询方法、装置、计算机设备及存储介质
Kobayashi et al. Towards an NLP-based log template generation algorithm for system log analysis
WO2021174812A1 (zh) 用于画像的数据的清洗方法、装置、介质及电子设备
CN109783805B (zh) 一种网络社区用户识别方法、装置和可读存储介质
CN111666766A (zh) 数据处理方法、装置和设备
CN113836316B (zh) 三元组数据的处理方法、训练方法、装置、设备及介质
CN111177719A (zh) 地址类别判定方法、装置、计算机可读存储介质及设备
WO2016033130A1 (en) Computing device classifier improvement through n-dimensional stratified input sampling
CN112613176A (zh) 慢sql语句预测方法及系统
CN111431884A (zh) 一种基于dns分析的主机失陷检测方法及装置
US9824140B2 (en) Method of creating classification pattern, apparatus, and recording medium
CN105677827B (zh) 一种表单的获取方法及装置
CN115757995A (zh) 无特征数据标签处理方法、装置、计算机设备及存储介质
CN113688240B (zh) 威胁要素提取方法、装置、设备及存储介质
CN114528908A (zh) 网络请求数据分类模型训练方法、分类方法及存储介质
CN111930545B (zh) Sql脚本处理方法、装置和服务器
CN115964478A (zh) 网络攻击检测方法、模型训练方法及装置、设备及介质
CN111695031A (zh) 基于标签的搜索方法、装置、服务器及存储介质
CN112187768B (zh) 不良信息网站的检测方法、装置、设备及可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant