亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種通過提取sql模板對海量sql壓縮存儲的方法

文檔序號:6363224閱讀:231來源:國知局
專利名稱:一種通過提取sql模板對海量sql壓縮存儲的方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)庫審計(jì)系統(tǒng)的信息存儲技術(shù)領(lǐng)域。具體涉及海量SQL數(shù)據(jù)的壓縮存儲,特別是一種快速存儲、節(jié)省數(shù)據(jù)庫審計(jì)內(nèi)容存儲量的方法。
背景技術(shù)
隨著運(yùn)營商用戶規(guī)模不斷擴(kuò)大、企業(yè)業(yè)務(wù)平臺的不斷擴(kuò)容、電子商務(wù)平臺和云平臺的興起,其業(yè)務(wù)數(shù)據(jù)庫每秒產(chǎn)生的查詢、更新等操作數(shù)量也越來越大,這對數(shù)據(jù)庫審計(jì)系統(tǒng)的存儲容量要求也越來越高,如何快速、節(jié)省地保存海量數(shù)據(jù)也愈發(fā)緊迫。數(shù)據(jù)庫審計(jì)系統(tǒng)的存儲內(nèi)容主要是SQL請求及其相關(guān)信息,對應(yīng)不同的業(yè)務(wù)系統(tǒng),每條SQL的長度從幾個字節(jié)到幾十K不等,審計(jì)記錄一般存儲在審計(jì)系統(tǒng)的數(shù)據(jù)庫或文件系統(tǒng)中,每條審計(jì)記錄都包含一條詳細(xì)的SQL語句。對于需要在線查詢的審計(jì)數(shù)據(jù),出于在海量數(shù)據(jù)中查詢性能的考慮,一般不采用壓縮方式存儲,這樣就需要大量的磁盤空間來保存數(shù)據(jù),對于離線方式保存的數(shù)據(jù)則一般采用對歸檔表進(jìn)行壓縮,對龐大的磁盤存儲壓縮歸檔意味著大量的CPU、IO資源及時(shí)間開銷。另一方面,巨量的審計(jì)數(shù)據(jù)對還原歷史數(shù)據(jù)進(jìn)行追溯也非常不方便,每天幾GB甚至上百GB的數(shù)據(jù)量,要解壓縮并恢復(fù)到對應(yīng)的審計(jì)設(shè)備上進(jìn)行查詢,也非常耗時(shí),而更大的磁盤存儲總是意味著更大的時(shí)間開銷。綜上所述,針對信息時(shí)代數(shù)據(jù)庫SQL審計(jì)信息呈指數(shù)化增長的現(xiàn)狀,數(shù)據(jù)庫審計(jì)系統(tǒng)如何找到一種更加快速、高效、節(jié)約磁盤空間的存儲方法變得非常迫切。

