專利名稱:一種工業(yè)數(shù)據(jù)庫(kù)報(bào)文存儲(chǔ)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種工業(yè)數(shù)據(jù)庫(kù)報(bào)文存儲(chǔ)技術(shù)。
背景技術(shù):
工業(yè)數(shù)據(jù)庫(kù)系統(tǒng)和一般的商業(yè)數(shù)據(jù)庫(kù)系統(tǒng)(關(guān)系型數(shù)據(jù)庫(kù)或者面向?qū)ο蟮臄?shù)據(jù)庫(kù))在本質(zhì)上大致相同,其最大的區(qū)別在于工業(yè)數(shù)據(jù)的數(shù)量十分龐大,存在海量的存儲(chǔ)需求,以及海量數(shù)據(jù)的快速訪問(wèn)需求,從而使得工業(yè)數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)的實(shí)時(shí)性和數(shù)據(jù)有效性的需求十分高。工業(yè)報(bào)文作為一種BLOB (二進(jìn)制格式)數(shù)據(jù),是工業(yè)數(shù)據(jù)庫(kù)中一種典型的數(shù)據(jù)存儲(chǔ)格式。工業(yè)報(bào)文為工業(yè)量測(cè)點(diǎn)在發(fā)生事件、告警等之后,通過(guò)預(yù)定義格式,描述該事件或者告警信息,組成編碼通知目的管理節(jié)點(diǎn)的數(shù)據(jù)信息。這里的量測(cè)點(diǎn)不一定是實(shí)際的采樣點(diǎn),可以是管理集中后的管理節(jié)點(diǎn)。工業(yè)報(bào)文一般是已經(jīng)合成和預(yù)處理的綜合信息,而不是原始信息。工業(yè)報(bào)文具有明顯的時(shí)間特性,每條工業(yè)報(bào)文中必然包含報(bào)文發(fā)送源點(diǎn)標(biāo)識(shí)、時(shí)間戳和BLOB數(shù)據(jù),還可能包含訪問(wèn)點(diǎn)屬性、報(bào)文傳輸物理或者邏輯鏈路的質(zhì)量碼、報(bào)文傳輸物理或者邏輯鏈路的類型等其他屬性。同時(shí)工業(yè)報(bào)文是不斷產(chǎn)生的,具有海量數(shù)據(jù)的特點(diǎn)ο海量報(bào)文的存儲(chǔ)需要占用大量的存儲(chǔ)空間,并且訪問(wèn)速度受到報(bào)文數(shù)量的限制。 為了降低存儲(chǔ)空間,提高訪問(wèn)速度,達(dá)到工業(yè)數(shù)據(jù)庫(kù)的實(shí)時(shí)性需求,需要針對(duì)工業(yè)報(bào)文的特性尋求有針對(duì)性的設(shè)計(jì)和解決方案。
發(fā)明內(nèi)容
本發(fā)明主要解決的技術(shù)問(wèn)題是提供一種工業(yè)數(shù)據(jù)庫(kù)報(bào)文存儲(chǔ)方法,使得工業(yè)數(shù)據(jù)庫(kù)中報(bào)文的存儲(chǔ)效率更高、空間占用更少。為了解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種工業(yè)數(shù)據(jù)庫(kù)報(bào)文存儲(chǔ)方法,包含以下步驟將預(yù)留的文件存儲(chǔ)區(qū)域劃分為索引區(qū)域和數(shù)據(jù)區(qū)域;在進(jìn)行報(bào)文存儲(chǔ)時(shí),從所述索引區(qū)域頭部起,將報(bào)文的索引信息正序存儲(chǔ)在該索引區(qū)域,從所述數(shù)據(jù)區(qū)域底部起,將報(bào)文的其他部分信息倒序存儲(chǔ)在該數(shù)據(jù)區(qū)域;所述索引區(qū)域和數(shù)據(jù)區(qū)域的劃分根據(jù)所述索引區(qū)域和數(shù)據(jù)區(qū)域中存儲(chǔ)的數(shù)據(jù)量自適應(yīng)變化。作為上述技術(shù)方案的改進(jìn),所述報(bào)文存儲(chǔ)過(guò)程中,索引區(qū)域和數(shù)據(jù)區(qū)域的數(shù)據(jù)量均向所述文件存儲(chǔ)區(qū)域中間部分增長(zhǎng),在待存儲(chǔ)的報(bào)文數(shù)據(jù)量大于文件存儲(chǔ)區(qū)域中間空白部分時(shí),停止將所述報(bào)文存儲(chǔ)在該文件存儲(chǔ)區(qū)域,為所述源點(diǎn)標(biāo)識(shí)預(yù)留新的文件存儲(chǔ)區(qū)域。作為上述技術(shù)方案的改進(jìn),所述報(bào)文至少包含報(bào)文數(shù)據(jù)、源點(diǎn)標(biāo)識(shí)、時(shí)間戳,所述其他部分信息至少包含報(bào)文數(shù)據(jù)部分。作為上述技術(shù)方案的改進(jìn),所述報(bào)文的索引信息由所述報(bào)文的時(shí)間戳和所述其他
4部分信息在數(shù)據(jù)區(qū)域中的存儲(chǔ)位置構(gòu)成;進(jìn)行所述報(bào)文存儲(chǔ)之前,還包含以下步驟根據(jù)所述文件存儲(chǔ)區(qū)域中數(shù)據(jù)區(qū)域中當(dāng)前數(shù)據(jù)存儲(chǔ)位置,計(jì)算所述報(bào)文的其他部分信息在該數(shù)據(jù)區(qū)域中的存儲(chǔ)位置,生成所述報(bào)文的索引信息。作為上述技術(shù)方案的改進(jìn),每個(gè)源點(diǎn)標(biāo)識(shí)對(duì)應(yīng)一個(gè)索引文件和至少一個(gè)文件存儲(chǔ)空間,所述索引文件中保存該源點(diǎn)標(biāo)識(shí)對(duì)應(yīng)的各文件存儲(chǔ)空間的指針;屬于同一個(gè)源點(diǎn)標(biāo)識(shí)的報(bào)文存儲(chǔ)在該源點(diǎn)標(biāo)識(shí)對(duì)應(yīng)的文件存儲(chǔ)空間中。作為上述技術(shù)方案的改進(jìn),所述文件存儲(chǔ)空間的指針可以是該文件存儲(chǔ)空間構(gòu)成的數(shù)據(jù)文件名稱。作為上述技術(shù)方案的改進(jìn),所述索引文件中還保存各文件存儲(chǔ)空間存儲(chǔ)的報(bào)文的起始時(shí)間戳和終止時(shí)間戳;在存儲(chǔ)報(bào)文前,將待存儲(chǔ)的報(bào)文的時(shí)間戳與各文件存儲(chǔ)空間當(dāng)前對(duì)應(yīng)的起始時(shí)間戳、終止時(shí)間戳相比較,尋找時(shí)間最接近的文件存儲(chǔ)空間進(jìn)行存儲(chǔ);在存儲(chǔ)報(bào)文后,更新所述索引文件中該文件存儲(chǔ)空間的起始時(shí)間戳和終止時(shí)間戳。作為上述技術(shù)方案的改進(jìn),所述預(yù)留的文件存儲(chǔ)區(qū)域大小由預(yù)估的報(bào)文長(zhǎng)度和預(yù)計(jì)存儲(chǔ)的報(bào)文數(shù)量決定。作為上述技術(shù)方案的改進(jìn),所述將報(bào)文的索引信息正序存儲(chǔ)在該索引區(qū)域的步驟之前,使用優(yōu)化算法對(duì)所述索引信息進(jìn)行排序,得到索引信息映射表;所述將報(bào)文的索引信息正序存儲(chǔ)在該索引區(qū)域的步驟中,將排序后的索引信息映射表正序存儲(chǔ)在所述索引區(qū)域中。所述優(yōu)化算法至少包括哈希算法,所述映射表至少包括 hash-mapο作為上述技術(shù)方案的改進(jìn),所述報(bào)文的其他部分信息還包含以下之一或其任意組合報(bào)文的訪問(wèn)點(diǎn)屬性、報(bào)文傳輸物理或邏輯鏈路的質(zhì)量碼、報(bào)文傳輸物理或邏輯鏈路的類型。作為上述技術(shù)方案的改進(jìn),在進(jìn)行報(bào)文檢索時(shí),根據(jù)待檢索報(bào)文的源點(diǎn)標(biāo)識(shí),找到對(duì)應(yīng)的索引文件;將待檢索報(bào)文的時(shí)間戳與索引文件中各文件存儲(chǔ)區(qū)域的起始時(shí)間戳、終止時(shí)間戳比較,找到時(shí)間相匹配的文件存儲(chǔ)空間;讀取找到的文件存儲(chǔ)空間的索引區(qū)域,根據(jù)待檢索報(bào)文的時(shí)間戳對(duì)該索引區(qū)域中的索引信息進(jìn)行二級(jí)查找,根據(jù)找到的索引信息定位報(bào)文的實(shí)際存儲(chǔ)位置。本發(fā)明實(shí)施方式與現(xiàn)有技術(shù)相比,主要區(qū)別及其效果在于將預(yù)留的文件存儲(chǔ)區(qū)域劃分為索引區(qū)域和數(shù)據(jù)區(qū)域;在進(jìn)行報(bào)文存儲(chǔ)時(shí),從索引區(qū)域頭部起,將報(bào)文的索引信息正序存儲(chǔ)在該索引區(qū)域,從數(shù)據(jù)區(qū)域底部起,將報(bào)文的其他部分信息倒序存儲(chǔ)在該數(shù)據(jù)區(qū)域;索引區(qū)域和數(shù)據(jù)區(qū)域的劃分根據(jù)索引區(qū)域和數(shù)據(jù)區(qū)域中存儲(chǔ)的數(shù)據(jù)量自動(dòng)變化,從而不會(huì)浪費(fèi)預(yù)留的索引區(qū)域的空間,在固定大小的文件存儲(chǔ)區(qū)域中最高效率地進(jìn)行報(bào)文存儲(chǔ),將空間利用率最大化,減少報(bào)文占用的存儲(chǔ)空間。保存各文件存儲(chǔ)空間中存儲(chǔ)的報(bào)文的起始時(shí)間戳和終止時(shí)間戳,使得在進(jìn)行報(bào)文
5檢索時(shí),能夠快速找到對(duì)應(yīng)的文件存儲(chǔ)空間,加快了報(bào)文的檢索時(shí)間,處理時(shí)間更短??梢允褂脙?yōu)化算法對(duì)報(bào)文的索引信息進(jìn)行排序,保存排序后的索引信息映射表, 如hash-map,從而在進(jìn)行報(bào)文檢索時(shí),能夠根據(jù)時(shí)間戳快速定位對(duì)應(yīng)的索引信息,進(jìn)一步加快了報(bào)文的檢索時(shí)間。
下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明。圖1是本發(fā)明一較佳實(shí)施方式的工業(yè)數(shù)據(jù)庫(kù)報(bào)文存儲(chǔ)方法流程圖;圖2是本發(fā)明一較佳實(shí)施方式的工業(yè)數(shù)據(jù)庫(kù)報(bào)文存儲(chǔ)方法中單條報(bào)文存儲(chǔ)格式示意圖;圖3是本發(fā)明一較佳實(shí)施方式的工業(yè)數(shù)據(jù)庫(kù)報(bào)文存儲(chǔ)方法中數(shù)據(jù)文件存儲(chǔ)格式示意圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明的實(shí)施方式作進(jìn)一步地詳細(xì)描述。本發(fā)明一較佳實(shí)施方式涉及一種工業(yè)數(shù)據(jù)庫(kù)報(bào)文存儲(chǔ)方法。本實(shí)施方式中的工業(yè)報(bào)文一般至少包含BLOB報(bào)文數(shù)據(jù)、源點(diǎn)標(biāo)識(shí)、時(shí)間戳三部分,還可選擇性包含報(bào)文的訪問(wèn)點(diǎn)屬性、報(bào)文傳輸物理或邏輯鏈路的質(zhì)量碼、報(bào)文傳輸物理或邏輯鏈路的類型等其他屬性。本實(shí)施方式中,將同一個(gè)源點(diǎn)標(biāo)識(shí)的報(bào)文存儲(chǔ)在一個(gè)文件存儲(chǔ)區(qū)域中,即存儲(chǔ)在一個(gè)數(shù)據(jù)文件中。在工業(yè)數(shù)據(jù)庫(kù)中為不同源點(diǎn)標(biāo)識(shí)分別預(yù)留對(duì)應(yīng)的數(shù)據(jù)文件,根據(jù)希望存儲(chǔ)的報(bào)文數(shù)量和預(yù)估的報(bào)文長(zhǎng)度確定數(shù)據(jù)文件的大小,并將數(shù)據(jù)文件劃分為索引區(qū)域和數(shù)據(jù)區(qū)域。在該數(shù)據(jù)文件存儲(chǔ)滿后,自動(dòng)為該源點(diǎn)標(biāo)識(shí)預(yù)留另一個(gè)數(shù)據(jù)文件,即一個(gè)源點(diǎn)標(biāo)識(shí)可以對(duì)應(yīng)多個(gè)數(shù)據(jù)文件。每個(gè)源點(diǎn)標(biāo)識(shí)還包含一個(gè)唯一對(duì)應(yīng)的索引文件,該索引文件可以以該源點(diǎn)標(biāo)識(shí)命名,索引文件中包含該源點(diǎn)標(biāo)識(shí)對(duì)應(yīng)的所有數(shù)據(jù)文件的名稱,以及每個(gè)數(shù)據(jù)文件中存儲(chǔ)的報(bào)文的起始時(shí)間戳和終止時(shí)間戳,還可以包含各數(shù)據(jù)文件的索引狀態(tài)等信肩、ο具體的報(bào)文存儲(chǔ)流程如圖1所示。步驟101中,將報(bào)文緩存在內(nèi)存中,將報(bào)文的發(fā)送源點(diǎn)標(biāo)識(shí)、報(bào)文的時(shí)間戳進(jìn)行字段獨(dú)立劃分,其余的屬性部分將和報(bào)文數(shù)據(jù)歸并為一個(gè)獨(dú)立存儲(chǔ)部分,不進(jìn)行區(qū)分,如圖2 所示。對(duì)報(bào)文數(shù)據(jù)和其余屬性進(jìn)行壓縮編碼,如采用LZW(LempeI-Ziv-WeIch)算法進(jìn)行壓縮編碼。其壓縮編碼和逆向解析都由應(yīng)用上層定義和實(shí)現(xiàn)。在報(bào)文緩存到一定數(shù)量后,存入工業(yè)數(shù)據(jù)庫(kù)中。步驟102中,根據(jù)報(bào)文的源點(diǎn)標(biāo)識(shí)和時(shí)間戳區(qū)間找到數(shù)據(jù)庫(kù)中對(duì)應(yīng)的數(shù)據(jù)文件。具體地說(shuō),首先根據(jù)源點(diǎn)標(biāo)識(shí)找到對(duì)應(yīng)的索引文件,一般索引文件名即為該源點(diǎn)標(biāo)識(shí),如[源點(diǎn)標(biāo)識(shí)].pridx。之后讀取索引文件中數(shù)據(jù)文件名稱和對(duì)應(yīng)的起始時(shí)間戳、終止時(shí)間戳(即時(shí)間戳區(qū)間),將待存儲(chǔ)的報(bào)文的時(shí)間戳區(qū)間與各數(shù)據(jù)文件所對(duì)應(yīng)的時(shí)間戳區(qū)間相比較,尋找最接近待存儲(chǔ)報(bào)文的時(shí)間戳區(qū)間的數(shù)據(jù)文件名稱。在實(shí)際操作中,為了加快查找速度,可以采用幾種常見(jiàn)的搜索算法,如二分法、哈希表和B、B+樹等。
檢索到對(duì)應(yīng)的數(shù)據(jù)文件后,進(jìn)入步驟103,判斷該數(shù)據(jù)文件剩余空間是否大于待存儲(chǔ)的報(bào)文所需空間,如果小于,則進(jìn)入步驟104 ;如果大于則進(jìn)入步驟107。步驟104中,該源點(diǎn)標(biāo)識(shí)當(dāng)前對(duì)應(yīng)的數(shù)據(jù)文件中已沒(méi)有足夠的空間存儲(chǔ)報(bào)文,為該源點(diǎn)標(biāo)識(shí)生成新的數(shù)據(jù)文件,該數(shù)據(jù)文件同樣分為索引區(qū)域和數(shù)據(jù)區(qū)域。接著進(jìn)入步驟 105。步驟105中,計(jì)算各報(bào)文的數(shù)據(jù)部分(包括報(bào)文數(shù)據(jù)和其他屬性部分)在數(shù)據(jù)文件中的物理存儲(chǔ)位置,將報(bào)文的物理存儲(chǔ)位置和時(shí)間戳構(gòu)成報(bào)文的索引信息。接著進(jìn)入步驟 106。步驟106中,將內(nèi)存中緩存的報(bào)文存儲(chǔ)到該新數(shù)據(jù)文件中,從索引區(qū)域的頭部起始,將報(bào)文的索引信息正序存儲(chǔ)在該索引區(qū)域,從數(shù)據(jù)區(qū)域的底部起始,將報(bào)文的其他部分信息倒序存儲(chǔ)在該數(shù)據(jù)區(qū)域,如圖3所示。其中,索引信息由報(bào)文的時(shí)間戳和其他部分信息在數(shù)據(jù)區(qū)域中的物理存儲(chǔ)位置構(gòu)成,報(bào)文其他部分信息即除源點(diǎn)標(biāo)識(shí)和時(shí)間戳以外的信息,包含報(bào)文的訪問(wèn)點(diǎn)屬性、報(bào)文傳輸物理或邏輯鏈路的質(zhì)量碼、報(bào)文傳輸物理或邏輯鏈路的類型等其他屬性。作為進(jìn)一步改進(jìn),在將報(bào)文的索引信息存儲(chǔ)在該索引區(qū)域之前,可以先在內(nèi)存中使用優(yōu)化算法(如哈希算法)對(duì)索引信息進(jìn)行排序,形成對(duì)應(yīng)的映射表(如hash-map),將排序得到的索引信息映射表(如hash-map)存儲(chǔ)到索引區(qū)域,以便在檢索報(bào)文時(shí)能夠快速定位索引信息。報(bào)文存儲(chǔ)之后,在該源點(diǎn)標(biāo)識(shí)對(duì)應(yīng)的索引文件中保存新的數(shù)據(jù)文件的名稱、數(shù)據(jù)文件中存儲(chǔ)的報(bào)文的起始時(shí)間戳、和終止時(shí)間戳。步驟107中,當(dāng)前的數(shù)據(jù)文件有足夠的存儲(chǔ)空間,確定該數(shù)據(jù)文件中數(shù)據(jù)區(qū)域當(dāng)前存儲(chǔ)位置,根據(jù)該存儲(chǔ)位置計(jì)算各報(bào)文的數(shù)據(jù)部分(包括報(bào)文數(shù)據(jù)和其他屬性部分)在數(shù)據(jù)文件中的物理存儲(chǔ)位置,將報(bào)文的物理存儲(chǔ)位置和時(shí)間戳構(gòu)成報(bào)文的索引信息。接著進(jìn)入步驟108。步驟108中,按照該數(shù)據(jù)文件中索引區(qū)域和數(shù)據(jù)區(qū)域當(dāng)前的存儲(chǔ)位置,將報(bào)文的索引信息正序存儲(chǔ)在該索引區(qū)域,將報(bào)文的其他部分信息倒序存儲(chǔ)在該數(shù)據(jù)區(qū)域。并更新對(duì)應(yīng)的索引文件中本數(shù)據(jù)文件的起始時(shí)間戳和終止時(shí)間戳。同樣,在將報(bào)文的索引信息存儲(chǔ)在該索引區(qū)域之前,可以先在內(nèi)存中使用優(yōu)化算法(如哈希算法)對(duì)索引信息進(jìn)行排序,形成對(duì)應(yīng)的映射表(如hash-map),將排序得到的索引信息映射表(如hash-map)存儲(chǔ)到索引區(qū)域,以便在檢索報(bào)文時(shí)能夠快速定位索引信肩、ο綜上所述,由于工業(yè)報(bào)文長(zhǎng)度變化大,不可預(yù)測(cè),在預(yù)留報(bào)文的存儲(chǔ)空間時(shí),經(jīng)常會(huì)產(chǎn)生空間浪費(fèi),容易發(fā)生索引區(qū)域還有剩余空間而數(shù)據(jù)區(qū)域已滿,或者數(shù)據(jù)區(qū)域還有空間而索引區(qū)域已滿的情況。通過(guò)上述存儲(chǔ)方式,索引區(qū)域和數(shù)據(jù)區(qū)域的數(shù)據(jù)量均由兩頭向數(shù)據(jù)文件中間部分增長(zhǎng),數(shù)據(jù)文件的中間部分為空白區(qū)域,索引區(qū)域和數(shù)據(jù)區(qū)域之間沒(méi)有固定劃分,從而可以根據(jù)所存儲(chǔ)的報(bào)文需要,自動(dòng)改變,從而不會(huì)因預(yù)留索引區(qū)域而產(chǎn)生存儲(chǔ)空間浪費(fèi),且能保持?jǐn)?shù)據(jù)的連續(xù)存儲(chǔ),便于快速讀取。在待存儲(chǔ)的報(bào)文數(shù)據(jù)量大于該數(shù)據(jù)文件中間空白部分時(shí),停止將報(bào)文存儲(chǔ)在該數(shù)據(jù)文件,從而在固定大小的文件存儲(chǔ)區(qū)域中最高效率地進(jìn)行報(bào)文存儲(chǔ),將空間利用率最大化,減少報(bào)文占用的存儲(chǔ)空間。
并且,通過(guò)將屬于相同源點(diǎn)標(biāo)識(shí)的報(bào)文在同一個(gè)數(shù)據(jù)文件中,使得無(wú)需再保存每條報(bào)文對(duì)應(yīng)的源點(diǎn)標(biāo)識(shí),節(jié)省了存儲(chǔ)空間,在工業(yè)領(lǐng)域上千萬(wàn)條工業(yè)報(bào)文的情況下,明顯提高了數(shù)據(jù)存儲(chǔ)效率。根據(jù)本實(shí)施方式的報(bào)文存儲(chǔ)方法,在進(jìn)行報(bào)文檢索時(shí),可以直接根據(jù)需要檢索的報(bào)文的源點(diǎn)標(biāo)識(shí)找到對(duì)應(yīng)的索引文件。再將待檢索報(bào)文的時(shí)間戳區(qū)間、與索引文件中各數(shù)據(jù)文件名稱對(duì)應(yīng)的起始時(shí)間戳和終止時(shí)間戳進(jìn)行比較,找到包含待檢索的時(shí)間戳區(qū)間的數(shù)據(jù)文件,在實(shí)際操作中,同樣可以采用幾種常見(jiàn)的搜索算法,如二分法、哈希表和B、B+樹等。之后讀取數(shù)據(jù)文件中的索引區(qū)域,從該索引區(qū)域進(jìn)行二級(jí)查找,定位報(bào)文在該數(shù)據(jù)文件中的實(shí)際存儲(chǔ)位置。在進(jìn)行數(shù)據(jù)定位時(shí),如果索引信息已通過(guò)優(yōu)化算法進(jìn)行排序,則可以根據(jù)排序后的映射表快速定位對(duì)應(yīng)的索引信息,找到所需的報(bào)文,如可以采用hash-map等方式提高檢索效率。通過(guò)上述存儲(chǔ)方式,使得報(bào)文的檢索更方便,處理時(shí)間更短。雖然通過(guò)參照本發(fā)明的某些優(yōu)選實(shí)施方式,已經(jīng)對(duì)本發(fā)明進(jìn)行了圖示和描述,但本領(lǐng)域的普通技術(shù)人員應(yīng)該明白,可以在形式上和細(xì)節(jié)上對(duì)其作各種改變,而不偏離本發(fā)明的精神和范圍。
權(quán)利要求
1.一種工業(yè)數(shù)據(jù)庫(kù)報(bào)文存儲(chǔ)方法,其特征在于,包含以下步驟將預(yù)留的文件存儲(chǔ)區(qū)域劃分為索引區(qū)域和數(shù)據(jù)區(qū)域;在進(jìn)行報(bào)文存儲(chǔ)時(shí),從所述索引區(qū)域頭部起,將報(bào)文的索引信息正序存儲(chǔ)在該索引區(qū)域,從所述數(shù)據(jù)區(qū)域底部起,將報(bào)文的其他部分信息倒序存儲(chǔ)在該數(shù)據(jù)區(qū)域;所述索引區(qū)域和數(shù)據(jù)區(qū)域的劃分根據(jù)所述索引區(qū)域和數(shù)據(jù)區(qū)域中存儲(chǔ)的數(shù)據(jù)量自適應(yīng)變化。
2.根據(jù)權(quán)利要求1所述的工業(yè)數(shù)據(jù)庫(kù)報(bào)文存儲(chǔ)方法,其特征在于,所述報(bào)文存儲(chǔ)過(guò)程中,索引區(qū)域和數(shù)據(jù)區(qū)域的數(shù)據(jù)量均向所述文件存儲(chǔ)區(qū)域中間部分增長(zhǎng),在待存儲(chǔ)的報(bào)文數(shù)據(jù)量大于文件存儲(chǔ)區(qū)域中間空白部分時(shí),停止將所述報(bào)文存儲(chǔ)在該文件存儲(chǔ)區(qū)域,為所述源點(diǎn)標(biāo)識(shí)預(yù)留新的文件存儲(chǔ)區(qū)域。
3.根據(jù)權(quán)利要求1所述的工業(yè)數(shù)據(jù)庫(kù)報(bào)文存儲(chǔ)方法,其特征在于,所述報(bào)文至少包含報(bào)文數(shù)據(jù)、源點(diǎn)標(biāo)識(shí)、時(shí)間戳,所述其他部分信息至少包含報(bào)文數(shù)據(jù)部分。
4.根據(jù)權(quán)利要求3所述的工業(yè)數(shù)據(jù)庫(kù)報(bào)文存儲(chǔ)方法,其特征在于,所述報(bào)文的索引信息由所述報(bào)文的時(shí)間戳和所述其他部分信息在數(shù)據(jù)區(qū)域中的存儲(chǔ)位置構(gòu)成;進(jìn)行所述報(bào)文存儲(chǔ)之前,還包含以下步驟根據(jù)所述文件存儲(chǔ)區(qū)域中數(shù)據(jù)區(qū)域中當(dāng)前數(shù)據(jù)存儲(chǔ)位置,計(jì)算所述報(bào)文的其他部分信息在該數(shù)據(jù)區(qū)域中的存儲(chǔ)位置,生成所述報(bào)文的索引信息。
5.根據(jù)權(quán)利要求3所述的工業(yè)數(shù)據(jù)庫(kù)報(bào)文存儲(chǔ)方法,其特征在于,每個(gè)源點(diǎn)標(biāo)識(shí)對(duì)應(yīng)一個(gè)索引文件和至少一個(gè)文件存儲(chǔ)空間,所述索引文件中保存該源點(diǎn)標(biāo)識(shí)對(duì)應(yīng)的各文件存儲(chǔ)空間的指針;屬于同一個(gè)源點(diǎn)標(biāo)識(shí)的報(bào)文存儲(chǔ)在該源點(diǎn)標(biāo)識(shí)對(duì)應(yīng)的文件存儲(chǔ)空間中。
6.根據(jù)權(quán)利要求5所述的工業(yè)數(shù)據(jù)庫(kù)報(bào)文存儲(chǔ)方法,其特征在于,所述文件存儲(chǔ)空間的指針為該文件存儲(chǔ)空間構(gòu)成的數(shù)據(jù)文件名稱。
7.根據(jù)權(quán)利要求5所述的工業(yè)數(shù)據(jù)庫(kù)報(bào)文存儲(chǔ)方法,其特征在于,所述索引文件中還保存各文件存儲(chǔ)空間存儲(chǔ)的報(bào)文的起始時(shí)間戳和終止時(shí)間戳;在存儲(chǔ)報(bào)文前,將待存儲(chǔ)的報(bào)文的時(shí)間戳與各文件存儲(chǔ)空間當(dāng)前對(duì)應(yīng)的起始時(shí)間戳、 終止時(shí)間戳相比較,尋找時(shí)間最接近的文件存儲(chǔ)空間進(jìn)行存儲(chǔ);在存儲(chǔ)報(bào)文后,更新所述索引文件中該文件存儲(chǔ)空間的起始時(shí)間戳和終止時(shí)間戳。
8.根據(jù)權(quán)利要求1至7中任意一項(xiàng)所述的工業(yè)數(shù)據(jù)庫(kù)報(bào)文存儲(chǔ)方法,其特征在于,所述預(yù)留的文件存儲(chǔ)區(qū)域大小由預(yù)估的報(bào)文長(zhǎng)度和預(yù)計(jì)存儲(chǔ)的報(bào)文數(shù)量決定。
9.根據(jù)權(quán)利要求1至7中任意一項(xiàng)所述的工業(yè)數(shù)據(jù)庫(kù)報(bào)文存儲(chǔ)方法,其特征在于,所述將報(bào)文的索引信息正序存儲(chǔ)在該索引區(qū)域的步驟之前,使用優(yōu)化算法對(duì)所述索引信息進(jìn)行排序,得到索引信息映射表;所述將報(bào)文的索引信息正序存儲(chǔ)在該索引區(qū)域的步驟中,將排序后的索引信息映射表正序存儲(chǔ)在所述索引區(qū)域中。
10.根據(jù)權(quán)利要求9所述的工業(yè)數(shù)據(jù)庫(kù)報(bào)文存儲(chǔ)方法,其特征在于,所述優(yōu)化算法至少包括哈希算法,所述映射表至少包括hash-map。
11.根據(jù)權(quán)利要求1至7中任意一項(xiàng)所述的工業(yè)數(shù)據(jù)庫(kù)報(bào)文存儲(chǔ)方法,其特征在于,所述報(bào)文的其他部分信息還包含以下之一或其任意組合報(bào)文的訪問(wèn)點(diǎn)屬性、報(bào)文傳輸物理或邏輯鏈路的質(zhì)量碼、報(bào)文傳輸物理或邏輯鏈路的類型。
12.根據(jù)權(quán)利要求7所述的工業(yè)數(shù)據(jù)庫(kù)報(bào)文存儲(chǔ)方法,其特征在于,在進(jìn)行報(bào)文檢索時(shí),根據(jù)待檢索報(bào)文的源點(diǎn)標(biāo)識(shí),找到對(duì)應(yīng)的索引文件;將待檢索報(bào)文的時(shí)間戳與索引文件中各文件存儲(chǔ)區(qū)域的起始時(shí)間戳、終止時(shí)間戳比較,找到時(shí)間相匹配的文件存儲(chǔ)空間;讀取找到的文件存儲(chǔ)空間的索引區(qū)域,根據(jù)待檢索報(bào)文的時(shí)間戳對(duì)該索引區(qū)域中的索引信息進(jìn)行二級(jí)查找,根據(jù)找到的索引信息定位報(bào)文的實(shí)際存儲(chǔ)位置。
全文摘要
本發(fā)明公開(kāi)了一種工業(yè)數(shù)據(jù)庫(kù)報(bào)文存儲(chǔ)方法,將預(yù)留的文件存儲(chǔ)區(qū)域劃分為索引區(qū)域和數(shù)據(jù)區(qū)域;在進(jìn)行報(bào)文存儲(chǔ)時(shí),從索引區(qū)域頭部起,將報(bào)文的索引信息正序存儲(chǔ)在該索引區(qū)域,從數(shù)據(jù)區(qū)域底部起,將報(bào)文的其他部分信息倒序存儲(chǔ)在該數(shù)據(jù)區(qū)域;索引區(qū)域和數(shù)據(jù)區(qū)域的劃分根據(jù)索引區(qū)域和數(shù)據(jù)區(qū)域中存儲(chǔ)的數(shù)據(jù)量自動(dòng)變化,從而不會(huì)浪費(fèi)預(yù)留的索引區(qū)域的空間,在固定大小的文件存儲(chǔ)區(qū)域中最高效率地進(jìn)行報(bào)文存儲(chǔ),將空間利用率最大化,減少報(bào)文占用的存儲(chǔ)空間。保存各文件存儲(chǔ)空間存儲(chǔ)的報(bào)文的起始時(shí)間戳和終止時(shí)間戳,使得在進(jìn)行報(bào)文檢索時(shí),能夠快速定位對(duì)應(yīng)的文件存儲(chǔ)空間,并可以通過(guò)索引信息進(jìn)行快速定位,加快了報(bào)文的檢索時(shí)間,處理時(shí)間更短。
文檔編號(hào)G06F17/30GK102419752SQ201010295949
公開(kāi)日2012年4月18日 申請(qǐng)日期2010年9月28日 優(yōu)先權(quán)日2010年9月28日
發(fā)明者葉軍, 梁俊, 王偉 申請(qǐng)人:上海可魯系統(tǒng)軟件有限公司