專利名稱:一種在大數(shù)據(jù)量存儲(chǔ)中快速檢索的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)庫審計(jì)技術(shù)領(lǐng)域,尤其涉及一種在大數(shù)據(jù)量存儲(chǔ)中快速檢索的方法。
背景技術(shù):
對(duì)數(shù)據(jù)庫審計(jì)系統(tǒng)而言,審計(jì)并存儲(chǔ)上億條甚至幾十億條審計(jì)記錄的情況非常普遍,在這種海量記錄中能夠方便地按各種特性組合進(jìn)行快速檢索,對(duì)數(shù)據(jù)庫審計(jì)系統(tǒng)的事后審計(jì)功能而言至關(guān)重要。數(shù)據(jù)庫審計(jì)系統(tǒng)的事后審計(jì),指的是通過某些已知特性進(jìn)行反向回溯和定位,找出其他未知特性,從而完整地還原整個(gè)操作或事件。這類特性可以包括被訪問的數(shù)據(jù)庫名、 被訪問的表、被訪問的字段、SQL操作類型、數(shù)據(jù)庫登錄用戶名、客戶端IP、服務(wù)端IP、時(shí)間范圍以及SQL語句包含的內(nèi)容。在海量的審計(jì)記錄中進(jìn)行精確檢索,通常的方法是對(duì)SQL語句進(jìn)行語義分析并形成細(xì)粒度記錄,然后借助關(guān)系型數(shù)據(jù)庫,對(duì)各種檢索特性及特性組合建立索引,再根據(jù)索引實(shí)現(xiàn)快速檢索。由于審計(jì)記錄特性眾多,存儲(chǔ)各種特性對(duì)應(yīng)關(guān)系并為各種特性組合都建立索引,將耗費(fèi)比審計(jì)記錄本身大得多的存儲(chǔ)空間,另外還將極大消耗存儲(chǔ)性能,這對(duì)存儲(chǔ)容量和存儲(chǔ)性能要求極高的數(shù)據(jù)庫審計(jì)系統(tǒng)而言是無法忍受的。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是,為數(shù)據(jù)庫審計(jì)系統(tǒng)提供一種大數(shù)據(jù)量存儲(chǔ)中快速檢索的方法,該方法較SQL細(xì)粒度存儲(chǔ)并為各種檢索特性及特性組合建立索引的方法將極大節(jié)省存儲(chǔ)空間,并將極大提升檢索效率。鑒于數(shù)據(jù)庫審計(jì)系統(tǒng)的審計(jì)記錄數(shù)量十分龐大的事實(shí),就必然要求單條審計(jì)記錄盡可能地節(jié)約存儲(chǔ)空間,并且當(dāng)存儲(chǔ)中已經(jīng)包含海量審計(jì)記錄時(shí),仍然能夠以任意特性或特性組合為條件進(jìn)行快速檢索。而全文索引就是解決在海量存儲(chǔ)中實(shí)現(xiàn)快速檢索的關(guān)鍵技術(shù)。把全文索引引入數(shù)據(jù)庫審計(jì)系統(tǒng)中,將極大節(jié)省存儲(chǔ)空間和性能,極大提升檢索能力。為解決問題,本發(fā)明的解決方案是提供一種在大數(shù)據(jù)量存儲(chǔ)中快速檢索的方法,包括如下步驟A、采用關(guān)系型數(shù)據(jù)庫存儲(chǔ)審計(jì)記錄,每條記錄擁有唯一 ID,并以慣常使用的檢索特性為字段;B、協(xié)議解析模塊獲取審計(jì)記錄后,對(duì)該審計(jì)記錄進(jìn)行入庫,而不對(duì)該審計(jì)記錄對(duì)應(yīng)的SQL語句進(jìn)行語義分析所產(chǎn)生的細(xì)粒度信息進(jìn)行入庫;C、使用獨(dú)立的全文索引引擎監(jiān)控審計(jì)記錄入庫情況,對(duì)新入庫的審計(jì)記錄建立全文索引,并逐級(jí)建立和維護(hù)當(dāng)前索引、單位小時(shí)索引、單位天索引;D、檢索時(shí),以檢索特性為關(guān)鍵字使用全文索引進(jìn)行檢索,獲取符合特性的審計(jì)記錄的主ID集,再通過主ID集獲取符合檢索特性的所有審計(jì)記錄的完整信息。
本發(fā)明中,所述的步驟B進(jìn)一步包括如下Bi、通過網(wǎng)絡(luò)采集模塊和協(xié)議解析模塊獲取審計(jì)記錄; B2、獲取的審計(jì)記錄被存入入庫文件,當(dāng)該入庫文件包含的審計(jì)記錄數(shù)達(dá)到某一設(shè)定門限、或該入庫文件存在周期超過某一設(shè)定時(shí)間門限時(shí),將把該入庫文件移動(dòng)到可入庫目錄,并打開新的入庫文件用以記錄新的審計(jì)記錄;B3、移動(dòng)入庫文件到可入庫目錄后,登記該入庫文件所包含的審計(jì)記錄ID范圍及入庫文件名的對(duì)應(yīng)關(guān)系;B4、使用關(guān)系型數(shù)據(jù)庫數(shù)據(jù)導(dǎo)入工具M(jìn)ysqlimport對(duì)入庫文件進(jìn)行入庫,入庫后刪除入庫文件。本發(fā)明中,執(zhí)行所述步驟C時(shí),進(jìn)一步包括C4、監(jiān)控步驟B3中的登記信息;C5、如果步驟C4中發(fā)現(xiàn)有新入庫文件產(chǎn)生,則檢查該入庫文件是否存在;C6、如果步驟C5中新入庫文件已被刪除,根據(jù)步驟B4,說明該入庫文件已經(jīng)入庫完成,該入庫文件所對(duì)應(yīng)登記信息中ID范圍內(nèi)的審計(jì)記錄需要建立全文索引;C7、在當(dāng)前索引文件中,為步驟C6中需要建立全文索引的審計(jì)記錄建立全文索弓丨,并刪除步驟B3中對(duì)應(yīng)的登記信息;C8、把當(dāng)前索引文件合并到當(dāng)前小時(shí)索引文件中,并初始化當(dāng)前索引文件。本發(fā)明中,所述的步驟C7進(jìn)一步包括如下C71、步驟C6中需要建立全文索引的ID范圍所對(duì)應(yīng)的審計(jì)記錄,是本次全文索引的數(shù)據(jù)源;C72、審計(jì)記錄中可以被用來做檢索條件的字段,都將被建立全文索引,可根據(jù)這些字段來檢索獲取審計(jì)記錄ID ;C73、對(duì)于除SQL語句外的其他檢索特性,在獲取數(shù)據(jù)源數(shù)據(jù)時(shí)為每一個(gè)字段內(nèi)容加上特殊的前后綴,以極大減少該內(nèi)容作為一個(gè)單詞出現(xiàn)在其他字段內(nèi)容中的概率,確保全文檢索準(zhǔn)確性;C74、根據(jù)步驟C73的規(guī)則,以步驟C6中ID范圍的審計(jì)記錄為數(shù)據(jù)源,在當(dāng)前索引中建立全文索引;C75、刪除步驟B3中對(duì)應(yīng)的登記信息。本發(fā)明中,所述的步驟D進(jìn)一步包括如下D1、為用戶輸入的每個(gè)檢索特性內(nèi)容附加上步驟C73所述與該特性一致的特殊的前后綴,形成檢索關(guān)鍵詞;D2、以步驟Dl中的檢索關(guān)鍵詞為搜索條件,在當(dāng)前小時(shí)索引文件、當(dāng)前天索引文件以及根據(jù)搜索的時(shí)間段范圍決定的包含日期的天索引文件中進(jìn)行檢索,獲取審計(jì)記錄 ID ;D3、根據(jù)審計(jì)記錄ID,在關(guān)系型數(shù)據(jù)庫中獲取符合條件的審計(jì)記錄的完整信息。本發(fā)明中,步驟A中所述的檢索特性是在對(duì)數(shù)據(jù)進(jìn)行檢索時(shí)慣常使用的數(shù)據(jù)特征值,是下述內(nèi)容中的至少一種登錄用戶名、客戶端IP、服務(wù)端IP、訪問時(shí)間、SQL語句、被訪問的數(shù)據(jù)庫名、被訪問的表、被訪問的字段或SQL操作類型。本發(fā)明中,所述的步驟C中,還進(jìn)一步包括
Cl、將全文索引文件分成當(dāng)前索引文件、當(dāng)前小時(shí)索引文件、當(dāng)天索引文件、包含日期的天索引文件;C2、根據(jù)時(shí)間判斷是否需要把當(dāng)前小時(shí)文件合并到當(dāng)天索引中,如果離上一次該類合并動(dòng)作超過一小時(shí),則進(jìn)行合并,并初始化當(dāng)前小時(shí)索引文件;C3、根據(jù)時(shí)間判斷是否需要把當(dāng)天索引文件演變?yōu)槿掌谔焖饕募绻x上一次合并動(dòng)作的日期發(fā)生變更,則把當(dāng)天索引文件變更為包含日期的天索引文件,并初始化當(dāng)天索引文件。本發(fā)明的有益效果在于本發(fā)明和存儲(chǔ)龐大SQL細(xì)粒度信息和大量建立索引相比,由于不需要存儲(chǔ)比審計(jì)記錄龐大的多的細(xì)粒度信息,不需要存儲(chǔ)和維護(hù)附著在細(xì)粒度信息上更為龐大的索引,僅需要增加全文索引文件的存儲(chǔ)開銷;而全文檢索的檢索結(jié)果模糊度通過為檢索特性內(nèi)容附加前后綴的方式得以解決后,在建立全文索引過程中就無需為檢索特性增加檢索屬性,這樣,全文索引文件的開銷比審計(jì)記錄本身的存儲(chǔ)更小。如此,采用本發(fā)明,將極大提升數(shù)據(jù)庫審計(jì)系統(tǒng)的存儲(chǔ)能力及存儲(chǔ)性能,極大提升檢索性能。
圖1為負(fù)責(zé)入庫文件產(chǎn)生功能的引擎處理流程圖;圖2為負(fù)責(zé)對(duì)入庫文件執(zhí)行入庫功能的引擎具體處理流程圖;圖3為負(fù)責(zé)創(chuàng)建全文索引功能的引擎具體處理流程圖;圖4為執(zhí)行全文檢索的功能具體處理流程圖。
具體實(shí)施例方式本發(fā)明提供了一種大數(shù)據(jù)量存儲(chǔ)中快速檢索的方法,本發(fā)明的核心思想為以關(guān)系型數(shù)據(jù)庫中審計(jì)記錄為全文索引數(shù)據(jù)源,從數(shù)據(jù)源中提取數(shù)據(jù)后為每一檢索特性附加特殊的前后綴再建立全文索引;全文檢索過程同樣為檢索特性內(nèi)容附加上建立全文索引過程一致的前后綴,以此產(chǎn)生的內(nèi)容為關(guān)鍵詞進(jìn)行全文檢索并獲取審計(jì)記錄ID,再通過關(guān)系型數(shù)據(jù)庫獲取符合條件的審計(jì)記錄的完整信息。為確保理解準(zhǔn)確、避免產(chǎn)生歧義或不清楚,首先對(duì)本發(fā)明涉及的部分術(shù)語進(jìn)行解釋如下關(guān)系數(shù)據(jù)庫,是建立在關(guān)系模型基礎(chǔ)上的數(shù)據(jù)庫,借助于集合代數(shù)等數(shù)學(xué)概念和方法來處理數(shù)據(jù)庫中的數(shù)據(jù)。現(xiàn)實(shí)世界中的各種實(shí)體以及實(shí)體之間的各種聯(lián)系均用關(guān)系模型來表示。關(guān)系模型是數(shù)據(jù)存儲(chǔ)的傳統(tǒng)標(biāo)準(zhǔn)。標(biāo)準(zhǔn)數(shù)據(jù)查詢語言SQL就是一種基于關(guān)系數(shù)據(jù)庫的語言,這種語言執(zhí)行對(duì)關(guān)系數(shù)據(jù)庫中數(shù)據(jù)的檢索和操作。關(guān)系模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、 關(guān)系操作集合、關(guān)系完整性約束三部分組成。網(wǎng)絡(luò)采集模塊、協(xié)議解析模塊、數(shù)據(jù)導(dǎo)入工具M(jìn)ysqlimport,均為軟件功能模塊,其具體的實(shí)現(xiàn)方式可以有很多種。本領(lǐng)域技術(shù)人員在了解本發(fā)明思路及各模塊的功能描述之后,完全可以根據(jù)其掌握的基本技能實(shí)現(xiàn)各功能模塊的編程與運(yùn)行,不存在無法理解或無法再現(xiàn)的可能性。其中,網(wǎng)絡(luò)采集模塊用于采集審計(jì)對(duì)象的網(wǎng)絡(luò)流量;協(xié)議解析模塊用于對(duì)網(wǎng)絡(luò)流量進(jìn)行分析和獲取審計(jì)記錄;數(shù)據(jù)導(dǎo)入工具M(jìn)ysqlimport用于對(duì)入庫文件進(jìn)行入庫,入庫后刪除入庫文件。通常所使用的Mysqlimport是一個(gè)命令行工具,兩個(gè)參數(shù)以及大量的選項(xiàng)可供選擇,是MySQL的一個(gè)載入(或者說導(dǎo)入)數(shù)據(jù)的非常有效的工具。下面結(jié)合附圖來詳細(xì)描述本發(fā)明所述方法,本發(fā)明所述方法包含四個(gè)獨(dú)立運(yùn)行的軟件功能模塊(以下均按業(yè)內(nèi)慣例稱之為引擎),分別負(fù)責(zé)入庫文件產(chǎn)生、對(duì)入庫文件執(zhí)行入庫、創(chuàng)建全文索引、執(zhí)行全文檢索的功能,各引擎具體處理流程分別如圖1、圖2、圖3、圖4 所示。這些引擎均為軟件功能模塊,其具體的實(shí)現(xiàn)方式可以有很多種。本領(lǐng)域技術(shù)人員在了解本發(fā)明思路及各模塊的功能描述之后,完全可以根據(jù)其掌握的基本技能實(shí)現(xiàn)各功能模塊的編程與運(yùn)行,不存在無法理解或無法再現(xiàn)的可能性。負(fù)責(zé)入庫文件產(chǎn)生功能的引擎,具體處理流程如圖1所示,包括如下步驟步驟1-1 =Mysql中創(chuàng)建審計(jì)表用以存儲(chǔ)審計(jì)記錄。MySQL是一種開放源代碼的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),MySQL數(shù)據(jù)庫系統(tǒng)使用最常用的數(shù)據(jù)庫管理語言一結(jié)構(gòu)化查詢語言(SQL)進(jìn)行數(shù)據(jù)庫管理。本發(fā)明采用Mysql數(shù)據(jù)庫存儲(chǔ)審計(jì)記錄,對(duì)應(yīng)的審計(jì)記錄表包含唯一標(biāo)識(shí)審計(jì)記錄的ID,并為各種檢索特性建立相應(yīng)字段,這類字段包括但不限于登錄用戶名、客戶端IP、 服務(wù)端IP、訪問時(shí)間以及SQL語句。還可以包括被訪問的數(shù)據(jù)庫名、被訪問的表、被訪問的字段、SQL操作類型等等。步驟1-2 打開新的入庫文件用以保存審計(jì)記錄。審計(jì)記錄首先被寫入文件中,這類文件被稱為入庫文件,當(dāng)入庫文件包含的審計(jì)記錄數(shù)達(dá)到某一設(shè)定門限、或存在周期超過某一設(shè)定時(shí)間門限時(shí),將被移動(dòng)到入庫目錄,并打開新的入庫文件。步驟1-3 協(xié)議解析模塊產(chǎn)生新的審計(jì)記錄。通過捕獲網(wǎng)絡(luò)流量并進(jìn)行協(xié)議解析,對(duì)應(yīng)用層SQL語句進(jìn)行還原并形成審計(jì)記錄,每條審計(jì)記錄都有系統(tǒng)內(nèi)唯一標(biāo)識(shí)的ID,后來的審計(jì)記錄ID總是比更早的審計(jì)記錄的 ID大。步驟1-4 把審計(jì)記錄寫到入庫文件中。步驟1-5 判斷入庫文件中的審計(jì)記錄數(shù)是否達(dá)到一定數(shù)量,或者處于打開狀態(tài)是否達(dá)到一定時(shí)間。如果入庫文件中審計(jì)記錄數(shù)達(dá)到一定數(shù)量,或者入庫文件處于打開狀態(tài)已經(jīng)達(dá)到一定時(shí)間,則關(guān)閉該入庫文件,進(jìn)入步驟1-6 ;反之,進(jìn)入步驟1-3。步驟1-6 移動(dòng)入庫文件到入庫目錄供入庫。步驟1-7 在Mysql中登記該入庫文件所包含的審計(jì)記錄ID范圍及入庫文件名的對(duì)應(yīng)關(guān)系。負(fù)責(zé)對(duì)入庫文件入庫功能的引擎,具體處理流程如圖2所示,包括如下步驟步驟2-1 監(jiān)控入庫目錄。掃描步驟1-6中的入庫目錄中是否有入庫文件存在。步驟2-2 判斷是否有入庫文件等待入庫。如果入庫目錄中存在文件,則進(jìn)入步驟2-3 ;反之,進(jìn)入步驟2-1。步驟2-3 把入庫文件中的審計(jì)記錄存入Mysql,并刪除相應(yīng)入庫文件。
把入庫目錄中的入庫文件入庫到Mysql數(shù)據(jù)庫中,并刪除相應(yīng)入庫文件,完成后進(jìn)入步驟2-1。負(fù)責(zé)創(chuàng)建全文索引功能的引擎,具體處理流程如圖3所示,包括如下步驟步驟3-1 使用Sphinx建立和維護(hù)各級(jí)索引文件,啟動(dòng)全文索引檢索服務(wù)。為增強(qiáng)建立索引的實(shí)時(shí)性和高效性,全文索引文件將分成當(dāng)前索引文件、當(dāng)前小時(shí)索引文件、當(dāng)天索引文件、包含日期的天索引文件。步驟3-2 判斷離上次當(dāng)前小時(shí)索引合并到當(dāng)天索引的動(dòng)作是否達(dá)到一小時(shí)。如果當(dāng)前時(shí)間離上次當(dāng)前小時(shí)索引合并到當(dāng)天索引的動(dòng)作已經(jīng)達(dá)到或超過一小時(shí),則進(jìn)入步驟3-3 ;反之,進(jìn)入步驟3-4。步驟3-3 合并當(dāng)前小時(shí)索引到當(dāng)天索引,并初始化當(dāng)前小時(shí)索引。步驟3-4:判斷和上次當(dāng)天索引演變?yōu)槿掌谔焖饕膭?dòng)作是否是同一天。如果當(dāng)前系統(tǒng)日期和上次當(dāng)天索引演變?yōu)槿掌谔焖饕膭?dòng)作不是同一天,則進(jìn)入步驟3-5 ;反之,進(jìn)入步驟3-7。步驟3-5 把當(dāng)天索引改名為包含昨天日期的日期天索引文件,并初始化當(dāng)天索引。步驟3-6 重啟全文索引檢索服務(wù),開放當(dāng)前小時(shí)索引、當(dāng)天索引及所有日期天索引的檢索服務(wù)。重啟全文索引檢索服務(wù)的目的是為了啟動(dòng)步驟3-5中新產(chǎn)生的包含昨天日期的日期天索引服務(wù),及更新當(dāng)天索引服務(wù)。步驟3-7 判斷是否有入庫文件登記信息。監(jiān)控步驟1-7中是否有入庫文件登記信息,如有,則進(jìn)入步驟3-8 ;反之,進(jìn)入步驟 3-2。步驟3-8 判斷登記信息中的入庫文件是否已經(jīng)刪除。如果步驟3-7中監(jiān)控到的登記信息所對(duì)應(yīng)的入庫文件已經(jīng)被刪除,根據(jù)步驟2-3, 該入庫文件已經(jīng)入庫完成,需要進(jìn)一步建立全文索引,進(jìn)入步驟3-9;反之,進(jìn)入步驟3-2。步驟3-9 獲取入庫文件的審計(jì)記錄ID范圍。根據(jù)步驟3-8,進(jìn)一步獲取步驟1-7中所記錄的已完成入庫的審計(jì)記錄的ID范圍, 該范圍內(nèi)的審計(jì)記錄需要進(jìn)一步建立全文索引。步驟3-10 從Mysql中獲取ID范圍內(nèi)的審計(jì)記錄,并為各檢索字段添加前綴。步驟3-9中的ID范圍所對(duì)應(yīng)的審計(jì)記錄,是本次全文索引的數(shù)據(jù)源;審計(jì)記錄中可以被用來做檢索條件的字段,都將被建立全文索引,可根據(jù)這些字段來檢索獲取審計(jì)記錄ID ;除SQL語句外的其他檢索特性,包括但不限于登錄用戶名、客戶端IP、服務(wù)端IP,在獲取數(shù)據(jù)源數(shù)據(jù)時(shí)為每一個(gè)字段內(nèi)容加上特殊的前后綴,以極大減少該內(nèi)容作為一個(gè)單詞出現(xiàn)在其他字段內(nèi)容中的概率,以確保全文檢索準(zhǔn)確性。步驟3-11 使用Sphinx按審計(jì)記錄ID對(duì)所有檢索字段建立當(dāng)前索引。步驟3-12 合并當(dāng)前索引到當(dāng)前小時(shí)索引,并初始化當(dāng)前索引。進(jìn)入步驟3-2。負(fù)責(zé)執(zhí)行全文檢索功能的引擎(即全文索引引擎),具體處理流程如圖4所示,包括如下步驟步驟4-1 輸入檢索條件。
步驟4-2 為每個(gè)檢索特性增加自身特性的前綴。步驟4-3 根據(jù)選定時(shí)間范圍決定待檢索的全文索引檢索服務(wù)。步驟4-4:向當(dāng)前小時(shí)索引、當(dāng)天索引及需要的日期天索引發(fā)起檢索請(qǐng)求。步驟4-5 獲取符合條件的審計(jì)記錄ID集。步驟4-6 在Mysql中根據(jù)ID獲取審計(jì)記錄的完整信息。在本發(fā)明所述方法中,能夠?yàn)閿?shù)據(jù)庫審計(jì)系統(tǒng)極大節(jié)省存儲(chǔ)空間,極大提升檢索效率。以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此, 任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換, 都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種在大數(shù)據(jù)量存儲(chǔ)中快速檢索的方法,其特征在于,包括如下步驟A、采用關(guān)系型數(shù)據(jù)庫存儲(chǔ)審計(jì)記錄,每條記錄擁有唯一ID,并以慣常使用的檢索特性為字段;B、協(xié)議解析模塊獲取審計(jì)記錄后,對(duì)該審計(jì)記錄進(jìn)行入庫,而不對(duì)該審計(jì)記錄對(duì)應(yīng)的 SQL語句進(jìn)行語義分析所產(chǎn)生的細(xì)粒度信息進(jìn)行入庫;C、使用獨(dú)立的全文索引引擎監(jiān)控審計(jì)記錄入庫情況,對(duì)新入庫的審計(jì)記錄建立全文索弓丨,并逐級(jí)建立和維護(hù)當(dāng)前索引、單位小時(shí)索引、單位天索引;D、檢索時(shí),以檢索特性為關(guān)鍵字使用全文索引進(jìn)行檢索,獲取符合特性的審計(jì)記錄的主ID集,再通過主ID集獲取符合檢索特性的所有審計(jì)記錄的完整信息。
2.根據(jù)權(quán)利要求1所述的一種在大數(shù)據(jù)量存儲(chǔ)中快速檢索的方法,其特征在于,所述的步驟B進(jìn)一步包括如下Bi、通過網(wǎng)絡(luò)采集模塊和協(xié)議解析模塊獲取審計(jì)記錄;B2、獲取的審計(jì)記錄被存入入庫文件,當(dāng)該入庫文件包含的審計(jì)記錄數(shù)達(dá)到某一設(shè)定門限、或該入庫文件存在周期超過某一設(shè)定時(shí)間門限時(shí),將把該入庫文件移動(dòng)到可入庫目錄,并打開新的入庫文件用以記錄新的審計(jì)記錄;B3、移動(dòng)入庫文件到可入庫目錄后,登記該入庫文件所包含的審計(jì)記錄ID范圍及入庫文件名的對(duì)應(yīng)關(guān)系;B4、使用關(guān)系型數(shù)據(jù)庫數(shù)據(jù)導(dǎo)入工具M(jìn)ysqlimport對(duì)入庫文件進(jìn)行入庫,入庫后刪除入庫文件。
3.根據(jù)權(quán)利要求2所述的一種在大數(shù)據(jù)量存儲(chǔ)中快速檢索的方法,其特征在于,執(zhí)行所述步驟C時(shí),進(jìn)一步包括C4、監(jiān)控步驟B3中的登記信息;C5、如果步驟C4中發(fā)現(xiàn)有新入庫文件產(chǎn)生,則檢查該入庫文件是否存在;C6、如果步驟C5中新入庫文件已被刪除,根據(jù)步驟B4,說明該入庫文件已經(jīng)入庫完成, 該入庫文件所對(duì)應(yīng)登記信息中ID范圍內(nèi)的審計(jì)記錄需要建立全文索引;C7、在當(dāng)前索引文件中,為步驟C6中需要建立全文索引的審計(jì)記錄建立全文索引,并刪除步驟B3中對(duì)應(yīng)的登記信息;C8、把當(dāng)前索引文件合并到當(dāng)前小時(shí)索引文件中,并初始化當(dāng)前索引文件。
4.根據(jù)權(quán)利要求3所述的一種在大數(shù)據(jù)量存儲(chǔ)中快速檢索的方法,其特征在于,所述的步驟C7進(jìn)一步包括如下C71、步驟C6中需要建立全文索引的ID范圍所對(duì)應(yīng)的審計(jì)記錄,是本次全文索引的數(shù)據(jù)源;C72、審計(jì)記錄中可以被用來做檢索條件的字段,都將被建立全文索引,可根據(jù)這些字段來檢索獲取審計(jì)記錄ID ;C73、對(duì)于除SQL語句外的其他檢索特性,在獲取數(shù)據(jù)源數(shù)據(jù)時(shí)為每一個(gè)字段內(nèi)容加上特殊的前后綴,以極大減少該內(nèi)容作為一個(gè)單詞出現(xiàn)在其他字段內(nèi)容中的概率,確保全文檢索準(zhǔn)確性;C74、根據(jù)步驟C73的規(guī)則,以步驟C6中ID范圍的審計(jì)記錄為數(shù)據(jù)源,在當(dāng)前索引中建立全文索引;C75、刪除步驟B3中對(duì)應(yīng)的登記信息。
5.根據(jù)權(quán)利要求4所述的一種在大數(shù)據(jù)量存儲(chǔ)中快速檢索的方法,其特征在于,所述的步驟D進(jìn)一步包括如下D1、為用戶輸入的每個(gè)檢索特性內(nèi)容附加上步驟C73所述與該特性一致的特殊的前后綴,形成檢索關(guān)鍵詞;D2、以步驟Dl中的檢索關(guān)鍵詞為搜索條件,在當(dāng)前小時(shí)索引文件、當(dāng)前天索引文件以及根據(jù)搜索的時(shí)間段范圍決定的包含日期的天索引文件中進(jìn)行檢索,獲取審計(jì)記錄ID ;D3、根據(jù)審計(jì)記錄ID,在關(guān)系型數(shù)據(jù)庫中獲取符合條件的審計(jì)記錄的完整信息。
6.根據(jù)權(quán)利要求1所述的一種在大數(shù)據(jù)量存儲(chǔ)中快速檢索的方法,其特征在于,步驟 A中所述的檢索特性是在對(duì)數(shù)據(jù)進(jìn)行檢索時(shí)慣常使用的數(shù)據(jù)特征值,是下述內(nèi)容中的至少一種登錄用戶名、客戶端IP、服務(wù)端IP、訪問時(shí)間、SQL語句、被訪問的數(shù)據(jù)庫名、被訪問的表、被訪問的字段或SQL操作類型。
7.根據(jù)權(quán)利要求1所述的一種在大數(shù)據(jù)量存儲(chǔ)中快速檢索的方法,其特征在于,所述的步驟C中,還進(jìn)一步包括Cl、將全文索引文件分成當(dāng)前索引文件、當(dāng)前小時(shí)索引文件、當(dāng)天索引文件、包含日期的天索引文件;C2、根據(jù)時(shí)間判斷是否需要把當(dāng)前小時(shí)文件合并到當(dāng)天索引中,如果離上一次該類合并動(dòng)作超過一小時(shí),則進(jìn)行合并,并初始化當(dāng)前小時(shí)索引文件;C3、根據(jù)時(shí)間判斷是否需要把當(dāng)天索引文件演變?yōu)槿掌谔焖饕募?,如果離上一次合并動(dòng)作的日期發(fā)生變更,則把當(dāng)天索引文件變更為包含日期的天索引文件,并初始化當(dāng)天索引文件。
全文摘要
本發(fā)明涉及數(shù)據(jù)庫審計(jì)技術(shù)領(lǐng)域,旨在提供一種在大數(shù)據(jù)量存儲(chǔ)中快速檢索的方法。該方法包括采用關(guān)系型數(shù)據(jù)庫存儲(chǔ)審計(jì)記錄,每條記錄擁有唯一ID,并以慣常使用的檢索特性為字段;議解析模塊獲取審計(jì)記錄并入庫;使用獨(dú)立的全文索引引擎監(jiān)控審計(jì)記錄入庫情況,對(duì)新入庫的審計(jì)記錄建立全文索引,并逐級(jí)建立和維護(hù)當(dāng)前索引、單位小時(shí)索引、單位天索引;以檢索特性為關(guān)鍵字使用全文索引進(jìn)行檢索,獲取符合特性的審計(jì)記錄的主ID集,再通過主ID集獲取符合檢索特性的所有審計(jì)記錄的完整信息。本發(fā)明在建立全文索引過程中無需為檢索特性增加檢索屬性,全文索引文件的開銷比審計(jì)記錄本身的存儲(chǔ)更小。極大提升數(shù)據(jù)庫審計(jì)系統(tǒng)的存儲(chǔ)能力和檢索性能。
文檔編號(hào)G06F17/30GK102184222SQ201110116710
公開日2011年9月14日 申請(qǐng)日期2011年5月5日 優(yōu)先權(quán)日2011年5月5日
發(fā)明者李凱, 楊永清, 范淵 申請(qǐng)人:杭州安恒信息技術(shù)有限公司