發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是,針對傳統(tǒng)的數(shù)據(jù)庫審計(jì)系統(tǒng)中海量SQL的審計(jì)導(dǎo)致的存儲空間過大、利用率不高的問題,提供一種通過提取SQL模板對海量SQL壓縮存儲的方法。為解決該技術(shù)問題,本發(fā)明的解決方案是提供一種通過提取SQL模板對海量SQL壓縮存儲的方法,包括步驟(I)數(shù)據(jù)庫審計(jì)系統(tǒng)審計(jì)到一條SQL時(shí),對SQL中包括的參數(shù)常量進(jìn)行識別,取出這些信息并以帶固定前輟且順序數(shù)字編號的內(nèi)容替換,形成不帶具體參數(shù)只帶變量的SQL 行為模板的字符串;(2)替換完成后的內(nèi)容,我們稱之為SQL行為模板,它代表某種業(yè)務(wù)行為,具備模型的特性,隨后將得到的SQL行為模板通過HASH算法生成長整形表示的唯一識別碼,并在審計(jì)系統(tǒng)中維持一份SQL行為模板和唯一識別碼的對應(yīng)關(guān)系;(3)在實(shí)際存儲該SQL審計(jì)記錄時(shí),把唯一識別碼、替換出來的參數(shù)常量、SQL行為模板本身、及其他相關(guān)信息存入數(shù)據(jù)庫審計(jì)系統(tǒng)的數(shù)據(jù)庫;其中,一個SQL行為模板只保存一份,而該SQL審計(jì)記錄中的SQL信息將以唯一識別碼和參數(shù)常量代替,從而節(jié)省磁盤存儲。
本發(fā)明中,所述SQL中包含的參數(shù)常量是數(shù)字、字符串或日期。本發(fā)明中,還包括基于SQL行為模板生成的唯一識別碼,根據(jù)預(yù)置的規(guī)則對同一行為的SQL進(jìn)行過濾,從而剔除客戶不關(guān)心的或?qū)儆诎酌麊涡再|(zhì)的SQL。本發(fā)明中,還包括針對替換出來的動態(tài)參數(shù)中包含的敏感信息進(jìn)行專項(xiàng)加密處理,以防止敏感信息在被審計(jì)出來后被二次泄露。本發(fā)明中,所述動態(tài)參數(shù)中包含的敏感信息是密碼、手機(jī)號或身份證號碼。本發(fā)明是對數(shù)據(jù)庫審計(jì)系統(tǒng)審計(jì)出來的SQL中包含的數(shù)字、字符串、日期等參數(shù)常量進(jìn)行快速替換,取而代之的是帶固定前輟且順序數(shù)字編號的變量,這樣處理形成的字符串就是不帶具體參數(shù)只帶變量的SQL行為模板,該SQL行為模板再通過HASH算法生成長整形表示的唯一識別碼,并在審計(jì)系統(tǒng)中維持一份SQL行為模板和唯一識別碼的對應(yīng)關(guān)系,而該SQL審計(jì)記錄在實(shí)際存儲時(shí)只保存對應(yīng)的SQL唯一識別碼及替換出來的參數(shù)常量, 由于長整形表示的唯一識別碼總是比SQL行為模板要短得多,所以將極大節(jié)省存儲空間并提升入庫性能,從而實(shí)現(xiàn)快速存儲和節(jié)省磁盤存儲的目的。本發(fā)明適用于審計(jì)各種數(shù)據(jù)庫類型及各種數(shù)據(jù)庫版本,還可以基于SQL行為模板,對業(yè)務(wù)系統(tǒng)的業(yè)務(wù)分析、SQL優(yōu)化、惡意行為分析提供極有效的幫助。本發(fā)明的有益效果在于本發(fā)明通過替換SQL中的參數(shù)常量形成公共的SQL行為模板,通過提取傳統(tǒng)數(shù)據(jù)庫審計(jì)系統(tǒng)中的冗余部分,極大地節(jié)約了該冗余部分的存儲開銷,同時(shí)又對每個審計(jì)記錄中的SQL提取了各自的參數(shù)常量并進(jìn)行了存儲,所以對審計(jì)內(nèi)容的完整性不產(chǎn)生任何不良影響,從而實(shí)現(xiàn)了不損害審計(jì)記錄完整性前提下快速存儲和節(jié)省地磁盤存儲的目的。


