国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種歷史數(shù)據(jù)的存取方法和裝置的制作方法

      文檔序號(hào):6465550閱讀:203來源:國(guó)知局

      專利名稱::一種歷史數(shù)據(jù)的存取方法和裝置的制作方法
      技術(shù)領(lǐng)域
      :本發(fā)明涉及數(shù)據(jù)庫(kù)
      技術(shù)領(lǐng)域
      ,特別是指在電信網(wǎng)絡(luò)管理系統(tǒng)中一種海量歷史數(shù)據(jù)的存取方法。
      背景技術(shù)
      :在基于數(shù)據(jù)庫(kù)的通信系統(tǒng)中,數(shù)據(jù)的存取效率對(duì)系統(tǒng)的整體運(yùn)行有著重要影響,尤其是在電信領(lǐng)域中,無(wú)論是業(yè)務(wù)操作支撐(BOSS,Business&OperationSupportSystem)系統(tǒng)還是網(wǎng)絡(luò)管理系統(tǒng),都屬于海量數(shù)據(jù)的應(yīng)用環(huán)境。海量數(shù)據(jù)的應(yīng)用環(huán)境,對(duì)于數(shù)據(jù)的存取效率有著較高的要求。以傳輸網(wǎng)絡(luò)管理為例,其重要功能之一是對(duì)網(wǎng)絡(luò)設(shè)備運(yùn)行狀態(tài)進(jìn)行監(jiān)控,一般采用15分鐘或24小時(shí)為一個(gè)采集周期,對(duì)網(wǎng)絡(luò)設(shè)備的運(yùn)行性能數(shù)據(jù)進(jìn)行采集。數(shù)據(jù)的采集是依據(jù)系統(tǒng)中各個(gè)工作端點(diǎn)、即性能數(shù)據(jù)采集點(diǎn)的不同性能進(jìn)行的,對(duì)于一臺(tái)擁有上百個(gè)工作端點(diǎn)的復(fù)雜設(shè)備,如典型的波分設(shè)備,在每個(gè)采集周期內(nèi),可能有上千條運(yùn)行狀態(tài)記錄產(chǎn)生;如果是由若干類似復(fù)雜設(shè)備構(gòu)成的傳送網(wǎng)絡(luò),那么,每天的設(shè)備運(yùn)行狀態(tài)記錄的數(shù)量可以達(dá)到千萬(wàn)條數(shù)量級(jí)。一般情況下,網(wǎng)絡(luò)管理系統(tǒng)需要在內(nèi)部的數(shù)據(jù)庫(kù)中保存一定時(shí)間內(nèi)的設(shè)備運(yùn)行狀態(tài)記錄,可以稱為歷史記錄,并提供對(duì)這些記錄的查閱、統(tǒng)計(jì)、才艮表等功能,如此,對(duì)這么大數(shù)據(jù)量的設(shè)備運(yùn)行狀態(tài)記錄進(jìn)行數(shù)據(jù)運(yùn)算,成為網(wǎng)絡(luò)管理軟件面臨的一道難題?,F(xiàn)有的對(duì)海量數(shù)據(jù)的管理,一種可行方案是采用數(shù)據(jù)倉(cāng)庫(kù)技術(shù),但對(duì)于電信網(wǎng)絡(luò)管理系統(tǒng)采集的歷史數(shù)據(jù),從它的實(shí)時(shí)性、變化性以及定時(shí)轉(zhuǎn)儲(chǔ)要求等方面來說,電信網(wǎng)絡(luò)管理系統(tǒng)對(duì)于歷史數(shù)據(jù)的采集都不適合采用數(shù)據(jù)倉(cāng)庫(kù)技術(shù)。所以目前主要的電信網(wǎng)絡(luò)管理方案都使用傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)作為運(yùn)行數(shù)據(jù)的存儲(chǔ)媒介,方式如下定義單張表格存儲(chǔ)某一運(yùn)行數(shù)據(jù)的所有記錄,如當(dāng)前告警表、歷史性能表等;對(duì)于記錄的查詢、統(tǒng)計(jì)、報(bào)表等功能,均通過在該表上執(zhí)行普通的選擇(select)語(yǔ)句來實(shí)現(xiàn)。但是,這種處理方式的突出缺點(diǎn)是,并未考慮到電信網(wǎng)絡(luò)運(yùn)行過程中產(chǎn)生的海量監(jiān)控?cái)?shù)據(jù)量及查詢條件復(fù)雜等特性,而是將其等同于普通的數(shù)據(jù)進(jìn)行存儲(chǔ),如此會(huì)存在以下的問題1、網(wǎng)絡(luò)管理的界面操作指定的查詢數(shù)據(jù)命令長(zhǎng)時(shí)間無(wú)法返回;2、查詢運(yùn)算期間數(shù)據(jù)庫(kù)占用過多的中央處理器(CPU,CentralProcessingUnit)和內(nèi)存等系統(tǒng)資源,導(dǎo)致整個(gè)系統(tǒng)的其它操作受到嚴(yán)重干擾。
      發(fā)明內(nèi)容有鑒于此,本發(fā)明的主要目的在于提供一種歷史數(shù)據(jù)的存取方法和裝置,以提高對(duì)歷史數(shù)據(jù)的查詢效率。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的本發(fā)明提供了一種歷史數(shù)據(jù)的存取方法,該方法包括a、建立原始表,將采集到的每一條歷史數(shù)據(jù)記錄按照采集時(shí)間劃分到所述原始表中,得到原始分表;b、為所述原始分表設(shè)定標(biāo)識(shí)ID號(hào)字段,并在所述ID號(hào)字段上創(chuàng)建一個(gè)非聚蔟索引;c、依據(jù)所述原始分表中的歷史數(shù)據(jù)記錄和所述ID號(hào)字段,生成與所述原始分表對(duì)應(yīng)的信息表;d、依據(jù)輸入的查詢條件、所述原始分表和所述信息表選擇原始分表掃描或信息表預(yù)掃描的查詢方式,進(jìn)行查詢操作;e、依據(jù)所述原始分表掃描或信息表預(yù)掃描的查詢方式進(jìn)行查詢操作后,得到符合查詢條件的歷史數(shù)據(jù)記錄。步驟a中所述一個(gè)原始分表包含設(shè)定時(shí)間段的多條歷史數(shù)據(jù)記錄。步驟c所述信息分表包含多個(gè)記錄,所述記錄是所述ID號(hào)字段信息和常用查詢字段信息的組合;依據(jù)所述原始分表中的歷史數(shù)據(jù)記錄,得到對(duì)該條歷史數(shù)據(jù)執(zhí)行查詢操作時(shí)所涉及的最常用的查詢字段信息。步驟c所述信息表中的記錄與所述原始分表中的歷史數(shù)據(jù)記錄——對(duì)應(yīng)。步驟d之前,該方法還包括判斷所述輸入的查詢條件中是否包含釆集時(shí)間信息,如果包含采集時(shí)間,則按采集時(shí)間確定查詢的部分原始分表的集合;如果不包含釆集時(shí)間,則對(duì)全部原始分表進(jìn)行查詢。步驟d所述選擇原始分表掃描或信息表預(yù)掃描的查詢方式的方法包括確定全部原始分表或者部分原始分表集合所包含的歷史數(shù)據(jù)的記錄數(shù),如果所述記錄數(shù)小于預(yù)設(shè)的門卩艮值,則選擇原始分表掃描的查詢方式,否則,選擇信息表預(yù)掃描的查詢方式;確定所述輸入的查詢條件所包含的查詢字段和信息表中包含的常用查詢字段的重合數(shù),如果重合數(shù)小于預(yù)設(shè)的門卩艮值,則選擇原始分表掃描的查詢方式,否則,選擇信息表預(yù)掃描的查詢方式。步驟d所述選擇信息表預(yù)掃描的查詢方式,進(jìn)行查詢操作的方法包括依據(jù)所述查詢條件,將查詢條件中的查詢字^a與所述信息表中的常用查詢字段重合部分的信息進(jìn)行組合,得到預(yù)查詢語(yǔ)句;依據(jù)所述預(yù)查詢語(yǔ)句,對(duì)信息表進(jìn)行查詢,得到所述信息表中ID號(hào)字段的集合;依據(jù)所述ID號(hào)字段的集合對(duì)所述全部原始分表或者部分原始分表的集合進(jìn)行查詢。步驟d所述選擇原始分表掃描的查詢方式,進(jìn)行查詢操作,具體包括依據(jù)所述原始分表掃描的查詢方式,對(duì)所述全部原始分表或者部分原始分表的集合進(jìn)行查詢操作。本發(fā)明還提供了一種歷史數(shù)據(jù)的存取裝置,該裝置包括原始表建立模塊,用于建立原始表,將采集到的每一條歷史數(shù)據(jù)記錄按照采集時(shí)間劃分到所述原始表中,得到原始分表;設(shè)置模塊,用于為所述原始表建立模塊的原始分表設(shè)定唯一標(biāo)識(shí)的ID號(hào)字段,并在所述ID號(hào)字段上創(chuàng)建一個(gè)非聚蔟索引;信息表生成模塊,用于依據(jù)所述原始表建立模塊的原始分表中的歷史數(shù)據(jù)記錄和所述通過設(shè)置模塊設(shè)置的ID號(hào)字段,生成與所述原始分表對(duì)應(yīng)的信息表;查詢模塊,用于依據(jù)輸入的查詢條件、所述原始表建立模塊的原始分表和所述信息表生成模塊的信息表,選擇原始分表掃描或信息表預(yù)掃描的查詢方式,進(jìn)行查詢操作;歷史數(shù)據(jù)獲取模塊,用于依據(jù)所述查詢模塊中原始分表掃描或信息表預(yù)掃描的查詢方式進(jìn)行查詢操作后,得到符合查詢條件的歷史數(shù)據(jù)記錄。該裝置還包括存儲(chǔ)模塊,用于存儲(chǔ)原始表建立模塊的原始分表、信息表生成模塊的信息表和輸入的查詢條件;判斷模塊,用于依據(jù)所述存儲(chǔ)模塊中的查詢條件,判斷所述查詢條件中是否包含采集時(shí)間信息,并根據(jù)結(jié)果,按采集時(shí)間確定參與查詢的部分原始分表的集合,或者對(duì)全部原始分表進(jìn)行查詢。所述查詢模塊進(jìn)一步包括查詢方式選擇子模塊,用于依據(jù)所述存儲(chǔ)模塊中的查詢條件、原始分表、信息表選擇原始分表掃描或信息表預(yù)掃描的查詢方式;原始分表查詢子模塊,用于依據(jù)查詢方式選擇子模塊選擇的原始分表掃描的查詢方式,對(duì)所述判斷模塊的全部原始分表或者部分原始分表的集合進(jìn)行查詢操作;信息表預(yù)查詢子模塊,用于依據(jù)查詢方式選擇子模塊選擇的信息表預(yù)掃描的查詢方式,對(duì)所述判斷模塊的全部原始分表或者部分原始分表的集合,執(zhí)行查詢操作。本發(fā)明將歷史數(shù)據(jù)按照其采集時(shí)間進(jìn)行原始分表存儲(chǔ),且在原始分表寫入數(shù)據(jù)庫(kù)的同時(shí)為其生成相應(yīng)的信息表,信息表中包含歷史數(shù)據(jù)的常用查詢字段,在此基礎(chǔ)之上,本發(fā)明提出了原始分表掃描和信息表預(yù)掃描兩種查詢方式,在執(zhí)行查詢方式之前,4艮據(jù)輸入的查詢條件和歷史數(shù)據(jù)的具體信息,需要先判斷哪種查詢方式的代價(jià)小,即選擇合適的查詢方式,如此,在不同的情況下,系統(tǒng)會(huì)選擇代價(jià)最小的查詢方式,這樣,減少了系統(tǒng)的占用資源;另外由于信息表中歷史數(shù)據(jù)的常用查詢字段的使用,在查詢時(shí),先對(duì)信息表中每一條記錄的常用查詢字段進(jìn)行查詢,得到與查詢條件相符的信息表記錄后,再找到對(duì)應(yīng)的歷史數(shù)據(jù)就可以了,如此縮小了查詢的范圍,提高了查詢的效率;另外,由于可以對(duì)信息表中每條記錄的常用查詢字段值進(jìn)行了壓縮,與對(duì)應(yīng)的歷史數(shù)據(jù)記錄相比,信息表的記錄占用的系統(tǒng)存儲(chǔ)空間非常的小,綜上所述,使用本發(fā)明的方法和裝置,可以節(jié)省系統(tǒng)資源的同時(shí),還極大的提高了對(duì)歷史數(shù)據(jù)的查詢效率。圖1所示為本發(fā)明歷史數(shù)據(jù)存取方法的流程示意圖2所示為本發(fā)明兩種查詢方式的流程示意圖3所示為本發(fā)明歷史數(shù)據(jù)存取裝置的結(jié)構(gòu)關(guān)系示意圖。具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明的技術(shù)方案進(jìn)一步詳細(xì)闡述。本發(fā)明將采集到的歷史數(shù)據(jù)按照其采集時(shí)間劃分到多個(gè)表格中進(jìn)行存儲(chǔ),本發(fā)明稱之為原始分表,在將這些原始分表寫入數(shù)據(jù)庫(kù)的同時(shí),為其生成對(duì)應(yīng)的信息表,信息表中的一條記錄對(duì)應(yīng)原始分表中的一條歷史數(shù)據(jù)的記錄,信息表中包含了歷史數(shù)據(jù)的唯一標(biāo)識(shí)(ID)信息和對(duì)歷史數(shù)據(jù)進(jìn)行檢索時(shí)、最常用的字段信息,當(dāng)數(shù)據(jù)庫(kù)中存儲(chǔ)的歷史數(shù)據(jù)量非常大時(shí),基于信息表中的信息進(jìn)行檢索可以縮小檢索的范圍。圖1所示為本發(fā)明歷史數(shù)據(jù)存取方法的流程示意圖。步驟IOI,建立原始表,將采集到的每一條歷史數(shù)據(jù)記錄按照采集時(shí)間劃分到原始表中,得到原始分表。電信網(wǎng)絡(luò)管理系統(tǒng)中的數(shù)據(jù)采集點(diǎn)采集到歷史數(shù)據(jù)后,可以將這些歷史數(shù)據(jù)統(tǒng)一存儲(chǔ)到一個(gè)表格中,本發(fā)明稱之為原始表,如果將這些歷史數(shù)據(jù)全部存儲(chǔ)在一個(gè)原始表中,會(huì)降低以后的檢索、查詢效率。在采集每一條歷史數(shù)據(jù)時(shí),都會(huì)隨之生成一個(gè)該條歷史數(shù)據(jù)記錄的采集時(shí)間,因此,可以依據(jù)每條歷史數(shù)據(jù)記錄的采集時(shí)間,將在某段時(shí)間內(nèi)采集到的多條歷史數(shù)據(jù)記錄在一個(gè)原始分表中。時(shí)間粒度的劃分可以依據(jù)所采集的歷史數(shù)據(jù)的產(chǎn)生頻率或者實(shí)際的應(yīng)用情況確定,如某臺(tái)運(yùn)行設(shè)備在8點(diǎn)到20點(diǎn)的時(shí)間段內(nèi),歷史數(shù)據(jù)的產(chǎn)生頻率很高,而在20點(diǎn)到第二天8點(diǎn)的時(shí)間段內(nèi),歷史數(shù)據(jù)的產(chǎn)生頻率比較低,那么可以設(shè)定在8點(diǎn)到20點(diǎn)的時(shí)間段內(nèi),將每l個(gè)小時(shí)產(chǎn)生的歷史數(shù)據(jù)存儲(chǔ)在一個(gè)原始分表中,而在20點(diǎn)到第二天8點(diǎn)的時(shí)間段內(nèi),可以將20點(diǎn)到24點(diǎn)所產(chǎn)生的歷史數(shù)據(jù)存儲(chǔ)在一個(gè)原始分表中,將0點(diǎn)到8點(diǎn)所產(chǎn)生的歷史數(shù)據(jù)存儲(chǔ)在一個(gè)原始分表中;如果,只需要某臺(tái)運(yùn)行設(shè)備在8點(diǎn)到20點(diǎn)的時(shí)間段內(nèi)所產(chǎn)生的歷史數(shù)據(jù),而不關(guān)心20點(diǎn)到第二天8點(diǎn)的時(shí)間段內(nèi)所產(chǎn)生的歷史數(shù)據(jù),那么,可以將8點(diǎn)到20點(diǎn)的時(shí)間段內(nèi)所產(chǎn)生的歷史數(shù)據(jù),按照一定的時(shí)間周期進(jìn)行劃分。同時(shí),原始分表的名稱中可以體現(xiàn)出該分表所包含的歷史數(shù)據(jù)所產(chǎn)生的時(shí)間段,如Alarm—200804010000—200804011200,表示該原始表所存儲(chǔ)的是,在2008年4月l號(hào)0點(diǎn)到2008年4月l號(hào)12點(diǎn)所產(chǎn)生的告警類歷史凄t據(jù)。步驟102,為原始分表設(shè)定標(biāo)識(shí)ID號(hào)字段,并在ID號(hào)字段上創(chuàng)建一個(gè)非聚簇索引。原始分表建好后,為其設(shè)定一個(gè)標(biāo)識(shí)的ID號(hào)字段,如果數(shù)據(jù)庫(kù)中有10個(gè)原始分表,那么可以設(shè)定其ID號(hào)字段分別為1,2,3…10,也可以設(shè)定為a,b,c…,只要能夠唯一標(biāo)識(shí)原始分表即可。非聚簇索引表示了該條歷史數(shù)據(jù)在數(shù)據(jù)庫(kù)中的具體位置。步驟103,依據(jù)原始分表中的歷史數(shù)據(jù)記錄和ID號(hào)字段,生成與原始分表對(duì)應(yīng)的信息表。在將原始分表寫入數(shù)據(jù)庫(kù)的同時(shí),要為其生成相應(yīng)的信息表。該信息表依據(jù)對(duì)歷史數(shù)據(jù)進(jìn)行查詢時(shí),所使用的頻率最高的查詢字段來設(shè)立。該信息表中包含多條記錄,每一條記錄與相應(yīng)的原始分表中的每條歷史數(shù)據(jù)記錄——對(duì)應(yīng)。信息表中的每條記錄的格式相同,包含兩部分內(nèi)容,分別是相應(yīng)的歷史數(shù)據(jù)的ID號(hào)字段和相應(yīng)的歷史數(shù)據(jù)的頻率最高的查詢字段,可以稱之為常用查詢字段,其在信息表中進(jìn)行存儲(chǔ)時(shí),可以進(jìn)行壓縮,成為常用查詢字段壓縮值,信息表記錄的格式為{ID,常用查詢字段壓縮值)。具體地,通過下面的例子可以說明。例如,對(duì)于告警類的歷史數(shù)據(jù)所表示的告警信息類型,可能包含以下幾種,如表l所示<table>complextableseeoriginaldocumentpage11</column></row><table>表1可以先將某類歷史數(shù)據(jù)所能表示的所有信息類型進(jìn)行排序編號(hào),再將每個(gè)類型所包含的屬性值列舉出來??梢钥闯?,告警信息類型所包含的屬性值的種類一般比較少,可以將這些屬性值用枚舉整數(shù)表示,即如表l所示,嚴(yán)重性等級(jí)的屬性值用枚舉整數(shù)表示后為1:嚴(yán)重告警、2:緊急告警、3:普通告警。需要指出的是,某類歷史數(shù)據(jù)的常用查詢字段是統(tǒng)一設(shè)定的,對(duì)于告警類歷史數(shù)據(jù),如果根據(jù)需要設(shè)定其常用查詢字段所包含的告警信息類型為告警類型、嚴(yán)重性等級(jí)、告警確認(rèn)狀態(tài)、告警結(jié)束狀態(tài),一旦設(shè)定后,這四個(gè)告警信息類型的順序不是變的,具體的每一個(gè)信息表的一條記錄包含的常用查詢字段的類型所對(duì)應(yīng)的值是變化的,則可以設(shè)定告警類歷史數(shù)據(jù)的常用查詢字段為(告警類型X,嚴(yán)重性等級(jí)X,告警確認(rèn)狀態(tài)X,告警結(jié)束狀態(tài)X),其中X表示告警信息類型的具體屬性值。例如,在一條歷史翁:據(jù)記錄中,告警結(jié)束狀態(tài)為l(未結(jié)束),那么相應(yīng)的與該條歷史數(shù)據(jù)記錄對(duì)應(yīng)的、信息表中的一條記錄的常用查詢字段中的告警結(jié)束狀態(tài)也為l(未結(jié)束);如果告警結(jié)束狀態(tài)為2(已結(jié)束),那么相應(yīng)的信息表中的常用查詢字段中的告警結(jié)束狀態(tài)也為2(已結(jié)束)。對(duì)于原始分表Alarm—200804010000—200804011200,假設(shè),其中某一條歷史數(shù)據(jù)記錄,其包含的告警信息中告警類型為l(普通告警),嚴(yán)重性等級(jí)為2(緊急告警),告警確認(rèn)狀態(tài)為l(未確認(rèn)),告警結(jié)束狀態(tài)為2(已結(jié)束),結(jié)合所設(shè)定的告警類是歷史數(shù)據(jù)的常用查詢字段(告警類型X,嚴(yán)重性等級(jí)X,告警確認(rèn)狀態(tài)X,告警結(jié)束狀態(tài)X),那么該條歷史數(shù)據(jù)記錄的常用查詢字段用枚舉整數(shù)表示后為{1212},再將該常用查詢字段壓縮為位串,用int型,即整數(shù)型字符串表示。先用二進(jìn)制表示該常用查詢字段為{110110},當(dāng)然也可以用統(tǒng)一的bit數(shù)來表示其中每一個(gè)字段,如用4個(gè)bit來表示的話,為{0001001000010010},較佳地可以使用最少能表示每一個(gè)字段的bit數(shù)來表示;再將二進(jìn)制表示的常用查詢字段用int型表示,{110110}用int型表示為54,{0001001000010010}用int型表示為4626,如此常用查詢字段{告警類型:l,嚴(yán)重性等級(jí)2,告警確認(rèn)狀態(tài)1,告警結(jié)束狀態(tài)2}就被壓縮為54,假設(shè)該條歷史數(shù)據(jù)記錄的ID號(hào)為1,那么,該條歷史數(shù)據(jù)記錄所對(duì)應(yīng)的信息表記錄為{1,54}。信息表中的記錄,其具體內(nèi)容除了ID號(hào)字段,就是常用查詢字段壓縮值,這樣信息表的數(shù)據(jù)量就遠(yuǎn)遠(yuǎn)地小于原始分表中歷史數(shù)據(jù)的數(shù)據(jù)量。需要指出的是,信息表可以與原始分表一一對(duì)應(yīng),也可以多個(gè)原始分表對(duì)應(yīng)一個(gè)信息表,即一個(gè)信息表包含的記錄對(duì)應(yīng)多個(gè)原始分表的所有歷史數(shù)據(jù)記錄。如果信息表與原始分表一一對(duì)應(yīng),那么可以依據(jù)原始分表的名稱對(duì)相應(yīng)的信息表命名,如可以命名與原始分表Alara^20080401000(^200804011200相應(yīng)的信息表的名稱為Alarm—200804010000—200804011200—desc,這種命名方式是在原始分表的名稱后面加上一個(gè)后綴,具體后綴可以根據(jù)需要確定,只要將每個(gè)信息表區(qū)分開便可。步驟104,依據(jù)輸入的查詢條件、原始分表和信息表選擇原始分表掃描或信息表預(yù)掃描的查詢方式,進(jìn)行查詢操作。步驟105,依據(jù)原始分表掃描或信息表預(yù)掃描的查詢方式進(jìn)行查詢操作后,得到符合查詢條件的歷史數(shù)據(jù)記錄。當(dāng)需要對(duì)歷史數(shù)據(jù)進(jìn)行;險(xiǎn)索或查詢時(shí),先要輸入查詢條件,該查詢條件一般包括采集時(shí)間和查詢字段。本發(fā)明提供了兩種查詢方式原始分表掃描或者信息表預(yù)掃描。具體的如何選擇,將通過下面的實(shí)施例來說明。圖2所示為本發(fā)明兩種查詢方式的流程示意圖。步驟201,輸入查詢條件。查詢條件中一般包括所查詢的歷史數(shù)據(jù)的采集時(shí)間和查詢的關(guān)鍵詞,即查詢字段。步驟202~204,對(duì)輸入的查詢條件進(jìn)行分析,判斷查詢條件中是否包含采集時(shí)間信息,如果包含需要查詢的歷史數(shù)據(jù)的采集時(shí)間,那么執(zhí)行步驟203,按采集時(shí)間確定所要參與查詢操作的部分原始分表的集合;如果不包含采集時(shí)間,執(zhí)行步驟204,取所有的原始分表,參與查詢操作。步驟205,確定所要參與查詢操作的原始分表中記錄的歷史數(shù)據(jù)的數(shù)量,如這些原始分表一共包含多少條歷史數(shù)據(jù)記錄。206~208,判斷記錄的歷史數(shù)據(jù)的數(shù)量是否'j、于預(yù)設(shè)的門限值。可以根據(jù)需要預(yù)設(shè)一個(gè)歷史數(shù)據(jù)數(shù)量的門限值,如設(shè)定歷史數(shù)據(jù)數(shù)量的門限值為20000條,那么,如果參與查詢操作的原始分表所包含的歷史數(shù)據(jù)的數(shù)量小于20000條,執(zhí)行步驟207,選擇原始表掃描的查詢方式,否則執(zhí)行步驟209。選擇原始表掃描的查詢方式之后執(zhí)行步驟208,對(duì)參與查詢操作的原始分表進(jìn)行查詢,該步驟的查詢按照現(xiàn)有技術(shù)中一般的查詢方式進(jìn)行。步驟209,確定查詢條件中查詢字段與信息表中常用查詢字段的重合數(shù)。假設(shè)查詢條件中的查詢字段為{嚴(yán)重性等級(jí)2(緊急告警),告警確認(rèn)狀態(tài)l(未確認(rèn)))。當(dāng)該查詢字段與信息表中的常用查詢字段(告警類型X,嚴(yán)重性等級(jí)X,告警確認(rèn)狀態(tài)X,告警結(jié)束狀態(tài)X)進(jìn)行比較時(shí),可以得知,兩者都具有嚴(yán)重性等級(jí)和告警確認(rèn)狀態(tài),那么可以確定,兩者的重合數(shù)為2,其中X表示告警信息類型的具體值。步驟210,判斷重合數(shù)是否小于預(yù)設(shè)的門限值??梢愿鶕?jù)需要預(yù)設(shè)一個(gè)字段重合數(shù)的門限值,如門限值為2,那么查詢字段與常用查詢字段重合數(shù)小于2的情況下,返回執(zhí)行步驟207208選擇原始表掃描的查詢方式,對(duì)參與查詢操作的原始分表進(jìn)行查詢,否則執(zhí)行步驟211。步驟211,選擇信息表預(yù)掃描的查詢方式。步驟212,將查詢條件中的查詢字段與信息表中的常用查詢字段重合部分的信息進(jìn)行組合,得到預(yù)查詢語(yǔ)句。結(jié)合步驟209所述的例子,將查詢字段和常用查詢字段比較后,得到預(yù)查詢的字段信息為(嚴(yán)重性等級(jí)2(緊急告警),告警確認(rèn)狀態(tài)1(未確認(rèn))},即重合字段的信息。假設(shè)該查詢條件的完整信息為獲取采集于2008年5月26日15點(diǎn)到16點(diǎn)之間的記錄中,嚴(yán)重性等級(jí)為2(緊急告警),告警確認(rèn)狀態(tài)為l(未確認(rèn))的歷史數(shù)據(jù)記錄。經(jīng)過步驟202203的方法可以得到參與查詢操作的原始分表名為Alarm—200805261200—200805262000,找到該原始分表對(duì)應(yīng)的信息表為Alarm—200805261200—200805262000—desc,通過比較得到的預(yù)查詢字段信息為(嚴(yán)重性等級(jí)2(緊急告警),告警確認(rèn)狀態(tài)1(未確認(rèn))},通過查詢表l,可以將預(yù)查詢字段{嚴(yán)重性等級(jí)2(緊急告警),告警確認(rèn)狀態(tài)1(未確認(rèn))}用枚舉整數(shù)表示為{0210},需要指出的是,對(duì)于查詢字段中沒有的而常用查詢字段中有的告警信息類型,需要在查詢字段中相應(yīng)的位置上補(bǔ)O,如果查詢字段中含有而常用查詢字段中沒有的告警信息類型,那么暫時(shí)不考慮該類型。那么,(021O)用二進(jìn)制可以表示為{01010},最后用int型整數(shù)表示為10,組織針對(duì)信息表的預(yù)查詢語(yǔ)句為whereAlarmDesc&10=10。步驟213,依據(jù)預(yù)查詢語(yǔ)句,對(duì)信息表進(jìn)行查詢,得到信息表中ID號(hào)字段的集合。信息表中,每條記錄所包含的常用查詢字段信息都用int型字符串來表示,即常用查詢字段壓縮值。依據(jù)預(yù)查詢語(yǔ)句whereAlarmDesc&10=IO對(duì)信息表進(jìn)行查詢,即將查詢條件的查詢字段的值10與信息表中的某一條記錄中的常用查詢字段壓縮值進(jìn)行比較,對(duì)兩者進(jìn)行與運(yùn)算,可以得到兩組重合的告警信息類型的具體屬性值。假設(shè)與運(yùn)算后,得到查詢條件的一組屬性值為嚴(yán)重性等級(jí)l,告警結(jié)束狀態(tài)2;信息表中該條記錄的一組屬性值為嚴(yán)重性等級(jí)l,告警結(jié)束狀態(tài)2,兩組數(shù)據(jù)相同,這種情況下,就將該條記錄中的ID字段號(hào)取出。如果得到的信息表中該條記錄的一組屬性值為嚴(yán)重性等級(jí)2,告警結(jié)束狀態(tài)2,兩組屬性值不完全相同,這種情況下,就繼續(xù)查找下一條信息表中的記錄,直到將該信息表查詢完為止。如此,便可以得到一個(gè)ID號(hào)字段的集合。步驟214,依據(jù)ID號(hào)字段的集合對(duì)參與查詢操作的原始分表進(jìn)行查詢。因?yàn)橐粋€(gè)ID號(hào)字段中含有一個(gè)非聚簇索引,該索引表示了其對(duì)應(yīng)的歷史數(shù)據(jù)記錄在數(shù)據(jù)庫(kù)中的具體位置,因此根據(jù)具體的ID號(hào)字段中的非聚條索引,系統(tǒng)就可以直接查詢到所需的歷史數(shù)據(jù)記錄,如此與將ID號(hào)字段——匹配的方式相比,提高了查詢效率。步驟215,得到符合查詢條件的歷史數(shù)據(jù)記錄。根據(jù)原始表掃描的查詢方式和信息表預(yù)掃描的查詢方式,最終可以得到符合查詢條件的歷史數(shù)據(jù)記錄。根據(jù)上面的實(shí)施例可以得到,本發(fā)明提供了兩種查詢方式,即原始表掃描和信息表預(yù)掃描,并且給出了選擇這兩種查詢方式的條件,即在不同的情況下選擇哪種查詢方式。在相同的情況下,兩種查詢方式的代價(jià)是不同的,當(dāng)查詢的范圍比較大時(shí),如果選擇原始分表的查詢方式,將查詢條件和原始分表中的歷史數(shù)據(jù)——進(jìn)行匹配,這樣返回查詢結(jié)果的速度很慢,如果選擇信息表預(yù)掃描的查詢方式,首先通過簡(jiǎn)單的幾個(gè)判斷操作,將查詢范圍縮小,之后再將查詢條件和原始分表中的歷史數(shù)據(jù)——進(jìn)行匹配,這樣就提高了效率,所以,這種情況下,信息表預(yù)掃描的查詢方式的代價(jià)是相對(duì)較小的;如果查詢的范圍比較小時(shí),如果選4奪信息表預(yù)掃描的查詢方式,先通過幾個(gè)判斷操作將查詢范圍縮小,但是縮小后的查詢范圍與之前的查詢范圍相比相差不大,這種情況下,直接選擇原始分表掃描的查詢方式,其代價(jià)相對(duì)l交小。圖3所示為本發(fā)明歷史數(shù)據(jù)存取裝置的結(jié)構(gòu)關(guān)系示意圖。該裝置包括原始表建立模塊IO、設(shè)置模塊20、信息表生成模塊30、查詢模塊40、和歷史數(shù)據(jù)獲取模塊50,其中,原始表建立模塊IO,用于建立原始表,將采集到的每一條歷史數(shù)據(jù)記錄按照采集時(shí)間劃分到原始表中,得到原始分表。設(shè)置模塊20,用于為所述原始表建立模塊10的原始分表設(shè)定唯一標(biāo)識(shí)的ID號(hào)字段,并在ID號(hào)字段上創(chuàng)建一個(gè)非聚蔟索引。信息表生成模塊30,用于依據(jù)所述原始表建立模塊10的原始分表中的歷史數(shù)據(jù)記錄和通過所述設(shè)置模塊20設(shè)置的ID號(hào)字段,生成與原始分表對(duì)應(yīng)的信息表。查詢模塊40,用于依據(jù)輸入的查詢條件、所述原始表建立模塊IO的原始分表和所述信息表生成模塊30的信息表,選擇原始分表掃描或信息表預(yù)掃描的查詢方式,進(jìn)行查詢操作。查詢模塊40進(jìn)一步包括查詢方式選擇子模塊41、原始分表查詢子模塊42和信息表預(yù)查詢子模塊43,其中,查詢方式選擇子模塊41,用于依據(jù)所述存儲(chǔ)模塊40中輸入的查詢條件、原始表建立模塊10的原始分表、信息表生成模塊30的信息表,選擇原始分表掃描或信息表預(yù)掃描的查詢方式。原始分表查詢子模塊42,用于依據(jù)查詢方式選擇子模塊41選擇的原始分表掃描的查詢方式,進(jìn)行查詢操作。信息表預(yù)查詢子模塊43,用于依據(jù)查詢方式選擇子模塊41選擇的信息表預(yù)掃描的查詢方式,進(jìn)行查詢操作。歷史數(shù)據(jù)獲取模塊50,用于依據(jù)所述查詢模塊40中原始分表掃描或信息表預(yù)掃描的查詢方式進(jìn)行查詢操作后,得到符合查詢條件的歷史數(shù)據(jù)記錄。以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。權(quán)利要求1、一種歷史數(shù)據(jù)的存取方法,其特征在于,該方法包括a、建立原始表,將采集到的每一條歷史數(shù)據(jù)記錄按照采集時(shí)間劃分到所述原始表中,得到原始分表;b、為所述原始分表設(shè)定標(biāo)識(shí)ID號(hào)字段,并在所述ID號(hào)字段上創(chuàng)建一個(gè)非聚簇索引;c、依據(jù)所述原始分表中的歷史數(shù)據(jù)記錄和所述ID號(hào)字段,生成與所述原始分表對(duì)應(yīng)的信息表;d、依據(jù)輸入的查詢條件、所述原始分表和所述信息表選擇原始分表掃描或信息表預(yù)掃描的查詢方式,進(jìn)行查詢操作;e、依據(jù)所述原始分表掃描或信息表預(yù)掃描的查詢方式進(jìn)行查詢操作后,得到符合查詢條件的歷史數(shù)據(jù)記錄。2、根據(jù)權(quán)利要求1所述歷史數(shù)據(jù)的存取方法,其特征在于,步驟a中所述一個(gè)原始分表包含設(shè)定時(shí)間段的多條歷史數(shù)據(jù)記錄。3、根據(jù)權(quán)利要求1所述歷史數(shù)據(jù)的存取方法,其特征在于,步驟c所述信息分表包含多個(gè)記錄,所述記錄是所述ID號(hào)字段信息和常用查詢字段信息的組合;依據(jù)所述原始分表中的歷史數(shù)據(jù)記錄,得到對(duì)該條歷史數(shù)據(jù)執(zhí)行查詢操作時(shí)所涉及的最常用的查詢字段信息。4、根據(jù)權(quán)利要求1或3所述歷史數(shù)據(jù)的存取方法,其特征在于,步驟c所述信息表中的記錄與所述原始分表中的歷史凝:據(jù)記錄——對(duì)應(yīng)。5、根據(jù)權(quán)利要求1或3所述歷史數(shù)據(jù)的存取方法,其特征在于,步驟d之前,該方法還包括判斷所述輸入的查詢條件中是否包含采集時(shí)間信息,如果包含采集時(shí)間,則按采集時(shí)間確定查詢的部分原始分表的集合;如果不包含采集時(shí)間,則對(duì)全部原始分表進(jìn)行查詢。6、根據(jù)權(quán)利要求5所述歷史數(shù)據(jù)的存取方法,其特征在于,步驟d所述選擇原始分表掃描或信息表預(yù)掃描的查詢方式的方法包括確定全部原始分表或者部分原始分表集合所包含的歷史數(shù)據(jù)的記錄數(shù),如果所述記錄數(shù)小于預(yù)設(shè)的門限值,則選擇原始分表掃描的查詢方式,否則,選擇信息表預(yù)掃描的查詢方式;確定所述輸入的查詢條件所包含的查詢字段和信息表中包含的常用查詢字段的重合數(shù),如果重合數(shù)小于預(yù)設(shè)的門限值,則選擇原始分表掃描的查詢方式,否則,選擇信息表預(yù)掃描的查詢方式。7、根據(jù)權(quán)利要求6所述歷史數(shù)據(jù)的存取方法,其特征在于,步驟d所述選擇信息表預(yù)掃描的查詢方式,進(jìn)行查詢操作的方法包括依據(jù)所述查詢條件,將查詢條件中的查詢字段與所述信息表中的常用查詢字段重合部分的信息進(jìn)行組合,得到預(yù)查詢語(yǔ)句;依據(jù)所述預(yù)查詢語(yǔ)句,對(duì)信息表進(jìn)行查詢,得到所述信息表中ID號(hào)字段的集合;依據(jù)所述ID號(hào)字段的集合對(duì)所述全部原始分表或者部分原始分表的集合進(jìn)4亍查詢。8、根據(jù)權(quán)利要求6歷史數(shù)據(jù)的存取方法,其特征在于,步驟d所述選擇原始分表掃描的查詢方式,進(jìn)行查詢操作,具體包括依據(jù)所述原始分表掃描的查詢方式,對(duì)所述全部原始分表或者部分原始分表的集合進(jìn)行查詢操作。9、一種歷史數(shù)據(jù)的存取裝置,其特征在于,該裝置包括原始表建立模塊,用于建立原始表,將采集到的每一條歷史數(shù)據(jù)記錄按照采集時(shí)間劃分到所述原始表中,得到原始分表;設(shè)置模塊,用于為所述原始表建立模塊的原始分表設(shè)定唯一標(biāo)識(shí)的ID號(hào)字段,并在所述ID號(hào)字段上創(chuàng)建一個(gè)非聚蔟索引;信息表生成模塊,用于依據(jù)所述原始表建立模塊的原始分表中的歷史數(shù)據(jù)記錄和所述通過設(shè)置模塊設(shè)置的ID號(hào)字段,生成與所述原始分表對(duì)應(yīng)的信息表;查詢模塊,用于依據(jù)輸入的查詢條件、所述原始表建立模塊的原始分表和所述信息表生成模塊的信息表,選擇原始分表掃描或信息表預(yù)掃描的查詢方式,進(jìn)行查詢操作;歷史數(shù)據(jù)獲取模塊,用于依據(jù)所述查詢模塊中原始分表掃描或信息表預(yù)掃描的查詢方式進(jìn)行查詢操作后,得到符合查詢條件的歷史數(shù)據(jù)記錄。10、根據(jù)權(quán)利要求9所述歷史數(shù)據(jù)的存取裝置,其特征在于,該裝置還包括存儲(chǔ)模塊,用于存儲(chǔ)原始表建立模塊的原始分表、信息表生成模塊的信息表和輸入的查詢條件;判斷模塊,用于依據(jù)所述存儲(chǔ)模塊中的查詢條件,判斷所述查詢條件中是否包含采集時(shí)間信息,并根據(jù)結(jié)果,按采集時(shí)間確定參與查詢的部分原始分表的集合,或者對(duì)全部原始分表進(jìn)行查詢。11、根據(jù)權(quán)利要求9或IO所述歷史數(shù)據(jù)的存取裝置,其特征在于,所述查詢模塊進(jìn)一步包括查詢方式選擇子才莫塊,用于依據(jù)所述存儲(chǔ)模塊中的查詢條件、原始分表、信息表選擇原始分表掃描或信息表預(yù)掃描的查詢方式;原始分表查詢子模塊,用于依據(jù)查詢方式選擇子模塊選擇的原始分表掃描的查詢方式,對(duì)所述判斷模塊的全部原始分表或者部分原始分表的集合進(jìn)行查詢操作;信息表預(yù)查詢子模塊,用于依據(jù)查詢方式選擇子模塊選擇的信息表預(yù)掃描的查詢方式,對(duì)所述判斷模塊的全部原始分表或者部分原始分表的集合,執(zhí)行查詢纟喿作。全文摘要本發(fā)明公開了一種歷史數(shù)據(jù)的存取方法,該方法包括建立原始表,將采集到的每一條歷史數(shù)據(jù)記錄按照采集時(shí)間劃分到所述原始表中,得到原始分表;為所述原始分表設(shè)定標(biāo)識(shí)ID號(hào)字段,并在所述ID號(hào)字段上創(chuàng)建一個(gè)非聚簇索引;依據(jù)所述原始分表中的歷史數(shù)據(jù)記錄和所述ID號(hào)字段,生成與所述原始分表對(duì)應(yīng)的信息表;依據(jù)輸入的查詢條件、所述原始分表和所述信息表選擇原始分表掃描或信息表預(yù)掃描的查詢方式,進(jìn)行查詢操作;依據(jù)所述原始分表掃描或信息表預(yù)掃描的查詢方式進(jìn)行查詢操作后,得到符合查詢條件的歷史數(shù)據(jù)記錄;本發(fā)明還公開了一種歷史數(shù)據(jù)的存取裝置,基于該方法和裝置能夠提高對(duì)歷史數(shù)據(jù)的查詢效率。文檔編號(hào)G06F17/30GK101344893SQ20081013075公開日2009年1月14日申請(qǐng)日期2008年7月17日優(yōu)先權(quán)日2008年7月17日發(fā)明者明陳申請(qǐng)人:中興通訊股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1