工業大資料漫談12:實時資料庫與時序資料庫
在工業大資料資料庫儲存領域,除了傳統的關係型資料庫和分散式資料庫以外,還有一種型別的資料庫是非常常用,而且是非常有必要的,就是實時資料庫和時序資料庫。
實時資料庫誕生於美國,主要是因為現代工業製造流程及大規模工業自動化的發展,導致大量的測量資料需要整合和儲存,而採用關係資料庫難以滿足速度和容量的要求,因此在80年代中期,開始誕生了適用於工業監控領域的實時資料庫。
實時資料庫其實並不單單只是一個數據庫,而是一個系統,包括對各類工業介面的資料採集,海量監測資料的壓縮、儲存及檢索,基於監測資料的反饋及控制功能等。
實時資料庫的出現,主要是為了解決當時關係型資料庫不太擅長的領域,包括:
1、海量資料的實時讀寫操作
工業監控資料要求採集速度和響應速度均是毫秒級的,一個大型企業幾萬甚至幾十萬監測點都是常有的事情,這麼大容量的高頻資料,如果用關係資料庫進行儲存,由於關係庫本身設計的理念,導致它很難進行每秒幾十萬的資料的讀寫操作,而實時資料庫通過轉為快速讀寫設計的時標型資料結構、高頻快取等技術,可以實現海量資料的實時讀寫操作。
2、大容量資料的儲存
由於資料採集是海量的監控資料,那麼如果用傳統資料庫進行儲存,將會佔用大量的儲存空間,如果我們用關係資料庫儲存10000個監測點,每個監測點每秒鐘採集一次雙精度數的資料,即使不考慮索引等因素,也需要5-6T的儲存空間,這裡還不包括儲存跟監測點相關的時間等因素,如果都包括,再建立索引,則需要15T-20T的儲存空間。實時資料庫採用了專門的壓縮演算法,包括哈佛曼演算法、旋轉門演算法以及一些二次壓縮演算法,壓縮比普遍能夠達到30:1左右,再加上對於時間及索引的特殊處理,儲存量能夠縮小到關係庫的1/40,因此,上面的例子只需要500G的空間就能夠進行有效儲存了。
3、集成了工業介面的資料採集
由於歷史和壟斷的原因,目前工業通訊、傳輸的協議種類繁多,實時庫一般都集成了大量的工業協議介面,可以對各種型別的工業協議進行解析和傳輸。同時,隨著實時資料庫的發展,介面軟體部分也慢慢被獨立出來,即可以與實時資料庫核心集中部署在1臺計算機上,也可以單獨部署在介面機上,從而提供了更好的可擴充套件性和穩定性。
4、整合控制功能,可實現實時控制
實時資料庫一般都提供下行控制介面,並且是高速寫出。寫的效率嚴重依賴於介面通訊效率和執行機構。因此,實時資料庫大都是從工控軟體廠商發展而來的,他們就有豐富的工業控制寫入的經驗。即便如此,畢竟工業系統對時序有嚴格的要求,而資料庫從讀到寫,會出現時滯,因此,實時資料庫一般不適宜對快速開關量的控制。
在雲端計算的時代,實時資料庫的一些缺點就慢慢的顯露出來了。
首先,由於實時資料庫是基於時標進行處理的,就導致它只能簡單的使用時間段進行查詢和檢索,當然,各大廠商也開發了許多工具,但無論如何檢索的豐富性不能和關係庫比擬。
其次,由於實時庫都是出售給大型工業企業的,因此價格昂貴,在物聯網時代,對於中小工業企業來說,是個不小的成本。
再次,傳統實時庫在部署時不夠方便靈活,傳輸也更多的考慮工業網路,甚少考慮網際網路的情況,不太適應當下雲端計算環境的部署。
這個時候,新興的時序資料庫就出現了。時序資料庫在2017年火了起來,出現了大量的開源和商業產品,時序資料庫就是存放時序資料的資料庫,並且需要支援時序資料的快速寫入、持久化、多緯度的聚合查詢等基本功能。時序資料庫其實主要是實時資料庫的資料儲存部分,但是,由於它採用了新的技術,極大地擴充套件了資料的容量,除了資料點和時間戳之外,還提供標籤和內容等對資料的描述,並且提供各種聚合查詢,彌補了實時庫的缺陷。
但是,時序資料庫不提供工業介面、下行控制等功能,這些都需要開發人員自行開發,或者將原有的介面與時序庫對接。
當然,不管是實時資料庫還是時序資料庫,都在飛速發展中,雙方一定會互相借鑑,互相學習,會提供更好、更多的產品供工業大資料使用。