• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      一種磁盤歷史數據庫模型研究

      2014-08-05 04:27:07令曉明郝玉勝
      計算機工程 2014年5期
      關鍵詞:歷史數據數據文件磁盤

      令曉明,郝玉勝

      (1. 蘭州交通大學光電技術與智能控制教育部重點實驗室,蘭州 730070;2. 國家綠色鍍膜技術與裝備工程技術研究中心,蘭州 7 30070)

      一種磁盤歷史數據庫模型研究

      令曉明1,2,郝玉勝1

      (1. 蘭州交通大學光電技術與智能控制教育部重點實驗室,蘭州 730070;2. 國家綠色鍍膜技術與裝備工程技術研究中心,蘭州 7 30070)

      為解決流程工業(yè)中過程歷史數據的存儲以及大量數據的快速查詢問題,提出一種基于關系數據庫的磁盤歷史數據庫模型。在數據存儲方案設計中,將關于位號和數據采集接口的靜態(tài)信息存儲在關系數據庫中,歷史數據以文件形式存放,采用三重二級緩存機制避免頻繁訪問磁盤,并使用經典的SDT算法對實時數據進行壓縮存儲,降低存儲成本。數據查詢方案采用三級索引文件結構,即總索引文件、二級索引文件和位號索引文件,提高查詢效率。該磁盤歷史數據庫的第一版已經成功實現,應用結果表明,數據存儲方案和查詢方案的設計是合理的,100個位號的查詢時間約為500 ms。

      實時數據庫;內存數據庫;過程歷史數據;位號數據;三重二級緩存機制;SDT算法

      1 概述

      將采集到的實時數據保存到特有的數據庫中形成歷史數據,為之后的再現生產過程、數據分析、應用開發(fā)提供數據支持,是流程工業(yè)信息化的必然需求[1]。對企業(yè)而言,反映生產過程的歷史數據意義重大,對這些數據的分析,可以幫助改進生產工藝、提高生產效率、分析生產故障。由于反映整個生產過程的實時數據在流程工業(yè)中一般都是秒級、毫秒級的,而且必須處理數以萬計的位號數據(位號是工業(yè)生產中每一個數據采集點在關系數據庫中的表示形式,采集點的數值在歷史數據庫中被稱為位號數據)。因此,傳統(tǒng)關系數據庫顯然無法存儲這些實時數據,即使存儲其查詢效率也會非常低。然而,盡管這些歷史數據量大,但較高的查詢效率仍是亟需解決的問題[2]。所以,相比關系數據庫,生產過程的歷史數據在組織方式上需要重新設計。

      工業(yè)上常用的歷史數據庫有2種:(1)內存數據庫[3]:采集的實時數據位于內存中,數據只是有選擇性地被保存到磁盤,有利于先進控制和實時優(yōu)化;(2)磁盤歷史數據庫:歷史數據主要以磁盤數據文件的形式存在,可以長時間地存儲大量數據,為上層應用系統(tǒng)提供歷史數據支持[4]。目前,國際上主流的實時數據庫產品有PI、IP21以及Industrial SQL Serve r等。PI系統(tǒng)性能優(yōu)越,數據壓縮比非常高,查詢速度也非???;IP21集成生產過程信息,為應用程序提供基礎數據平臺,其分析工具強大,圖形化的界面也易于操作。Industrial SQL Server內嵌MS SQL Server,它具有一些關系數據庫的特性并且繼承了Mail和Internet的優(yōu)勢。

      過程歷史數據庫所涉及的信息主要有靜態(tài)信息、歷史數據信息。核心模塊包括數據采集、內存數據結構、數據的壓縮存儲以及高效的數據查詢接口。本文在分析其他實時歷史數據庫優(yōu)缺點的基礎上,借鑒實時數據庫的典型設計思想,提出一個高效率、低成本的實時歷史數據庫設計方案。不論是存儲方案還是查詢接口,都體現了“為提高數據查詢效率而設計”的原則。

      2 磁盤歷史數據庫模型架構

      磁盤歷史數據庫采用組件方式設計,不同的組件負責實現的不同的功能,這些組件共同構成數據庫服務器端[5]。整個系統(tǒng)架構設計為客戶/服務器結構,分為歷史數據庫服務器端和歷史數據庫客戶端。歷史數據庫服務端主要負責數據采集接口的建立、內存數據結構的維護、數據的壓縮存儲以及響應數據庫客戶端發(fā)來的查詢請求。如接口名稱、接口采集頻率、接口服務器IP等接口配置信息以及位號名稱、位號單位、位號上下限、位號回路、位號屬性等位號配置信息統(tǒng)統(tǒng)存儲在關系數據庫中;API服務組件主要用于向服務器管理工具和客戶端提供查詢數據的函數,客戶端通過遠程調用這些函數得到滿足條件的結果;另外,服務器端的數據庫管理進程用于管理員維護數據庫。歷史數據庫客戶端負責向服務器端發(fā)送用戶的數據查詢請求,整個系統(tǒng)模型架構見圖1。

      圖1 歷史數據庫模型架構

      歷史數據庫模型架構具體如下:

      (1)數據庫服務進程:數據庫服務進程作為歷史數據庫的主引擎,主要負責接收來自數據采集接口的數據并將數據置于隊列中進行緩沖;另外,它還負責將已經存滿數據的二級緩存以數據塊的形式保存到磁盤文件中。

      (2)數據采集接口:數據采集接口主要負責從傳感器獲取數據,并將其發(fā)送到歷史數據庫服務引擎。數據采集接口在建立時需要的配置信息都是從關系數據庫中讀取的。每個數據采集接口可以同時采集幾百個位號的數據,數據采集接口建立后應立即讀取關系數據庫中所屬位號的所有靜態(tài)信息并保留一份備份。每次數據請求都會利用這些位號的配置信息。當位號配置信息發(fā)生改變后,數據庫服務進程會通知數據采集接口盡快更新所屬位號的配置信息。

      (3)API接口服務進程:API接口服務進程主要維護服務器端的各種API函數,這些API函數為歷史數據庫管理工具提供監(jiān)視和管理數據庫的接口,也為客戶端提供查詢位號數據的接口。

      (4)歷史數據文件:歷史數據文件中存放的是經過高度優(yōu)化的歷史數據文件。

      (5)關系數據庫:關系數據庫在系統(tǒng)中用于存放所有采集點基本配置信息和所有位號的配置信息,也可以為上層應用程序的開發(fā)提供關系數據庫支持[6]。

      (6)數據庫管理進程:數據庫管理進程是用于監(jiān)視歷史數據庫運行的工具,通過數據庫管理進程可以對數據庫的運行情況進行全面的管理監(jiān)控。

      3 存儲方案設計

      在存儲方案設計上,常用的做法是將傳感器采集到的數據先放到內存緩沖區(qū)中,待緩沖區(qū)滿后再將數據經過壓縮后寫到磁盤中。對于數據壓縮,SDT算法是最為經典的算法之一,國內也有學者針對SDT算法作了一些細微的改進[7]。本文模型中的數據壓縮算法采用經典的SDT算法。

      3.1 數據存儲流程

      當數據采集接口將從傳感器采集到的數據送達數據緩沖隊列后,數據存儲線程將這些數據寫入到二級緩存1中,二級緩存1被寫滿后,數據繼續(xù)被送往二級緩存2中,只有當二級緩存2被寫滿后,才開始往二級緩存3中寫數據。與此同時,數據庫存儲線程會把二級緩存1和二級緩存2中的數據經過壓縮處理后按照2個數據塊存入文件隊列的當前文件組。如果當前文件組已滿,則將文件隊列中的下一個文件組作為當前文件組并寫入數據,存儲流程見圖2。

      圖2 歷史數據存儲流程

      數據存儲方案中使用的是三重二級緩存機制。一級緩存其本質是一個隊列,數據采集模塊和數據存儲模塊都可以訪問該隊列,實際上是一個將傳感器上的各個位號數據送達數據庫的通道。設置三重二級緩存的目的是為了增大緩存區(qū)域,當二級緩存1被寫滿后,將數據寫到二級緩存2中,當二級緩存2寫滿后,繼續(xù)往二級緩存3寫數據。與此同時,二級緩存1和二級緩存2中的數據在經過壓縮處理之后作為2個歷史數據塊寫入到文件隊列的當前文件組中。依次類推,當前一個二級緩存被寫滿后開始往下一個二級緩存寫,當下一個二級緩存寫滿后,繼續(xù)往第3個二級緩存寫,同時還要將前2個二級緩存的數據壓縮并寫入文件隊列的當前文件組。在只有2個二級緩存的情況下,第1個二級緩存寫滿后往第2個二級緩存寫數據的同時把第1個二級緩存的數據寫入歷史文件組。引入第3個二級緩存后,等寫滿2個二級緩存再寫第3個二級緩存的同時才保存前2個二級緩存,訪問磁盤的次數減少了一半,效率提高了一倍。

      任意時刻,只有一個二級緩存是當前二級緩存。這樣,既避免了數據壓縮保存時無法緩存歷史數據的問題,又減少了磁盤的訪問頻次。而且,由于存在3個二級緩存,使得內存中的歷史數據量增多。在具體應用中剛要求數據接口采集的那些位號往往是最近要查詢的位號,而內存的二級緩存中正好是一些剛被采集到的位號,這對于查詢效率的提高具有十分明顯的作用。

      在二級緩存中,每一個位號都占有同樣大小的內存區(qū)域,存儲線程將一級緩存隊列中取得的位號數據,逐個寫入到當前二級緩存相應的位號對應的內存區(qū)域,也就是說位號在每一個二級緩存中的排序是相同的。

      除二級緩存中暫存的數據外,其余的數據全部都存儲在磁盤文件中。磁盤文件按照隊列的形式組織起來,隊列里的基本單元是文件組。一個文件組由數據文件、數據塊信息文件和位號索引文件組成[8]。數據庫在運行過程中,文件隊列中至少有一個文件組是當前歷史文件組。前2個二級緩存被寫滿之后將作為2個歷史數據塊并產生索引信息寫入到當前文件組中。只有當前文件組被寫滿(數據文件有大小限制,這樣做的目的是為了防止數據文件過大影響查詢效率)之后,才在隊列中尋找下一個文件組并將其作為當前文件組。如果隊列中沒有可用的文件組,則按照一定的命名規(guī)則新建一個文件組。隊列的長度和文件組的大小都是可以配置的。

      3.2 歷史數據庫文件系統(tǒng)設計

      整個歷史數據庫有一個總的索引文件,該索引文件記錄著每一個文件組記錄數據的起始時間和結束時間[9]。

      文件隊列中每一個文件組包括數據塊信息文件、位號索引文件和數據文件。當前2個二級緩存滿后,其中所有位號的歷史數據依次被壓縮后形成數據文件的2個數據塊。同時,在數據塊信息文件和位號索引文件中寫入對應的索引信息。其中,數據塊信息文件記錄著每一個數據塊記錄數據的起始時間、結束時間以及該數據塊相對于數據文件首部的偏移量;位號索引文件則記錄著每一個位號在數據塊中的起始位置和壓縮后的數據量。

      圖3顯示了數據塊信息文件、位號索引文件和數據文件之間一一對應的關系。圖中僅表達了數據文件的一個歷史數據塊。數據塊信息文件中的信息包括:數據壓縮存儲后數據塊在數據文件中的位置信息。位號索引文件中的信息是指在數據文件的數據塊中每個位號數據的位置以及壓縮后的數據量。

      圖3 歷史數據文件系統(tǒng)結構

      為了節(jié)省存儲空間,數據文件中并不會保存絕對時間值,而是保存相對時間[10]。假設數據記錄時間為T,數據記錄所在的數據塊記錄的起始時間為TStart,則相對時間計算表達式為:

      其中,TSample是對應數據所屬位號的記錄周期。簡而言之,相對時間是數據記錄時間與其所在的數據塊記錄起始時間之間的記錄周期個數。一般在二級緩存中,將單個位號的采樣次數限制在255以下,這樣相對時間就可以用一個字節(jié)來表示,如果存儲絕對時間值,則一個字節(jié)是根本不夠用的。

      3.3 歷史數據的壓縮算法

      工業(yè)上對數據的壓縮技術主要有無損壓縮技術和有損壓縮技術2種[11]。對不同類型的數據,使用不同的壓縮技術才能夠得到較好的壓縮效果。

      (1)浮點型數據的壓縮。在本文模型第一版的實現中,針對浮點型數據采用美國OIS公司開發(fā)的有損壓縮算法SDT[12],其原理如下:

      設ΔE為SDT算法的壓縮精度參數,起點t0為上一個存儲的點,以距離t0為ΔE的上下兩點作為支點,建立兩扇虛擬的門,只有一個數據時門閉合;隨著數據點的增加,門會旋轉打開,門的寬度可延伸,門一旦打開就不能再閉合;只有兩扇門的內角和小于180°(兩扇門未平行),旋轉操作就可以繼續(xù);當兩扇門的內角和大于180°,就停止操作,存儲前一數據點,并由該點開始新一段壓縮。在圖4中,經過旋轉門壓縮后,壓縮段1由t0~t4的線代替了t0~t4的數據點;壓縮段2由t4~t7的線代替了t4~t7的數據點。

      圖4 旋轉門算法原理

      SDT算法是一種有損壓縮算法,但是適當的壓縮偏差能夠消除小信號擾動,起到過濾噪聲的作用,有利于進行數據挖掘和分析。

      (2)開關量數據壓縮。開關量在計算機中可以用1位表示。對于開關量,本文模型中采用了變化即保存的方式,這是一種無損壓縮方法。壓縮模塊在處理開關量數據時,都會與最后一次記錄的開關量數據做比較,如果變化則保存該點,否則就不保存該點。如一串連續(xù)的開關量值為11101001,其實經過壓縮后只保存10101。

      (3)字符串數據的壓縮。字符串是一種比較特殊的數據類型,單個數據的長度可能比較長。因此,有可能要使用二次壓縮。針對原始字符串數據,首先通過有損壓縮算法篩選出需要保存的字符串歷史數據,然后再根據具體情況做無損壓縮處理。對于字符串數據的壓縮,一般采用標準的LZW算法[13]。

      3.4 SD T算法仿真

      使用Matlab對SDT壓縮算法作仿真,實驗數據采用一條正弦曲線上的629個數據點。經過SDT算法壓縮處理之后,需要存儲在歷史數據文件中的點只有41個,由于時間值采用相對時間的形式存放,一個位號在某一時刻的數據只占5 Byte(1 Byte存放相對時間,4 Byte存放數據)。這樣629個位號在某一時刻的存儲空間只有41×5 Byte=205 Byte,仿真結果如圖5、圖6所示,其中,橫軸是離散的時間點,表示采集位號數據的某一時刻;縱軸表示在某一時刻位號的采集值。

      圖5 S DT算法仿真結果(所有數據點)

      圖6 S DT算法仿真結果(需要存儲的數據點)

      4 歷史數據查詢接口設計

      4.1 設計方案

      基于數據庫的應用,其本質是對數據的查詢。本文模型中的存儲方案在設計時充分考慮了數據查詢效率??偹饕募⑽募M中的數據塊信息文件和位號索引文件構成了查詢的索引結構[14],如圖7所示。

      圖7 歷史數據查詢索引結構

      數據查詢的基本形式為:從Ts時刻起,到Te時刻結束,查詢步長為Tspan的位號集合S={S1, S2,…,Sn}在所有時刻的值。

      具體的查詢流程為:

      (1)查看三重二級緩存中的歷史數據是否符合查詢條件。如果所查詢數據全部位于某一個二級緩存當中,則直接將數據返回;否則,轉到步驟(2)。

      (2)進入總索引文件,順序比較查詢時間,假設Ts所代表的時間比總索引文件中最早的時間Tbegin還要早,則將Ts設置為Tbegin,然后依次順序比較直到查出Te所在的信息單元。同時,記錄下查詢過程中涉及到的歷史文件組的名稱(為了便于查找,本文模型中歷史數據文件組名稱按照其在文件隊列中的序號命名)。若找不到查詢的時間范圍,則返回。

      (3)根據步驟(2)所得二級索引信息,順序查詢數據塊信息文件中的各信息單元,記錄所有符合時間條件的歷史數據塊信息,即歷史數據塊的起始位置、起始時間以及對應歷史數據塊在歷史數據文件中的序號。

      (4)進入位號索引文件信息單元,查詢位號歷史數據信息,即單個位號歷史數據在歷史數據塊中的位置和壓縮后的數據量。

      (5)根據各個符合條件的歷史數據塊的起始位置,進入歷史數據文件的各個歷史數據塊讀取符合時間條件的歷史數據和相對時間,然后再根據不同位號數據類型進行插值。開關量位號某時刻的插值為上一個保存時刻的值;對于浮點型數據,需要根據查詢時刻前后2個保存時刻的值進行線性插值,并根據壓縮偏差進行適當的微調。對于字符串數據,要根據壓縮算法(一次壓縮或者二次壓縮)進行解壓。

      4.2 實驗結果及分析

      使用客戶端程序TagMonitor分別請求100個、500個、1 000個、1 500個、2 000個和2 500個位號在某一時刻的實時數據值(在程序請求數據前和請求數據成功后都記錄時間,以這2個時刻的差值作為查詢時間),系統(tǒng)反饋查詢結果的時間如表1所示。

      表1 系統(tǒng)反饋查詢結果的時間 ms

      可以看出,隨著位號數量的增加,服務器返回位號數據的時間也在逐次增加,基本呈線性增長態(tài)勢,并沒有出現隨著位號數量的增加而突然出現查詢時間激增的問題,完全可以滿足一般小型應用系統(tǒng)的要求。

      5 結束語

      本文設計的歷史數據庫模型,有效利用了傳統(tǒng)的開源關系數據庫。對于位號在30 000個以下的小型歷史數據庫系統(tǒng)提供了一種低成本的解決方案。存儲方案中引入的三重二級緩存機制不但減少了訪問磁盤的頻次,也使得查詢效率非常高。但由于采用了SDT算法,其壓縮比隨著數據量的變化波動較大,因此今后將對壓縮算法進行改進,使數據壓縮比保持較高水平。

      [1] 毛國君, 段立娟, 王 實, 等. 數據挖掘原理與算法[M].北京: 清華大學出版社, 2005.

      [2] 高寧波, 金 宏, 王宏安. 歷史數據實時壓縮方法研究[J].計算機工程與應用, 2004, 40(28): 167-170.

      [3] 許貴平, 蔡博克. 支持實時內存數據庫不間斷服務的恢復技術[J]. 計算機工程, 2008, 34(6): 70-71.

      [4] 陸會明, 周 釗, 廖常斌. 基于實時數據庫系統(tǒng)的歷史數據處理[J]. 電力自動化設備, 2009, 29(3): 127-131.

      [5] 劉云生. 實時數據庫系統(tǒng)[M]. 北京: 科學出版社, 2012.

      [6] Sch wartz B. High Perfor mance M ySQL[M]. 寧海元, 譯.北京: 電子工業(yè)出版社, 2013.

      [7] 趙利強, 于 濤, 王建林. 基于SQL數據庫的過程數據壓縮方法[J]. 計算機工程, 2008, 34(14): 58-59.

      [8] 嵇月強, 王文海. 工業(yè)歷史數據庫的研究[J]. 工業(yè)控制計算機, 2007, 20(8): 43-44.

      [9] 文水英. 實時數據庫中歷史數據壓縮算法的研究[D]. 長沙:中南大學, 2008.

      [10] Kao B, Garcia-Molina H. An Overview of Real-time Database Systems[M]. Stanford, USA: Stanford University, 1993.

      [11] 曲奕霖. 流程工業(yè)歷史數據的壓縮策略與壓縮方法研究[D].杭州: 浙江大學, 2010.

      [12] 張景濤, 王 華, 王宏安. 實時數據的存取與壓縮[J]. 化工自動化及儀表, 2003, 30(3): 47-50.

      [13] 徐 慧. 實時數據庫中數據壓縮算法的研究[D]. 杭州:浙江大學, 2006.

      [14] 納永良. 大型實時數據庫關鍵技術及應用研究[D]. 北京:北京化工大學, 2010.

      編輯 陸燕菲

      Research on a Disk History Database Model

      LING Xiao-ming1,2, HAO Yu-sheng1

      (1. Key Laboratory of Opto-Technology and Intelligent Control, Ministry of Education, Lanzhou Jiaotong University, Lanzhou 730070, China; 2. National Engineering Research Center of Green Coating Technology and Equipment, Lanzhou 730070, China)

      In order to solve th e problem of stor ing process history data and fastly querying lar ge amounts, this paper proposes a disk history database model based on relational database. In the storage design, static information about the tags and data collect interfaces are stored in relational database. History data is stored in files, and a mechanism named triple secondary cache is used in RAM, thus the frequency of disk access is re duced. Meanwhile, the S DT algorithm is also used in data processing to reduce storage cost. In order to improve the efficiency of query, three-level index file structure which consists of a total index file, secondary index file and tag number index file is adopted in the data query scheme. The first version of the model is implemented. Applications result shows that the storage and query scheme is reasonable, and it returns the results of 100 tag numbers in about 500 ms.

      real-time database; memory database; process history data; tag number data; triple secondary cache mechanism; SDT algorithm

      10.3969/j.issn.1000-3428.2014.05.006

      國家“863”計劃基金資助項目(2012AA04027)。

      令曉明(1975-),男,副教授,主研方向:計算機控制技術,實時操作系統(tǒng),數據庫技術;郝玉勝,碩士研究生。

      2013-09-24

      2013-12-05E-mail:daryhao@126.com

      1000-3428(2014)05-0026-05

      A

      TP392

      猜你喜歡
      歷史數據數據文件磁盤
      基于充電策略估算動力電池容量的方法
      汽車電器(2025年1期)2025-02-03 00:00:00
      基于設備PF性能曲線和設備歷史數據實現CBM的一個應用模型探討
      智能制造(2021年4期)2021-11-04 08:54:36
      基于故障歷史數據和BP神經網絡的接地選線方案研究
      解決Windows磁盤簽名沖突
      電腦愛好者(2019年2期)2019-10-30 03:45:31
      修改磁盤屬性
      數據文件恢復專題問答
      數據文件安全管控技術的研究與實現
      SQL數據文件恢復工具
      基于Hadoop技術實現銀行歷史數據線上化研究
      磁盤組群組及iSCSI Target設置
      泰和县| 新平| 乌拉特前旗| 洮南市| 龙海市| 凤山县| 辽宁省| 二手房| 莱西市| 镇坪县| 庆城县| 普安县| 长白| 鞍山市| 麻城市| 鄄城县| 大同县| 大足县| 吐鲁番市| 苏尼特右旗| 桐庐县| 焦作市| 湖北省| 花莲县| 北川| 呼伦贝尔市| 莫力| 抚宁县| 天长市| 葫芦岛市| 桐梓县| 五寨县| 万载县| 黄龙县| 锡林郭勒盟| 安新县| 大同市| 安徽省| 朝阳区| 枣强县| 页游|