一种数据解析方法、装置及计算机可读存储介质与流程

文档序号:30055011发布日期:2022-05-17 17:25阅读:来源:国知局

技术特征:
1.一种数据解析方法,其特征在于,包括:获取待解析目标数据库流量数据;依据预先获取的结构化查询语言sql语句提取特征值,确定所述待解析目标数据库流量数据中的sql语句的长度和起始位置,其中,所述sql语句提取特征值包括子功能偏移值常量、sql语句长度标识位的相对偏移值常量和sql语句起始位的相对偏移值范围;依据所述sql语句的长度和起始位置,从所述待解析目标数据库流量数据中提取sql语句,得到所述待解析目标数据库流量数据中的sql语句内容。2.根据权利要求1所述的方法,其特征在于,所述依据预先获取的结构化查询语言sql语句提取特征值,确定所述待解析目标数据库流量数据中的sql语句的长度和起始位置之前,所述方法还包括:获取n条目标数据库抽样流量数据,n为大于1的整数,所述n条目标数据库抽样流量数据包括不同场景中的目标数据库流量数据;确定每条目标数据库抽样流量数据的子功能偏移值、sql语句起始位的相对偏移值和sql语句长度标识位的相对偏移值;基于每条目标数据库抽样流量数据的子功能偏移值,确定子功能偏移值常量;基于每条目标数据库抽样流量数据中的sql语句起始位的相对偏移值,确定sql语句起始位的相对偏移值范围;基于每条目标数据库抽样流量数据中的sql语句长度标识位的相对偏移值,确定sql语句长度标识位的相对偏移值常量;将所述子功能偏移值常量、所述sql语句起始位的相对偏移值范围和所述sql语句长度标识位的相对偏移值常量确定为所述sql语句提取特征值。3.根据权利要求2所述的方法,其特征在于,所述确定每条目标数据库抽样流量数据的子功能偏移值、sql语句起始位的相对偏移值和sql语句长度标识位的相对偏移值,包括:分别检索每条目标数据库抽样流量数据中的目标子功能值位置,并依据每条目标数据库抽样流量数据中的目标子功能值位置,确定每条目标数据库抽样流量数据的子功能偏移值;分别检索每条目标数据库抽样流量数据中的sql语句起始位置,并依据每条目标数据库抽样流量数据中的sql语句起始位置,确定每条目标数据库抽样流量数据中的sql语句起始位的相对偏移值;分别检索每条目标数据库抽样流量数据中的sql语句结束位置,并依据每条目标数据库抽样流量数据中的sql语句起始位置和sql语句结束位置,确定每条目标数据库抽样流量数据中的sql语句长度;依据每条目标数据库抽样流量数据中的sql语句长度,确定每条目标数据库抽样流量数据中的sql语句长度标识位的相对偏移值。4.根据权利要求3所述的方法,其特征在于,所述分别检索每条目标数据库抽样流量数据中的sql语句起始位置,并依据每条目标数据库抽样流量数据中的sql语句起始位置,确定每条目标数据库抽样流量数据中的sql语句起始位的相对偏移值,包括:将偏移量赋值为第一预设值m,m为大于1的整数;获取第一目标数据库抽样流量数据中的第m-1个字节和第m个字节的第一组合值,其
中,所述第一目标数据库抽样流量数据为所述n条目标数据库抽样流量数据中的任一条目标数据库抽样流量数据;若所述第一组合值为第一目标值,则从所述第一目标数据库抽样流量数据中的第m+1个字节开始,检索第m+1+j个字节及第m+1+j个字节之后的l个字节是否为预设字符,l为正整数,j的初始值为0;若检索到第m+1+j个字节不为预设字符,或者第m+1+j个字节之后的l个字节不为预设字符,则将j的值加1,并重复上述检索第m+1+j个字节及第m+1+j个字节之后的l个字节是否为预设字符的步骤,直至检索到第m+1+j个字节及第m+1+j个字节之后的l个字节为预设字符;若检索到第m+1+j个字节及第m+1+j个字节之后的l个字节为预设字符,则判断第m+1+j个字节是否为sql语句的起始位置;若确定第m+1+j个字节为sql语句的起始位置,则确定所述第一目标数据库抽样流量数据中的sql语句起始位置为第m+1+j个字节,并确定所述第一目标数据库抽样流量数据中的sql语句起始位的相对偏移值为j。5.根据权利要求4所述的方法,其特征在于,所述判断第m+1+j个字节是否为sql语句的起始位置,包括:从所述第一目标数据库抽样流量数据中的第m+1+j个字节开始,检索第m+1+j+g个字节是否为间隔符,g的初始值为0;若检索到第m+1+j+g个字节不为间隔符,则将g的值加1,并重复上述检索第m+1+j+g个字节是否为间隔符的步骤,直至检索到第m+1+j+g个字节为间隔符,或者g等于第二预设值;若检索到第m+1+j+g个字节为间隔符,则将第m+1+j个字节至第m+j+g个字节的值相加,得到总值;判断所述总值是否属于sql关键词的值集合,其中,若所述总值属于sql关键词的值集合,则确定第m+1+j个字节为sql语句的起始位置。6.根据权利要求4所述的方法,其特征在于,所述分别检索每条目标数据库抽样流量数据中的目标子功能值位置,并依据每条目标数据库抽样流量数据中的目标子功能值位置,确定每条目标数据库抽样流量数据的子功能偏移值,包括:若所述第一组合值为第二目标值,则从所述第一目标数据库抽样流量数据中的第m+1个字节开始,检索第m+1+i个字节和第m+i+2个字节的第二组合值是否为所述第一目标值,i的初始值为0;若所述第二组合值不为所述第一目标值,则将i的值加1,并重复上述检索第m+1+i个字节和第m+i+2个字节的第二组合值是否为所述第一目标值的步骤,直至检索到所述第二组合值为所述第一目标值;若所述第二组合值为所述第一目标值,则确定所述第一目标数据库抽样流量数据中的目标子功能值位置为第m+1+i个字节,并确定所述第一目标数据库抽样流量数据的子功能偏移值为i+2。7.根据权利要求4所述的方法,其特征在于,所述分别检索每条目标数据库抽样流量数据中的sql语句结束位置,并依据每条目标数据库抽样流量数据中的sql语句起始位置和sql语句结束位置,确定每条目标数据库抽样流量数据中的sql语句长度,包括:
若确定第m+1+j个字节为sql语句的起始位置,则从所述第一目标数据库抽样流量数据中的第m+1+j个字节开始,检索第m+1+j+k个字节是否为sql语句的结束标识符,k的初始值为0;若检索到第m+1+j+k个字节不为sql语句的结束标识符,则将k的值加1,并重复上述检索第m+1+j+k个字节是否为sql语句的结束标识符,直至检索到第m+1+j+k个字节为sql语句的结束标识符;若检索到第m+1+j+k个字节为sql语句的结束标识符,则确定所述第一目标数据库抽样流量数据中的sql语句结束位置为第m+1+j+k个字节,并确定所述第一目标数据库抽样流量数据中的sql语句长度为k。8.根据权利要求7所述的方法,其特征在于,所述依据每条目标数据库抽样流量数据中的sql语句长度,确定每条目标数据库抽样流量数据中的sql语句长度标识位的相对偏移值,包括:在确定所述第一目标数据库抽样流量数据中的sql语句长度为k的情况下,若所述k的值小于第三预设值,则在所述第一目标数据库抽样流量数据中的第q+1个字节至第q+1+j个字节之间检索值为k的目标字节,其中,q等于所述第一预设值与所述第一目标数据库抽样流量数据的子功能偏移值之和;若所述k的值大于或等于第三预设值,则在所述第一目标数据库抽样流量数据中的第q+1个字节至第q+1+j个字节之间检索连续两个字节值分别为第三目标值和第四目标值的两个字节,并将所述两个字节中的第一个字节确定为目标字节,其中,所述第三目标值为k除以所述第三预设值的商,所述第四目标值为k除以所述第三预设值的余数;依据所述目标字节所在的位置,确定所述第一目标数据库抽样流量数据中的sql语句长度标识位的相对偏移值。9.根据权利要求2所述的方法,其特征在于,所述基于每条目标数据库抽样流量数据中的sql语句起始位的相对偏移值,确定sql语句起始位的相对偏移值范围,包括:对所述每条目标数据库抽样流量数据中的sql语句起始位的相对偏移值进行去重计数统计,得到p个不同的sql语句起始位的相对偏移值,并确定每个sql语句起始位的相对偏移值对应的计数,p为小于或等于n的正整数;将所述p个不同的sql语句起始位的相对偏移值按值的大小进行排序,得到排序后的sql语句起始位的相对偏移值集合;依据预先设定的提取比例阈值,确定所述相对偏移值集合中计数之和大于目标计数值的最小相对偏移值子集合,其中,所述目标计数值等于所述相对偏移值集合中所有相对偏移值的计数之和与所述提取比例阈值的乘积;依据所述最小相对偏移值子集合中的最大相对偏移值和最小相对偏移值,确定sql语句起始位的相对偏移值范围。10.根据权利要求1所述的方法,其特征在于,所述依据预先获取的结构化查询语言sql语句提取特征值,确定所述待解析目标数据库流量数据中的sql语句的长度和起始位置,包括:将偏移量赋值为第一预设值m,m为大于1的整数;获取所述待解析目标数据库流量数据中的第m-1个字节和第m个字节的第三组合值;
若所述第三组合值为第一目标值,则依据所述sql语句长度标识位的相对偏移值常量off_len,获取所述待解析目标数据库流量数据中的第m+off_len个字节的值,得到sql语句长度标识位数;依据所述sql语句长度标识位数和所述sql语句长度标识位的相对偏移值常量,获取所述待解析目标数据库流量数据中的sql语句的长度;依据所述sql语句起始位的相对偏移值范围,从所述待解析目标数据库流量数据中检索sql语句开始标识符;若检索到所述待解析目标数据库流量数据中的第m+r-1个字节为sql语句开始标识符,则判断第m+r个字节是否为sql语句的起始位置,r为正整数;若确定第m+r个字节为sql语句的起始位置,则确定所述待解析目标数据库流量数据中的sql语句的起始位置为第m+r个字节。11.根据权利要求10所述的方法,其特征在于,所述获取所述待解析目标数据库流量数据中的第m-1个字节和第m个字节的第三组合值之后,所述方法还包括:若所述第三组合值为第二目标值,则依据所述子功能偏移值常量off_5e,将所述m的值更新为m+off_5e,并执行所述获取所述待解析目标数据库流量数据中的第m+off_len个字节的值的步骤。12.根据权利要求10所述的方法,其特征在于,所述方法还包括:若所述sql语句长度标识位数不为第五目标值,或者,未检索到sql语句开始标识符,或者,确定第m+r个字节不为sql语句的起始位置,则确认sql语句提取失败。13.根据权利要求12所述的方法,其特征在于,所述确认sql语句提取失败之后,所述方法还包括:从所述待解析目标数据库流量数据中的第m+o+1个字节开始,检索第m+o+1+s个字节及第m+o+1+s个字节之后的l个字节是否为预设字符,o为预设检索偏移范围的最小值,o为正整数,l为正整数,s的初始值为0;若检索到第m+o+1+s个字节不是预设字符,或者第m+o+1+s个字节之后的l个字节不是预设字符,则将s的值加1,并重复上述检索第m+o+1+s个字节及第m+o+1+s个字节之后的l个字节是否为预设字符的步骤,直至检索到第m+o+1+s个字节及第m+o+1+s个字节之后的l个字节为预设字符,或者,o+s=o,o为所述预设检索偏移范围的最大值,o为大于o的整数;若检索到第m+o+1+s个字节及第m+o+1+s个字节之后的l个字节为预设字符,则判断第m+o+1+s个字节是否为sql语句的起始位置;若确定第m+o+1+s个字节为sql语句的起始位置,则记录第m+o+1+s个字节为所述待解析目标数据库流量数据中的sql语句的起始位置;从所述待解析目标数据库流量数据中的第m+o+1+s个字节开始检索sql语句结束标识符;若检索到所述待解析目标数据库流量数据中的第t个字节为sql语句结束标识符,则从所述待解析目标数据库流量数据中提取第m+o+1+s个字节至第t-1个字节的内容为sql语句内容,其中,t为大于m+o+1+s的整数。14.一种数据解析装置,其特征在于,包括:第一获取模块,用于获取待解析目标数据库流量数据;
第一确定模块,用于依据预先获取的结构化查询语言sql语句提取特征值,确定所述待解析目标数据库流量数据中的sql语句的长度和起始位置,其中,所述sql语句提取特征值包括子功能偏移值常量、sql语句长度标识位的相对偏移值常量和sql语句起始位的相对偏移值范围;提取模块,用于依据所述sql语句的长度和起始位置,从所述待解析目标数据库流量数据中提取sql语句,得到所述待解析目标数据库流量数据中的sql语句内容。15.一种数据解析装置,其特征在于,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如权利要求1至13中任一项所述的数据解析方法中的步骤。16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至13中任一项所述的数据解析方法中的步骤。

技术总结
本发明公开了一种数据解析方法、装置及计算机可读存储介质,涉及通信技术领域,以解决现有对Oracle流量数据中的SQL语句解析方式适用场景固定的问题。该方法包括:获取待解析目标数据库流量数据;依据预先获取的结构化查询语言SQL语句提取特征值,确定所述待解析目标数据库流量数据中的SQL语句的长度和起始位置,其中,所述SQL语句提取特征值包括子功能偏移值常量、SQL语句长度标识位的相对偏移值常量和SQL语句起始位的相对偏移值范围;依据所述SQL语句的长度和起始位置,从所述待解析目标数据库流量数据中提取SQL语句,得到所述待解析目标数据库流量数据中的SQL语句内容。本发明实施例可适用于对不同场景中的目标数据库流量数据进行SQL语句解析。库流量数据进行SQL语句解析。库流量数据进行SQL语句解析。


技术研发人员:刘颖卿 张星 李春梅 吕临颖 米婧 刘芳
受保护的技术使用者:中国移动通信集团有限公司
技术研发日:2020.11.11
技术公布日:2022/5/16
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1