專利名稱:一種關(guān)系型數(shù)據(jù)庫的實(shí)時數(shù)據(jù)存儲和讀取方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)庫的數(shù)據(jù)存儲和讀取方法,特別涉及一種關(guān)系型數(shù)據(jù)庫的實(shí)時數(shù)據(jù)存儲和讀取方法。
背景技術(shù):
企業(yè)生產(chǎn)過程是不斷變化的動態(tài)過程,表征生產(chǎn)運(yùn)行的過程參數(shù)如溫度、壓力、流量、液位等等是時刻變化著的;企業(yè)生產(chǎn)過程賴以存在的物質(zhì)基礎(chǔ)是生產(chǎn)設(shè)備,生產(chǎn)設(shè)備的運(yùn)行參數(shù)如狀態(tài)、電流、電壓、功率、振動指標(biāo)等等也是在不斷變化的;生產(chǎn)過程所處的環(huán)境條件如大氣壓強(qiáng)、溫度、濕度、易燃易爆、有毒、有害氣體濃度等等更是在不斷變化著的。生產(chǎn)過程實(shí)時數(shù)據(jù)無疑是企業(yè)最寶貴的信息資源之一。任何有進(jìn)取精神的企業(yè)都希望完整地存儲過程數(shù)據(jù),從而從生產(chǎn)過程的“過去”和“歷史”去分析過程運(yùn)行的效率和 質(zhì)量情況,并從中發(fā)現(xiàn)潛在的隱患,以提高企業(yè)的管理水平和エ藝技術(shù)水平。過程實(shí)時信息規(guī)模巨大、內(nèi)容瞬息萬變的特征給數(shù)據(jù)存儲技術(shù)帶來了前所未有的挑戰(zhàn)。實(shí)時數(shù)據(jù)庫RTDB (Real-Time Data Base)的概念最早出現(xiàn)在1988年3月的ACMSIGMOD Record的一期??小?biāo)志著實(shí)時數(shù)據(jù)庫這個新興研究領(lǐng)域的確立。實(shí)時數(shù)據(jù)庫是數(shù)據(jù)庫系統(tǒng)發(fā)展的ー個分支,是實(shí)時領(lǐng)域與數(shù)據(jù)庫領(lǐng)域的融合,它適用于處理不斷更新的快速變化的數(shù)據(jù)及具有時間限制的事務(wù)處理。實(shí)時數(shù)據(jù)庫技術(shù)是實(shí)時系統(tǒng)和數(shù)據(jù)庫技術(shù)相結(jié)合的產(chǎn)物,研究人員希望利用數(shù)據(jù)庫技術(shù)來解決實(shí)時系統(tǒng)中的數(shù)據(jù)管理問題,同時利用實(shí)時技術(shù)為實(shí)時數(shù)據(jù)庫提供時間驅(qū)動調(diào)度和資源分配算法。然而,實(shí)時數(shù)據(jù)庫并非是兩者在概念、結(jié)構(gòu)和方法上的簡單集成。早期的信息系統(tǒng)受計算機(jī)硬件、軟件技術(shù)水平的制約,無法用面向業(yè)務(wù)處理的關(guān)系型數(shù)據(jù)庫存儲引擎解決實(shí)時數(shù)據(jù)的存儲問題,目前只有數(shù)家專業(yè)實(shí)時數(shù)據(jù)庫生產(chǎn)廠家,提供實(shí)時數(shù)據(jù)的存儲解決方案,如美國OSIsoft的PI實(shí)時數(shù)據(jù)庫,Aspen Technology的IP21等。因為是“專業(yè)”產(chǎn)品,沒有經(jīng)過商業(yè)軟件市場的充分洗禮,所以其產(chǎn)品價格十分昂貴,大型企業(yè)實(shí)施實(shí)時信息系統(tǒng)僅實(shí)時數(shù)據(jù)庫軟件的成本投入可能都在百萬元人民幣以上。根據(jù)有關(guān)資料統(tǒng)計,目前國內(nèi)企業(yè)生產(chǎn)過程信息化的ー個主要屏障正是實(shí)時數(shù)據(jù)庫軟件產(chǎn)品高昂的購置成本和總體擁有成本(TCO)。近年來,在企業(yè)信息化浪潮的推進(jìn)下,關(guān)系型數(shù)據(jù)庫引擎技術(shù)得到了廣泛的應(yīng)用,其軟件產(chǎn)品在市場的歷練中日臻完善成熟。企業(yè)IT人員對關(guān)系型數(shù)據(jù)庫軟件產(chǎn)品的應(yīng)用、維護(hù)也日益得心應(yīng)手。關(guān)系型數(shù)據(jù)庫引擎和實(shí)時數(shù)據(jù)庫引擎都是用來存儲數(shù)據(jù),并以最高的性能給用戶提供可靠、可用的數(shù)據(jù)存取功能,同時自動進(jìn)行存儲系統(tǒng)資源的自動管理。但在應(yīng)用場景上有著重要的差別存儲規(guī)模關(guān)系型數(shù)據(jù)庫原來主要用于存儲企業(yè)的事務(wù)過程數(shù)據(jù),而事務(wù)過程是需要人來參與的過程,ー個最繁忙的大型超市毎秒需要記錄的數(shù)據(jù)也不會超過幾百條。反之,實(shí)時數(shù)據(jù)庫引擎主要用于存儲企業(yè)的生產(chǎn)過程實(shí)時數(shù)據(jù),隨著自動化控制技術(shù)的發(fā)展,現(xiàn)代企業(yè)的生產(chǎn)過程多是在控制設(shè)備控制下的連續(xù)化的不斷運(yùn)行的過程,ー個典型的現(xiàn)代化エ裝置每秒產(chǎn)生上萬條的數(shù)據(jù)已是較為常見的情況。實(shí)時性因為事務(wù)過程需要人來參與,ー個事務(wù)過程從開始到結(jié)束起碼需要數(shù)分鐘的時間,最少也要數(shù)秒鐘時間,而現(xiàn)代生產(chǎn)過程基本上是自動過程,在毫秒級的時間內(nèi)就可以完成一個過程。舉例說明,如果我們要存儲10000個エ位點(diǎn)I次/毎秒的采樣數(shù)據(jù),存儲I年需要的磁盤存儲規(guī)模是數(shù)據(jù)的質(zhì)量碼需要I個字節(jié),時間戳記錄采樣時間偏移并精確到毫秒需要3個字節(jié),數(shù)據(jù)假定為單精度浮點(diǎn)數(shù)為4個字節(jié),即記錄ー個單精度浮點(diǎn)數(shù)需要8個字節(jié)。8X10000X3600X24X365 ^ 2350GB ^ 2. 29TB 平均每毫秒需要記錄10條數(shù)據(jù)實(shí)時數(shù)據(jù)引擎的存儲規(guī)模和實(shí)時性都是非常驚人的。從底層技術(shù)實(shí)現(xiàn)層面來說,關(guān)系型數(shù)據(jù)庫和實(shí)時數(shù)據(jù)庫都使用計算機(jī)操作系統(tǒng)的文件系統(tǒng)管理功能來存取數(shù)據(jù),實(shí)時數(shù)據(jù)庫并不存在直接到磁盤的特殊技術(shù)手段。因為目前主流大容量磁盤還是以機(jī)械方式轉(zhuǎn)動的,所以文件IO是耗時的。提高存取性能,要從文件系統(tǒng)的高效緩沖著手,這對關(guān)系型數(shù)據(jù)庫和實(shí)時數(shù)據(jù)庫都是一致的。關(guān)系型數(shù)據(jù)庫系統(tǒng)采用事務(wù)管理來保證數(shù)據(jù)的完整性,同樣實(shí)時數(shù)據(jù)庫也不能忽視數(shù)據(jù)的完整性。因此,實(shí)現(xiàn)嚴(yán)密、高效的事務(wù)處理是關(guān)系型數(shù)據(jù)庫和實(shí)時數(shù)據(jù)庫共同的目標(biāo)。從并發(fā)訪問控制來看,兩種系統(tǒng)追求的目標(biāo)肯定都是一致的,即更大的安全并發(fā)度。其它方面,如索引結(jié)構(gòu)、存取機(jī)制、恢復(fù)機(jī)制、日志管理等,因為關(guān)系型數(shù)據(jù)庫有更多的“市場成熟度”,關(guān)系型數(shù)據(jù)庫產(chǎn)品在可用性、穩(wěn)定性、可伸縮性、性價比方面有著更好的表現(xiàn)。業(yè)內(nèi)認(rèn)為無法使用關(guān)系型數(shù)據(jù)引擎存儲實(shí)時數(shù)據(jù),理由是關(guān)系型數(shù)據(jù)庫讀寫速度慢,存取性能差關(guān)系型數(shù)據(jù)庫存儲效率低(不能壓縮數(shù)據(jù))——摘自互聯(lián)網(wǎng)《關(guān)系數(shù)據(jù)庫、內(nèi)存數(shù)據(jù)庫、實(shí)時數(shù)據(jù)庫的簡單比較》
權(quán)利要求
1.一種關(guān)系型數(shù)據(jù)庫的實(shí)時數(shù)據(jù)存儲和讀取方法,包括 (1)實(shí)時數(shù)據(jù)存儲 步驟I :接收來自外部的數(shù)據(jù); 步驟2 :查找與接收的數(shù)據(jù)對應(yīng)的數(shù)據(jù)緩存塊; 步驟3 :利用數(shù)據(jù)緩存塊記錄的數(shù)據(jù)使用第一算法判斷當(dāng)前接收的數(shù)據(jù)是否需要記錄,若不需要記錄,則返回步驟1,若需要記錄,繼續(xù)步驟4 ; 步驟4 :將當(dāng)前接收的數(shù)據(jù)寫入數(shù)據(jù)緩存塊; 步驟5 :判斷數(shù)據(jù)緩存塊是否已寫滿,若沒有寫滿,返回步驟1,若已經(jīng)寫滿,繼續(xù)步驟6 ; 步驟6 :向數(shù)據(jù)庫引擎提交數(shù)據(jù)緩存塊中的數(shù)據(jù); (2)實(shí)時數(shù)據(jù)讀取 步驟I):發(fā)出數(shù)據(jù)查詢請求; 步驟2):查找與查詢的數(shù)據(jù)對應(yīng)的數(shù)據(jù)緩存塊; 步驟3):判斷當(dāng)前查詢的數(shù)據(jù)是否全部在數(shù)據(jù)緩存塊中,若查詢的數(shù)據(jù)全部在數(shù)據(jù)緩存塊中,則返回查詢結(jié)果,返回步驟I),否則繼續(xù)步驟4); 步驟4):向數(shù)據(jù)庫引擎提交查詢請求,并將數(shù)據(jù)庫引擎返回的數(shù)據(jù)寫入臨時緩存區(qū); 步驟5):若步驟3中存在不需要記錄的數(shù)據(jù),則采用第二算法恢復(fù)相應(yīng)的數(shù)據(jù); 步驟6):若步驟3)中的數(shù)據(jù)緩存塊中有數(shù)據(jù),則合并數(shù)據(jù)緩存塊和臨時緩存區(qū)中的數(shù)據(jù),返回查詢結(jié)果。
2.根據(jù)權(quán)利要求I所述ー種關(guān)系型數(shù)據(jù)庫的實(shí)時數(shù)據(jù)存儲和讀取方法,其特征在于所述步驟6中,先使用第三算法壓縮數(shù)據(jù)緩存塊中的數(shù)據(jù),再向數(shù)據(jù)庫引擎提交數(shù)據(jù)緩存塊中的數(shù)據(jù);所述步驟4)中,在將數(shù)據(jù)庫引擎返回的數(shù)據(jù)寫入臨時緩存區(qū)后,使用第三算法解壓縮臨時緩存區(qū)內(nèi)的數(shù)據(jù)。
3.根據(jù)權(quán)利要求I所述ー種關(guān)系型數(shù)據(jù)庫的實(shí)時數(shù)據(jù)存儲和讀取方法,其特征在于所述步驟2中,使用索引算法查找與接收的數(shù)據(jù)對應(yīng)的數(shù)據(jù)緩存塊。
4.根據(jù)權(quán)利要求3所述ー種關(guān)系型數(shù)據(jù)庫的實(shí)時數(shù)據(jù)存儲和讀取方法,其特征在于所述索引算法為紅黑樹索引算法。
5.根據(jù)權(quán)利要求I所述ー種關(guān)系型數(shù)據(jù)庫的實(shí)時數(shù)據(jù)存儲和讀取方法,其特征在于所述第一算法為分段折線擬合數(shù)據(jù)過濾算法,所述第二算法為線性擬合算法。
6.根據(jù)權(quán)利要求2所述ー種關(guān)系型數(shù)據(jù)庫的實(shí)時數(shù)據(jù)存儲和讀取方法,其特征在于所述第三算法為LZ壓縮算法。
全文摘要
本發(fā)明公開了一種關(guān)系型數(shù)據(jù)庫的實(shí)時數(shù)據(jù)存儲和讀取方法,包括實(shí)時數(shù)據(jù)存儲接收來自外部的數(shù)據(jù);查找與接收的數(shù)據(jù)對應(yīng)的數(shù)據(jù)緩存塊;利用數(shù)據(jù)緩存塊記錄的數(shù)據(jù)判斷當(dāng)前接收的數(shù)據(jù)是否需要記錄;將當(dāng)前接收的數(shù)據(jù)寫入數(shù)據(jù)緩存塊;判斷數(shù)據(jù)緩存塊是否已寫滿;向數(shù)據(jù)庫引擎提交數(shù)據(jù)緩存塊中的數(shù)據(jù);實(shí)時數(shù)據(jù)讀取發(fā)出數(shù)據(jù)查詢請求;查找與查詢的數(shù)據(jù)對應(yīng)的數(shù)據(jù)緩存塊;判斷當(dāng)前查詢的數(shù)據(jù)是否全部在數(shù)據(jù)緩存塊中;向數(shù)據(jù)庫引擎提交查詢請求,并將數(shù)據(jù)庫引擎返回的數(shù)據(jù)寫入臨時緩存區(qū);恢復(fù)相應(yīng)的數(shù)據(jù);合并數(shù)據(jù)緩存塊和臨時緩存區(qū)中的數(shù)據(jù),返回查詢結(jié)果。本發(fā)明解決傳統(tǒng)關(guān)系型數(shù)據(jù)庫讀寫速度慢、存取性能差的問題。
文檔編號G06F17/30GK102831245SQ201210344460
公開日2012年12月19日 申請日期2012年9月17日 優(yōu)先權(quán)日2012年9月17日
發(fā)明者戴華, 婁建新, 婁建宏 申請人:洛陽翔霏機(jī)電科技有限責(zé)任公司