CN102609462A - 一种通过提取sql模板对海量sql压缩存储的方法 - Google Patents
一种通过提取sql模板对海量sql压缩存储的方法 Download PDFInfo
- Publication number
- CN102609462A CN102609462A CN2012100116028A CN201210011602A CN102609462A CN 102609462 A CN102609462 A CN 102609462A CN 2012100116028 A CN2012100116028 A CN 2012100116028A CN 201210011602 A CN201210011602 A CN 201210011602A CN 102609462 A CN102609462 A CN 102609462A
- Authority
- CN
- China
- Prior art keywords
- sql
- database
- audit
- information
- unique identifier
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据库信息存储技术,旨在提供一种通过提取SQL模板对海量SQL压缩存储的方法。该方法包括:(1)数据库审计系统对SQL的参数常量进行识别,取出这些信息并以带固定前辍且顺序数字编号的内容替换,形成不带具体参数只带变量的SQL行为模板的字符串;(2)将得到的SQL行为模板通过HASH算法生成长整形表示的唯一识别码,并在审计系统中维持其对应关系;(3)在实际存储时,把相关信息存入数据库审计系统的数据库,该SQL审计记录中的SQL信息将以唯一识别码和参数常量代替。本发明极大地节约了冗余部分的存储开销,同时又对对审计内容的完整性不产生任何不良影响,从而实现了不损害审计记录完整性前提下快速存储和节省地磁盘存储的目的。
Description
技术领域
本发明涉及数据库审计系统的信息存储技术领域。具体涉及海量SQL数据的压缩存储,特别是一种快速存储、节省数据库审计内容存储量的方法。
技术背景
随着运营商用户规模不断扩大、企业业务平台的不断扩容、电子商务平台和云平台的兴起,其业务数据库每秒产生的查询、更新等操作数量也越来越大,这对数据库审计系统的存储容量要求也越来越高,如何快速、节省地保存海量数据也愈发紧迫。
数据库审计系统的存储内容主要是SQL请求及其相关信息,对应不同的业务系统,每条SQL的长度从几个字节到几十K不等,审计记录一般存储在审计系统的数据库或文件系统中,每条审计记录都包含一条详细的SQL语句。对于需要在线查询的审计数据,出于在海量数据中查询性能的考虑,一般不采用压缩方式存储,这样就需要大量的磁盘空间来保存数据,对于离线方式保存的数据则一般采用对归档表进行压缩,对庞大的磁盘存储压缩归档意味着大量的CPU、IO资源及时间开销。
另一方面,巨量的审计数据对还原历史数据进行追溯也非常不方便,每天几GB甚至上百GB的数据量,要解压缩并恢复到对应的审计设备上进行查询,也非常耗时,而更大的磁盘存储总是意味着更大的时间开销。
综上所述,针对信息时代数据库SQL审计信息呈指数化增长的现状,数据库审计系统如何找到一种更加快速、高效、节约磁盘空间的存储方法变得非常迫切。
发明内容
本发明要解决的技术问题是,针对传统的数据库审计系统中海量SQL的审计导致的存储空间过大、利用率不高的问题,提供一种通过提取SQL模板对海量SQL压缩存储的方法。
为解决该技术问题,本发明的解决方案是:
提供一种通过提取SQL模板对海量SQL压缩存储的方法,包括步骤:
(1)数据库审计系统审计到一条SQL时,对SQL中包括的参数常量进行识别,取出这些信息并以带固定前辍且顺序数字编号的内容替换,形成不带具体参数只带变量的SQL行为模板的字符串;
(2)替换完成后的内容,我们称之为SQL行为模板,它代表某种业务行为,具备模型的特性,随后将得到的SQL行为模板通过HASH算法生成长整形表示的唯一识别码,并在审计系统中维持一份SQL行为模板和唯一识别码的对应关系;
(3)在实际存储该SQL审计记录时,把唯一识别码、替换出来的参数常量、SQL行为模板本身、及其他相关信息存入数据库审计系统的数据库;其中,一个SQL行为模板只保存一份,而该SQL审计记录中的SQL信息将以唯一识别码和参数常量代替,从而节省磁盘存储。
本发明中,所述SQL中包含的参数常量是数字、字符串或日期。
本发明中,还包括基于SQL行为模板生成的唯一识别码,根据预置的规则对同一行为的SQL进行过滤,从而剔除客户不关心的或属于白名单性质的SQL。
本发明中,还包括针对替换出来的动态参数中包含的敏感信息进行专项加密处理,以防止敏感信息在被审计出来后被二次泄露。
本发明中,所述动态参数中包含的敏感信息是:密码、手机号或身份证号码。
本发明是对数据库审计系统审计出来的SQL中包含的数字、字符串、日期等参数常量进行快速替换,取而代之的是带固定前辍且顺序数字编号的变量,这样处理形成的字符串就是不带具体参数只带变量的SQL行为模板,该SQL行为模板再通过HASH算法生成长整形表示的唯一识别码,并在审计系统中维持一份SQL行为模板和唯一识别码的对应关系,而该SQL审计记录在实际存储时只保存对应的SQL唯一识别码及替换出来的参数常量,由于长整形表示的唯一识别码总是比SQL行为模板要短得多,所以将极大节省存储空间并提升入库性能,从而实现快速存储和节省磁盘存储的目的。
本发明适用于审计各种数据库类型及各种数据库版本,还可以基于SQL行为模板,对业务系统的业务分析、SQL优化、恶意行为分析提供极有效的帮助。
本发明的有益效果在于:
本发明通过替换SQL中的参数常量形成公共的SQL行为模板,通过提取传统数据库审计系统中的冗余部分,极大地节约了该冗余部分的存储开销,同时又对每个审计记录中的SQL提取了各自的参数常量并进行了存储,所以对审计内容的完整性不产生任何不良影响,从而实现了不损害审计记录完整性前提下快速存储和节省地磁盘存储的目的。
附图说明
图1是一种通过提取SQL模板对海量SQL压缩存储的工作原理图。
图2是SQL模板唯一识别码生成工作流程图。
图3是SQL模板等信息存储工作流程图。
具体实施方式
首先需要说明的是,本发明涉及数据库技术,是计算机技术在信息安全技术领域的一种应用。在本发明的实现过程中,会涉及到多个软件功能模块的应用。申请人认为,如在仔细阅读申请文件、准确理解本发明的实现原理和发明目的以后,在结合现有公知技术的情况下,本领域技术人员完全可以运用其掌握的软件编程技能实现本发明。前述软件功能模块包括但不限于:SQL行为模板的生成、SQL行为模板唯一识别码的生成、SQL中参数常量的提取等,凡本发明申请文件提及的均属此范畴,申请人不再一一列举。
为确保理解准确、避免产生歧义或不清楚,首先对本发明涉及的部分术语进行解释如下:
SQL:结构化查询语言(Structured Query Language),用于对数据库进行数据查询、维护的语言。
数据库审计系统:是一种对各种类型数据库的SQL操作进行还原、记录的审计系统。
SQL行为模板:对具体的SQL语句中的参数常量用带固定前辍且顺序数字编号的变量替换后形成的字符串,SQL行为模板总是能代表一种业务系统的某个具体的业务功能,可以抽象为一种行为意图。
唯一识别码:由HASH生成的一个唯一标识某一个SQL行为模板的数字。
本发明的实现原理是:
首先通过数据库审计系统取到SQL内容,然后通过算法对其中的参数常量进行快速替换,替换的内容是带固定前辍且顺序数字编号的变量,替换出的参数根据敏感程度,进行加密处理,SQL中的参数用带固定前辍且顺序数字编号的变量替换后形成的字符串就是SQL行为模板,再通过HASH算法生成该SQL行为模板的唯一识别码,并在审计系统中维持一份SQL行为模板和唯一识别码的对应关系,而该SQL审计记录在实际存储时只保存对应的SQL唯一识别码及替换出来的参数常量,由于长整形表示的唯一识别码总是比SQL行为模板要短得多,所以将极大节省存储空间并提升入库性能,从而实现快速存储和节省磁盘存储的目的。
以下是一种通过提取SQL模板对海量SQL压缩存储典型的实施案例:
假设要对一个Oracle10g数据库进行数据库审计。
首先配置一个审计对象并生成SQL模板字符串,具体处理流程如图1所示,包括如下步骤:
步骤1-1:开启审计系统;
步骤1-2:针对我们的审计对象进行必要的配置;
主要输入数据库IP、端口、版本、操作系统类型等信息。
步骤1-3:把旁路流量镜象到数据库审计系统
所谓旁路流量是指通过交换机等网络设备的“端口镜像”功能,把流经交换机指定端口的流量拷贝一份到这个交换机的某一个输出端口,流向这个输出端口的流量就是旁路流量,把这个端口输出的流量通过网线接入到审计系统的采集端口,审计系统就能捕获审计对象的访问内容。
步骤1-4:审计到一条SQL;
通过审计系统的审计功能,审计到数据库中操作内容。
步骤1-5:进行参数常量提取前的判断;
会根据算法进行快速扫描,决定是否进行参数常量的提取,以提高处理性能。
步骤1-6:进行参数常量提取;
提取出其中的常量,替换上带固定前辍且顺序数字编号的变量
步骤1-6:形成SQL模板字符串;
到此为止针对一条SQL的处理过程完成,针对没有参数常量的SQL,就不需要进行提取,SQL本身就是SQL模板字符串。
接下来,需要对生成的SQL模板字符串进行唯一识别码生成处理
步骤2-1:取出SQL模板字符串;
步骤2-2:调用HASH算法;
步骤2-3:生成长整型唯一识别码;
这是一个长整型数字,就是SQL模板唯一识别码;
最后,把生成的SQL模板字符串、长整型唯一识别码、提取出来的常量保存到审计系统的数据库中。
步骤3-1:保存涉及信息1:SQL模板字符串;
这是一串不带任何常量的字符串,代表一种业务行为,用于帮助审计人员了解其包含的某种具有逻辑含义的行为内容。
步骤3-2:保存涉及信息2:长整型唯一识别码;
和SQL模板字符串是一对一的关系,是节省存储空间的具体表现,把原来存在于审计行为中可能非常占空间的SQL,变换成有限长度的整形。
步骤3-3:保存涉及信息3:提取出来的常量;
这些是变化的内容,和长整型唯一识别码配合,可以准确的还原原始的SQL内容。
步骤3-4:保存到审计系统数据库关系表;
把步骤3-1和步骤3-2涉及的内容,也就是SQL模板字符串和长整型唯一识别码一对一的对应关系,保存下来,用于还原、显示原始SQL使用。
步骤3-5:保存到审计系统数据库主表;
把步骤3-2和步骤3-3涉及的内容,也就是长整型唯一识别码和它对应的常量,一起保存在主审计表中,用于表达变化的内容。
到此为止,利用以上步骤,我们既保证了审计SQL的完整性,又利用SQL长整型唯一识别码大大节省了存储空间。
该实施案例在传统的一个审计记录存储一条完整的SQL信息的方法,和本发明提取SQL行为模板后一个审计记录只存储SQL行为模板的唯一识别码和参数常量后的磁盘存储变化如下:
假设有一条SQL长度是10K字节,如果一小时之内执行了100万次,那么它的存储要求量是:10K*1000000=9.5G;
如果换成本发明使用的方法处理后,会形成以下内容:
1.SQL模板字符串:10K左右*1条;
2.SQL模板唯一识别码:4字节*1条;
3.对应关系:10K+4字节;
4.参数列表:100字节*1000000条;
最后存储这100万条SQL的存储要求量是:10K+4(对应关系)+(4+100)*1000000=105M。
在整个数据库审计的过程中,通过上述方法,就可以实现快速、高效、安全并且以较传统方法小得多的存储代价进行海量SQL的存储。
Claims (5)
1.一种通过提取SQL模板对海量SQL压缩存储的方法,其特征在于,包括步骤:
(1)数据库审计系统审计到一条SQL时,对SQL中包括的参数常量进行识别,取出这些信息并以带固定前辍且顺序数字编号的内容替换,形成不带具体参数只带变量的SQL行为模板的字符串;
(2)将得到的SQL行为模板通过HASH算法生成长整形表示的唯一识别码,并在审计系统中维持一份SQL行为模板和唯一识别码的对应关系;
(3)在实际存储该SQL审计记录时,把唯一识别码、替换出来的参数常量、SQL行为模板本身、及其他相关信息存入数据库审计系统的数据库;其中,一个SQL行为模板只保存一份,而该SQL审计记录中的SQL信息将以唯一识别码和参数常量代替。
2.根据权利要求1所述的方法,其特征在于,所述SQL中包含的参数常量是数字、字符串或日期。
3.根据权利要求1所述的方法,其特征在于,还包括基于SQL行为模板生成的唯一识别码,根据预置的规则对同一行为的SQL进行过滤,从而剔除客户不关心的或属于白名单性质的SQL。
4.根据权利要求1所述的方法,其特征在于,还包括针对替换出来的动态参数中包含的敏感信息进行专项加密处理,以防止敏感信息在被审计出来后被二次泄露。
5.根据权利要求4所述的方法,其特征在于,所述动态参数中包含的敏感信息是:密码、手机号或身份证号码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100116028A CN102609462A (zh) | 2012-01-14 | 2012-01-14 | 一种通过提取sql模板对海量sql压缩存储的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100116028A CN102609462A (zh) | 2012-01-14 | 2012-01-14 | 一种通过提取sql模板对海量sql压缩存储的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102609462A true CN102609462A (zh) | 2012-07-25 |
Family
ID=46526834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012100116028A Pending CN102609462A (zh) | 2012-01-14 | 2012-01-14 | 一种通过提取sql模板对海量sql压缩存储的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102609462A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902798A (zh) * | 2012-10-11 | 2013-01-30 | 德讯科技股份有限公司 | 一种针对Informix数据库的SQL信息采集和审计方法及其系统 |
CN103365963A (zh) * | 2013-06-20 | 2013-10-23 | 广州赛姆科技资讯有限公司 | 数据库稽核系统合规性快速检验方法 |
CN103984550A (zh) * | 2014-05-15 | 2014-08-13 | 浪潮电子信息产业股份有限公司 | 一种分布式模块化系统的变长序列号算法 |
CN105373607A (zh) * | 2015-11-13 | 2016-03-02 | 国网智能电网研究院 | 一种电力业务系统sql访问日志压缩方法 |
CN105912594A (zh) * | 2016-04-05 | 2016-08-31 | 深圳市深信服电子科技有限公司 | Sql语句处理方法和系统 |
CN106709342A (zh) * | 2016-07-01 | 2017-05-24 | 腾讯科技(深圳)有限公司 | 恶意程序检测方法及装置 |
CN107295009A (zh) * | 2017-08-01 | 2017-10-24 | 杭州安恒信息技术有限公司 | 一种旁路审计sqlserver连接信息的方法 |
CN107766431A (zh) * | 2017-09-18 | 2018-03-06 | 杭州安恒信息技术有限公司 | 一种基于语法解析的去参数化功能方法及系统 |
CN107885876A (zh) * | 2017-11-29 | 2018-04-06 | 北京安华金和科技有限公司 | 一种基于sql语句改写的动态脱敏方法 |
CN108021559A (zh) * | 2018-02-05 | 2018-05-11 | 威盛电子股份有限公司 | 自然语言理解系统以及语意分析方法 |
CN112364015A (zh) * | 2020-10-27 | 2021-02-12 | 北京新数科技有限公司 | 一种SQL语句唯一性hashID的计算方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050198074A1 (en) * | 2004-03-08 | 2005-09-08 | Transreplicator, Inc. | Apparatus, systems and methods for relational database replication and proprietary data transformation |
CN101453358A (zh) * | 2007-12-06 | 2009-06-10 | 北京启明星辰信息技术股份有限公司 | 一种oracle数据库绑定变量的sql语句审计方法及系统 |
CN101853289A (zh) * | 2010-05-26 | 2010-10-06 | 杭州华三通信技术有限公司 | 一种数据库审计方法和设备 |
-
2012
- 2012-01-14 CN CN2012100116028A patent/CN102609462A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050198074A1 (en) * | 2004-03-08 | 2005-09-08 | Transreplicator, Inc. | Apparatus, systems and methods for relational database replication and proprietary data transformation |
CN101453358A (zh) * | 2007-12-06 | 2009-06-10 | 北京启明星辰信息技术股份有限公司 | 一种oracle数据库绑定变量的sql语句审计方法及系统 |
CN101853289A (zh) * | 2010-05-26 | 2010-10-06 | 杭州华三通信技术有限公司 | 一种数据库审计方法和设备 |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902798A (zh) * | 2012-10-11 | 2013-01-30 | 德讯科技股份有限公司 | 一种针对Informix数据库的SQL信息采集和审计方法及其系统 |
CN103365963A (zh) * | 2013-06-20 | 2013-10-23 | 广州赛姆科技资讯有限公司 | 数据库稽核系统合规性快速检验方法 |
CN103365963B (zh) * | 2013-06-20 | 2016-06-01 | 广州赛姆科技资讯有限公司 | 数据库稽核系统合规性快速检验方法 |
CN103984550B (zh) * | 2014-05-15 | 2018-03-27 | 浪潮电子信息产业股份有限公司 | 一种分布式模块化系统中变长序列号的方法 |
CN103984550A (zh) * | 2014-05-15 | 2014-08-13 | 浪潮电子信息产业股份有限公司 | 一种分布式模块化系统的变长序列号算法 |
CN105373607A (zh) * | 2015-11-13 | 2016-03-02 | 国网智能电网研究院 | 一种电力业务系统sql访问日志压缩方法 |
CN105373607B (zh) * | 2015-11-13 | 2020-04-24 | 国网智能电网研究院 | 一种电力业务系统sql访问日志压缩方法 |
CN105912594A (zh) * | 2016-04-05 | 2016-08-31 | 深圳市深信服电子科技有限公司 | Sql语句处理方法和系统 |
CN105912594B (zh) * | 2016-04-05 | 2020-01-07 | 深信服科技股份有限公司 | Sql语句处理方法和系统 |
CN106709342B (zh) * | 2016-07-01 | 2018-11-09 | 腾讯科技(深圳)有限公司 | 恶意程序检测方法及装置 |
CN106709342A (zh) * | 2016-07-01 | 2017-05-24 | 腾讯科技(深圳)有限公司 | 恶意程序检测方法及装置 |
CN107295009A (zh) * | 2017-08-01 | 2017-10-24 | 杭州安恒信息技术有限公司 | 一种旁路审计sqlserver连接信息的方法 |
CN107766431A (zh) * | 2017-09-18 | 2018-03-06 | 杭州安恒信息技术有限公司 | 一种基于语法解析的去参数化功能方法及系统 |
CN107766431B (zh) * | 2017-09-18 | 2020-07-03 | 杭州安恒信息技术股份有限公司 | 一种基于语法解析的去参数化功能方法及系统 |
CN107885876A (zh) * | 2017-11-29 | 2018-04-06 | 北京安华金和科技有限公司 | 一种基于sql语句改写的动态脱敏方法 |
CN108021559A (zh) * | 2018-02-05 | 2018-05-11 | 威盛电子股份有限公司 | 自然语言理解系统以及语意分析方法 |
CN112364015A (zh) * | 2020-10-27 | 2021-02-12 | 北京新数科技有限公司 | 一种SQL语句唯一性hashID的计算方法和装置 |
CN112364015B (zh) * | 2020-10-27 | 2024-02-23 | 北京新数科技有限公司 | 一种SQL语句唯一性hashID的计算方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102609462A (zh) | 一种通过提取sql模板对海量sql压缩存储的方法 | |
US11823072B2 (en) | Customer behavior predictive modeling | |
CN104331435B (zh) | 一种基于Hadoop大数据平台的低影响高效率的海量数据抽取方法 | |
CN110825363B (zh) | 智能合约获取方法、装置、电子设备及存储介质 | |
CN102253991B (zh) | Url存储方法、网页过滤方法、装置及系统 | |
CN102870116B (zh) | 内容匹配方法和装置 | |
Jeong et al. | Anomaly teletraffic intrusion detection systems on hadoop-based platforms: A survey of some problems and solutions | |
CN106649676A (zh) | 一种基于hdfs存储文件的去重方法及装置 | |
US10706102B2 (en) | Operation efficiency management with respect to application run-time | |
CN104102701A (zh) | 一种基于hive的历史数据存档与查询方法 | |
CN105677903A (zh) | 获取数据的方法和装置、计算机设备 | |
CN113791586A (zh) | 一种新型的工业app与标识注册解析集成方法 | |
CN111008183B (zh) | 一种用于业务风控日志数据的存储方法及系统 | |
CN112182004A (zh) | 实时查看数据方法、装置、计算机设备及存储介质 | |
CN106570153A (zh) | 一种海量url的数据提取方法及系统 | |
CN105302915A (zh) | 基于内存计算的高性能数据处理系统 | |
CN101710322A (zh) | 一种信息关联的方法和系统 | |
CN112528323A (zh) | 一种数据处理方法和装置 | |
CN104484174B (zh) | Rar格式的压缩文件的处理方法和装置 | |
CN106156904B (zh) | 一种基于eID的跨平台虚拟资产溯源方法 | |
CN110941952A (zh) | 一种完善审计分析模型的方法及装置 | |
CN114511330A (zh) | 一种基于改进的cnn-rf的以太坊庞氏骗局检测方法及系统 | |
CN112561538A (zh) | 风险模型创制方法、装置、计算机设备及可读存储介质 | |
CN110362595A (zh) | 一种sql语句动态解析方法 | |
Wang et al. | Tunnel security management based on association rule mining under Hadoop platform |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120725 |