圖I是一種通過提取SQL模板對海量SQL壓縮存儲的工作原理圖。 圖2是SQL模板唯一識別碼生成工作流程圖。圖3是SQL模板等信息存儲工作流程圖。
具體實(shí)施例方式首先需要說明的是,本發(fā)明涉及數(shù)據(jù)庫技術(shù),是計(jì)算機(jī)技術(shù)在信息安全技術(shù)領(lǐng)域的一種應(yīng)用。在本發(fā)明的實(shí)現(xiàn)過程中,會涉及到多個軟件功能模塊的應(yīng)用。申請人認(rèn)為,如在仔細(xì)閱讀申請文件、準(zhǔn)確理解本發(fā)明的實(shí)現(xiàn)原理和發(fā)明目的以后,在結(jié)合現(xiàn)有公知技術(shù)的情況下,本領(lǐng)域技術(shù)人員完全可以運(yùn)用其掌握的軟件編程技能實(shí)現(xiàn)本發(fā)明。前述軟件功能模塊包括但不限于SQL行為模板的生成、SQL行為模板唯一識別碼的生成、SQL中參數(shù)常量的提取等,凡本發(fā)明申請文件提及的均屬此范疇,申請人不再一一列舉。為確保理解準(zhǔn)確、避免產(chǎn)生歧義或不清楚,首先對本發(fā)明涉及的部分術(shù)語進(jìn)行解釋如下SQL :結(jié)構(gòu)化查詢語言(Structured Query Language),用于對數(shù)據(jù)庫進(jìn)行數(shù)據(jù)查詢、維護(hù)的語言。數(shù)據(jù)庫審計(jì)系統(tǒng)是一種對各種類型數(shù)據(jù)庫的SQL操作進(jìn)行還原、記錄的審計(jì)系統(tǒng)。
SQL行為模板對具體的SQL語句中的參數(shù)常量用帶固定前輟且順序數(shù)字編號的變量替換后形成的字符串,SQL行為模板總是能代表一種業(yè)務(wù)系統(tǒng)的某個具體的業(yè)務(wù)功能, 可以抽象為一種行為意圖。唯一識別碼由HASH生成的一個唯一標(biāo)識某一個SQL行為模板的數(shù)字。本發(fā)明的實(shí)現(xiàn)原理是首先通過數(shù)據(jù)庫審計(jì)系統(tǒng)取到SQL內(nèi)容,然后通過算法對其中的參數(shù)常量進(jìn)行快速替換,替換的內(nèi)容是帶固定前輟且順序數(shù)字編號的變量,替換出的參數(shù)根據(jù)敏感程度,進(jìn)行加密處理,SQL中的參數(shù)用帶固定前輟且順序數(shù)字編號的變量替換后形成的字符串就是 SQL行為模板,再通過HASH算法生成該SQL行為模板的唯一識別碼,并在審計(jì)系統(tǒng)中維持一份SQL行為模板和唯一識別碼的對應(yīng)關(guān)系,而該SQL審計(jì)記錄在實(shí)際存儲時(shí)只保存對應(yīng)的SQL唯一識別碼及替換出來的參數(shù)常量,由于長整形表示的唯一識別碼總是比SQL行為模板要短得多,所以將極大節(jié)省存儲空間并提升入庫性能,從而實(shí)現(xiàn)快速存儲和節(jié)省磁盤存儲的目的。以下是一種通過提取SQL模板對海量SQL壓縮存儲典型的實(shí)施案例假設(shè)要對一個OraclelOg數(shù)據(jù)庫進(jìn)行數(shù)據(jù)庫審計(jì)。首先配置一個審計(jì)對象并生成SQL模板字符串,具體處理流程如圖I所示,包括如下步驟步驟1-1 :開啟審計(jì)系統(tǒng);步驟1-2 :針對我們的審計(jì)對象進(jìn)行必要的配置;主要輸入數(shù)據(jù)庫IP、端口、版本、操作系統(tǒng)類型等信息。步驟1-3 :把旁路流量鏡象到數(shù)據(jù)庫審計(jì)系統(tǒng)所謂旁路流量是指通過交換機(jī)等網(wǎng)絡(luò)設(shè)備的“端口鏡像”功能,把流經(jīng)交換機(jī)指定端口的流量拷貝一份到這個交換機(jī)的某一個輸出端口,流向這個輸出端口的流量就是旁路流量,把這個端口輸出的流量通過網(wǎng)線接入到審計(jì)系統(tǒng)的采集端口,審計(jì)系統(tǒng)就能捕獲審計(jì)對象的訪問內(nèi)容。步驟1-4 :審計(jì)到一條SQL ;通過審計(jì)系統(tǒng)的審計(jì)功能,審計(jì)到數(shù)據(jù)庫中操作內(nèi)容。步驟1-5 :進(jìn)行參數(shù)常量提取前的判斷;會根據(jù)算法進(jìn)行快速掃描,決定是否進(jìn)行參數(shù)常量的提取,以提高處理性能。步驟1-6 :進(jìn)行參數(shù)常量提取;提取出其中的常量,替換上帶固定前輟且順序數(shù)字編號的變量步驟1-6 :形成SQL模板字符串;到此為止針對一條SQL的處理過程完成,針對沒有參數(shù)常量的SQL,就不需要進(jìn)行提取,SQL本身就是SQL模板字符串。接下來,需要對生成的SQL模板字符串進(jìn)行唯一識別碼生成處理步驟2-1 :取出SQL模板字符串;步驟2-2 :調(diào)用HASH算法;步驟2-3 :生成長整型唯一識別碼;這是一個長整型數(shù)字,就是SQL模板唯一識別碼;
最后,把生成的SQL模板字符串、長整型唯一識別碼、提取出來的常量保存到審計(jì)系統(tǒng)的數(shù)據(jù)庫中。步驟3-1 :保存涉及信息I :SQL模板字符串;這是一串不帶任何常量的字符串,代表一種業(yè)務(wù)行為,用于幫助審計(jì)人員了解其包含的某種具有邏輯含義的行為內(nèi)容。步驟3-2 :保存涉及信息2 :長整型唯一識別碼;和SQL模板字符串是一對一的關(guān)系,是節(jié)省存儲空間的具體表現(xiàn),把原來存在于審計(jì)行為中可能非常占空間的SQL,變換成有限長度的整形。步驟3-3 :保存涉及信息3 :提取出來的常量;這些是變化的內(nèi)容,和長整型唯一識別碼配合,可以準(zhǔn)確的還原原始的SQL內(nèi)容。步驟3-4 :保存到審計(jì)系統(tǒng)數(shù)據(jù)庫關(guān)系表;把步驟3-1和步驟3-2涉及的內(nèi)容,也就是SQL模板字符串和長整型唯一識別碼一對一的對應(yīng)關(guān)系,保存下來,用于還原、顯示原始SQL使用。步驟3-5 :保存到審計(jì)系統(tǒng)數(shù)據(jù)庫主表;把步驟3-2和步驟3-3涉及的內(nèi)容,也就是長整型唯一識別碼和它對應(yīng)的常量,一起保存在主審計(jì)表中,用于表達(dá)變化的內(nèi)容。到此為止,利用以上步驟,我們既保證了審計(jì)SQL的完整性,又利用SQL長整型唯一識別碼大大節(jié)省了存儲空間。該實(shí)施案例在傳統(tǒng)的一個審計(jì)記錄存儲一條完整的SQL信息的方法,和本發(fā)明提取SQL行為模板后一個審計(jì)記錄只存儲SQL行為模板的唯一識別碼和參數(shù)常量后的磁盤存儲變化如下假設(shè)有一條SQL長度是IOK字節(jié),如果一小時(shí)之內(nèi)執(zhí)行了 100萬次,那么它的存儲要求量是:10K*1000000 = 9. 5G ;如果換成本發(fā)明使用的方法處理后,會形成以下內(nèi)容I. SQL模板字符串10Κ左右*1條;2. SQL模板唯一識別碼4字節(jié)*1條;3.對應(yīng)關(guān)系10Κ+4字節(jié);4.參數(shù)列表:100字節(jié)*1000000條;最后存儲這100萬條SQL的存儲要求量是10K+4(對應(yīng)關(guān)系)+ (4+100) *1000000 =105M。在整個數(shù)據(jù)庫審計(jì)的過程中,通過上述方法,就可以實(shí)現(xiàn)快速、高效、安全并且以較傳統(tǒng)方法小得多的存儲代價(jià)進(jìn)行海量SQL的存儲。
權(quán)利要求
1.一種通過提取SQL模板對海量SQL壓縮存儲的方法,其特征在于,包括步驟(1)數(shù)據(jù)庫審計(jì)系統(tǒng)審計(jì)到一條SQL時(shí),對SQL中包括的參數(shù)常量進(jìn)行識別,取出這些信息并以帶固定前輟且順序數(shù)字編號的內(nèi)容替換,形成不帶具體參數(shù)只帶變量的SQL行為模板的字符串;(2)將得到的SQL行為模板通過HASH算法生成長整形表示的唯一識別碼,并在審計(jì)系統(tǒng)中維持一份SQL行為模板和唯一識別碼的對應(yīng)關(guān)系;(3)在實(shí)際存儲該SQL審計(jì)記錄時(shí),把唯一識別碼、替換出來的參數(shù)常量、SQL行為模板本身、及其他相關(guān)信息存入數(shù)據(jù)庫審計(jì)系統(tǒng)的數(shù)據(jù)庫;其中,一個SQL行為模板只保存一份,而該SQL審計(jì)記錄中的SQL信息將以唯一識別碼和參數(shù)常量代替。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述SQL中包含的參數(shù)常量是數(shù)字、字符串或日期。
3.根據(jù)權(quán)利要求I所述的方法,其特征在于,還包括基于SQL行為模板生成的唯一識別碼,根據(jù)預(yù)置的規(guī)則對同一行為的SQL進(jìn)行過濾,從而剔除客戶不關(guān)心的或?qū)儆诎酌麊涡再|(zhì)的SQL。
4.根據(jù)權(quán)利要求I所述的方法,其特征在于,還包括針對替換出來的動態(tài)參數(shù)中包含的敏感信息進(jìn)行專項(xiàng)加密處理,以防止敏感信息在被審計(jì)出來后被二次泄露。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述動態(tài)參數(shù)中包含的敏感信息是密碼、手機(jī)號或身份證號碼。
全文摘要
本發(fā)明涉及數(shù)據(jù)庫信息存儲技術(shù),旨在提供一種通過提取SQL模板對海量SQL壓縮存儲的方法。該方法包括(1)數(shù)據(jù)庫審計(jì)系統(tǒng)對SQL的參數(shù)常量進(jìn)行識別,取出這些信息并以帶固定前輟且順序數(shù)字編號的內(nèi)容替換,形成不帶具體參數(shù)只帶變量的SQL行為模板的字符串;(2)將得到的SQL行為模板通過HASH算法生成長整形表示的唯一識別碼,并在審計(jì)系統(tǒng)中維持其對應(yīng)關(guān)系;(3)在實(shí)際存儲時(shí),把相關(guān)信息存入數(shù)據(jù)庫審計(jì)系統(tǒng)的數(shù)據(jù)庫,該SQL審計(jì)記錄中的SQL信息將以唯一識別碼和參數(shù)常量代替。本發(fā)明極大地節(jié)約了冗余部分的存儲開銷,同時(shí)又對對審計(jì)內(nèi)容的完整性不產(chǎn)生任何不良影響,從而實(shí)現(xiàn)了不損害審計(jì)記錄完整性前提下快速存儲和節(jié)省地磁盤存儲的目的。
文檔編號G06F17/30GK102609462SQ20121001160
公開日2012年7月25日 申請日期2012年1月14日 優(yōu)先權(quán)日2012年1月14日
發(fā)明者楊永清, 王華東, 范淵 申請人:杭州安恒信息技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1