從行業(yè)需求入手,分析如何通過新老技術的融合來解決傳統(tǒng)技術架構存在的問題,以適應工業(yè)互聯(lián)網新時期的需求;對時序數(shù)據庫今后的發(fā)展趨勢進行了研究,并對新技術在工業(yè)互聯(lián)網領域的應用提出一些通用的要求,為后續(xù)工業(yè)互聯(lián)網基礎技術的應用和發(fā)展打下理論基礎。
一、引言
互聯(lián)網的迅速發(fā)展帶動了一波技術革新,越來越多新的技術被運用到了行業(yè)中,以解決實際問題和需求。在工業(yè)界,工業(yè)互聯(lián)網、智能制造這些詞也隨之涌現(xiàn),人們正在積極探索新技術在工業(yè)界的應用。但是否所有的新技術都適合在行業(yè)推廣應用?例如工業(yè)行業(yè),有著更為復雜的環(huán)境,對于軟件系統(tǒng)有著額外的高要求,特別是系統(tǒng)的實時性、穩(wěn)定性和安全性。多年來,工業(yè)系統(tǒng)一直都較為封閉,使得工業(yè)界的軟件形成了一套較為獨立且成熟的體系。
在工業(yè)場景中,80%以上的監(jiān)測數(shù)據都是實時數(shù)據,且都是帶有時間戳并按順序產生的數(shù)據,這些來源于傳感器或監(jiān)控系統(tǒng)的數(shù)據被實時地采集并反饋出系統(tǒng)或作業(yè)的狀態(tài)。在工業(yè)上,通常會使用實時/歷史數(shù)據庫作為核心樞紐,對這些數(shù)據進行采集、存儲以及查詢分析。
在工業(yè)領域之外,隨著移動互聯(lián)網、物聯(lián)網、車聯(lián)網、智能電網等新概念的迅速發(fā)展,也形成了對實時數(shù)據的分析處理需求,另一種全新架構的解決方案也悄然形成,被稱作時序數(shù)據庫,主要面向互聯(lián)網場景下海量數(shù)據的實時監(jiān)控和分析需求,它和實時/歷史數(shù)據庫的功能如此相似,就好比是一對雙胞胎,被不同的家庭撫養(yǎng)長大卻還保持著相同的容貌。相比于傳統(tǒng)的工業(yè)方案,互聯(lián)網方案的擴展性更好,又天然能和大數(shù)據生態(tài)融合,無疑會對原有的技術架構形成挑戰(zhàn)。
二、傳統(tǒng)工業(yè)場景中對實時數(shù)據的處理
傳統(tǒng)工業(yè)控制領域,由于其自身的特殊性,有很多對實時數(shù)據處理的要求,特別是流程工業(yè)中,對各生產環(huán)節(jié)的監(jiān)控要求十分嚴苛,需要通過監(jiān)測數(shù)據實時反應出系統(tǒng)的狀態(tài),所以對于實時數(shù)據的處理十分看重,并且經過長時間的積累已經形成了一套獨有的成熟的體系。對實時/歷史數(shù)據庫的應用是其中重要的一環(huán),在工控領域已經有很多年的歷史,實時數(shù)據庫主要用于工業(yè)過程數(shù)據的采集、存儲以及查詢分析,以實現(xiàn)過程狀態(tài)的實時監(jiān)控。工業(yè)上的實時數(shù)據有這些特征:都帶有時間戳,并且是按時間順序生成的;大多為結構化數(shù)據;采集頻率高、數(shù)據量大等。
工業(yè)上對軟件的要求從來都是非常嚴苛的,所以實時數(shù)據庫在被打磨后,形成了比較明顯的特征,如實用、嚴謹、穩(wěn)定、高性能、封閉等。
以一個中等規(guī)模的工業(yè)企業(yè)為例,在流程監(jiān)控的環(huán)節(jié)中,可能會涉及到5~10萬個傳感器測點,每天產出的數(shù)據量能達到上百GB。在通常情況下,工業(yè)企業(yè)都會要求數(shù)據能夠被長時間存儲,這樣可以隨時查詢到歷史趨勢。上述的需求顯示出了傳統(tǒng)實時數(shù)據庫需要具備的一些能力,如因為測點多、采集頻率高,所以要求非常高的寫入能力;因為要求長期存儲,所以需要強大的數(shù)據壓縮能力;因為數(shù)據量龐大,所以要求快速的查詢響應;同時最重要的是實時分析能力,能快速反映出系統(tǒng)的狀態(tài)。
表1是傳統(tǒng)工業(yè)項目中對實時數(shù)據庫的考核要求。
表1 工業(yè)項目中對實時數(shù)據庫的考核項
對于工業(yè)傳統(tǒng)的實時/歷史數(shù)據庫,總結特征如下:
(1)高速寫入性能:工業(yè)實時數(shù)據庫通常會對數(shù)據寫入的速度有很高的要求。以流程工業(yè)的場景為例,會在每個環(huán)節(jié)都設置傳感器,傳感器的數(shù)量眾多且采集頻率都很高,所以數(shù)據寫入的并發(fā)量會特別高,有時甚至會達到每秒上百萬的測點。除了對軟件的要求之外,也會選擇使用一些高性能的服務器來保證數(shù)據的寫入。
(2)快速的查詢響應:查詢的需求分為兩部分,一是要響應實時的查詢請求,用于及時反映系統(tǒng)的狀態(tài);二是歷史數(shù)據要能快速被查詢,由于歷史數(shù)據量非常大,在查詢時需要對特定時間段的數(shù)據做聚合,需要做到即使是查一整年的數(shù)據情況,也能很快地反映出來。
(3)超強的數(shù)據壓縮能力:之前提到因為數(shù)據會被存儲很長時間,5年甚至10年都是常有的事,在存儲容量有限的情況下,就需要對數(shù)據做一定的壓縮。通常壓縮方式會分成無損壓縮和有損壓縮,相比而言,有損壓縮的壓縮比會更大一些,有時會達到1:30~1:40,這就需要設計合理的算法來保留數(shù)據中的細節(jié),使數(shù)據在還原后仍能保留重要的特征。
(4)積累豐富的工具:傳統(tǒng)的實時數(shù)據庫的解決方案一般是從采集開始到可視化的一整套系統(tǒng),有多年積累形成的豐富的工具包,比如會積攢上百種的協(xié)議,或者各種場景的數(shù)據模型,這些都是工業(yè)軟件的重要競爭力。
(5)追求極致穩(wěn)定:工業(yè)上對軟件的穩(wěn)定性要求特別高,除了使用主備機制來保證高可用外,一般完全由軟件的編寫質量來保證程序的持續(xù)運行。
三、工業(yè)互聯(lián)網時期的變化和問題
隨著互聯(lián)網、物聯(lián)網、云計算、大數(shù)據、人工智能為代表的新一代技術的逐步成熟,一輪新的科技革命和產業(yè)變革正在興起,一系列新的生產方式、組織方式和商業(yè)模式開始涌現(xiàn),工業(yè)互聯(lián)網技術也在日趨成熟。工業(yè)互聯(lián)網是互聯(lián)網和新一代信息技術與工業(yè)系統(tǒng)全方位深度融合所形成的產業(yè)和應用生態(tài),是工業(yè)智能化發(fā)展的關鍵綜合信息基礎設施。人們開始嘗試使用互聯(lián)網技術融入設計、生產、管理、服務等工業(yè)生產的各個環(huán)節(jié),不論是自主探索或者是學習其他行業(yè)的成熟經驗,不可避免的就是新老技術的對接。
隨著物聯(lián)網技術逐步滲透工業(yè),不斷增長的傳感器、飆升的數(shù)據量以及更高的大數(shù)據分析需求對原有的技術架構提出了挑戰(zhàn)。幾個問題必須直面:
(1)擴展性遇到瓶頸。傳統(tǒng)的技術架構雖然能保證單機具備極高的性能,也可以通過增加機器使性能線性擴展,但是不能像分布式系統(tǒng)那樣實現(xiàn)動態(tài)靈活的擴容和縮容,需要提前進行規(guī)劃。當業(yè)務升級需要系統(tǒng)擴容時,老架構的擴展性就很難滿足需求了。
(2)無法和大數(shù)據生態(tài)對接。數(shù)據采集的最終目的是被理解和使用,大數(shù)據產業(yè)中對于海量數(shù)據的存儲分析已經有很成熟的方案,不論是Hadoop還是Spark的生態(tài)圈,都面臨著新老技術的對接。很多工業(yè)企業(yè)因為想使用新的大數(shù)據分析技術,不得不對現(xiàn)有的系統(tǒng)進行升級或是替換。
(3)價格高昂。傳統(tǒng)的工業(yè)實時數(shù)據庫解決方案價格都十分昂貴,一般只有大型企業(yè)能接受。但是隨著新技術、新理念的普及,更多的中小企業(yè)也意識到數(shù)據的重要性,但考慮到資金投入,會傾向于尋找價格更低廉的方案。
四、從互聯(lián)網發(fā)展而來的時序數(shù)據庫
4.1 發(fā)展歷史
在進入互聯(lián)網飛速發(fā)展的時期之后,隨著通信技術的革新,數(shù)據通信成本的下降,掀起了一波又一波萬物互聯(lián)的熱潮。不僅是互聯(lián)網監(jiān)控需要采集數(shù)據,人們每天接觸的手機、智能手環(huán)、共享自行車、汽車等,都在源源不斷地產生數(shù)據。人們實時地收集這些數(shù)據并發(fā)送到云端,用大數(shù)據技術進行分析,對業(yè)務進行監(jiān)控和預測,以數(shù)據驅動企業(yè)降本增效,提高服務質量。
這些數(shù)據其實和工業(yè)領域大部分的實時數(shù)據有著一些相同的特征:單條數(shù)據不會很長,但是數(shù)據量很大;都帶有時間戳,且按順序生成;數(shù)據大部分都是結構化的,用于描述某個參數(shù)在某個時間點的特征;寫入的頻率會比查詢的頻率高很多;已存儲的數(shù)據很少有更新的需求;用戶會更關心一段時間的數(shù)據特征,而不是某一個時間點;數(shù)據的查詢分析大多基于某一個時間段或者某個數(shù)值范圍;需要進行統(tǒng)計和可視化的展示。
這些特征同樣可以對應到智能電表、環(huán)境監(jiān)測設備、工業(yè)生產線產生的數(shù)據。但由于產生的時期和場景不同,工業(yè)上的解決方案會和互聯(lián)網的解決方案存在一定的差異(見表2)。
表2 兩種數(shù)據庫方案的差異
新架構下的時序數(shù)據庫在處理這些互聯(lián)網數(shù)據時的需求和傳統(tǒng)的實時數(shù)據庫有異曲同工之妙,可以說是同一種功能需求在不同領域的實現(xiàn)形式?;ヂ?lián)網新技術在向工業(yè)滲透的時候,會反映出一定的優(yōu)勢和劣勢,而工業(yè)互聯(lián)網技術的發(fā)展也應順應雙方技術的互相滲透融合,互相吸收優(yōu)點、彌補缺點,共同往更好的方向發(fā)展。
4.2 技術趨勢
隨著工業(yè)互聯(lián)網發(fā)展的需求日益清晰,在這兩種數(shù)據庫技術互相滲透的過程中,可以觀察到一些技術的發(fā)展趨勢。
(1)逐步向分布式架構轉變:傳統(tǒng)的實時數(shù)據庫多是主備的部署架構,通常要求有較高配置的機器,來追求單機極致的性能;同時,在穩(wěn)定性方面,會對運行軟件的穩(wěn)定性做極高的要求,完全由高質量的代碼來保證運行的穩(wěn)定;由于存儲容量有限,也會要求超高的數(shù)據壓縮比。但時序數(shù)據庫的分布式架構,使得系統(tǒng)能夠輕松地進行水平擴展,讓數(shù)據庫不再依賴昂貴的硬件和存儲設備,以集群天然的優(yōu)勢來實現(xiàn)高可用,不會出現(xiàn)單點的瓶頸或故障,在普通的x86服務器甚至是虛擬機上都可以運行,大大降低了使用成本。
(2)更靈活的數(shù)據模型:傳統(tǒng)的實時數(shù)據庫由于工業(yè)場景的特殊性,常使用的是單值模型,一個被監(jiān)控的參數(shù)稱為一個測點,在寫入時會對每一個測點建一個模型,比如一個風機的溫度指標算一個測點,10個風機的10個指標就是100個測點,每個測點會附帶描述信息(名稱、精度、數(shù)據類型、開關量/模擬量等),查詢的時候就會針對每個測點去查詢數(shù)值。單值模型的寫入效率會很高。
而時序數(shù)據庫,開始采用多值模型,類似面向對象的處理方式,例如風機是一種數(shù)據模型,可以包括溫度、壓力等多個測量維度,還包括經緯度、編號等標簽信息,這樣對外提供服務時會更適合分析的場景。當然,單值模型和多值模型是可以互相轉換的,很多數(shù)據庫對外提供的服務為多值模型,但是底層存儲還是單值模型。
(3)SQL需求依然存在:目前大部分的時序數(shù)據庫都選擇了擴展性較好的NoSQL數(shù)據庫作為底層存儲,相比于關系型數(shù)據庫,NoSQL的數(shù)據模型更靈活,非常適合時序數(shù)據的多值模型;更易擴展,在資源受限或者需要提升性能的時候,可以輕易地增加機器;查詢效率高;開源軟件成本低。表3為開源時序數(shù)據庫使用的底層存儲模型。
表3 開源時序數(shù)據庫使用的底層存儲模型
使用NoSQL數(shù)據庫也會丟失一些特性,比如不支持事務,需要通過其他手段來保證數(shù)據一致性;比如不支持SQL,SQL作為一種標準查詢語句,已經被人們所習慣,是一種學習成本極低的操作,所以現(xiàn)在許多時序數(shù)據庫的廠家也在嘗試集成SQL引擎,降低產品使用的門檻。
(4)查詢要求以及表現(xiàn)形式更多樣化:在互聯(lián)網時代,查詢的要求已經不僅僅是滿足于一些基礎的條件查詢或是插值查詢,隨著物聯(lián)網場景的豐富以及人們對信息全面掌控的需求,基于地圖的應用越來越多,查詢會由時間的維度逐步擴展到空間的維度,除了保證實時性之外,更豐富的可視化的展現(xiàn)也是一大趨勢。
(5)逐步轉向云服務:傳統(tǒng)的工業(yè)場景處理實時數(shù)據出于安全和性能等原因都會使用私有化部署。機器、軟件以及后續(xù)的服務是一筆十分高昂的開銷,還需要配備專業(yè)的技術人員進行系統(tǒng)的維護。當服務逐步上云后,一方面省去了購置機器的成本,不需要特別安排維護機器和軟件系統(tǒng)的工程師,只需要懂得如何開發(fā)和維護業(yè)務就可以。另外,服務使用多少就購買多少,避免一次性購買服務造成的資源浪費或者資源不足再進行二次建設,可以為企業(yè)減少很大一筆開銷。隨著網絡和云計算技術的成熟,相關的性能和安全性也會不斷的升級,最終趨近于私有化部署的效果,服務上云已經成為了一個不可阻擋的趨勢。
(6)逐步向邊緣計算發(fā)展:工業(yè)領域是IoT的重要試驗田,工業(yè)互聯(lián)網的發(fā)展勢必會帶來更多傳感器的使用以及更多數(shù)據的采集。當數(shù)據過于龐大,集中化的處理方式就很難響應實時的數(shù)據分析需求,這就帶來了數(shù)據計算向邊緣的發(fā)展,需要實時響應的監(jiān)控就通過邊緣設備及時的處理并反饋,需要用于大規(guī)模分析的數(shù)據再進行集中存儲,這種分級的處理方式能夠有效地提升時效性數(shù)據的價值,同時減輕存儲系統(tǒng)的負擔,所以許多時序數(shù)據庫正在研發(fā)邊緣計算版本,并配合流計算的能力使功能更加豐富。融合了邊緣計算的時序數(shù)據解決方案會更適合工業(yè)互聯(lián)網的處理場景(見圖1)。
圖1 使用邊緣計算技術實時處理數(shù)據的一種方案
五、產品調研
結合調研,總結了互聯(lián)網行業(yè)和工業(yè)企業(yè)中對實時/時序數(shù)據庫使用的一些共性要求,列出了33條細則,其中有7項設置為了可選項,不滿足不會影響正常的業(yè)務要求,滿足能為產品加分。
此次測試的目的是為了檢驗這些軟件架構上的不同是否會影響到基礎功能服務的提供,并進一步驗證數(shù)據庫應具備的技術要求。對國內7家提供實時/時序數(shù)據庫服務的廠家進行了一輪測試,參與者包括大型云服務提供商、傳統(tǒng)工業(yè)信息化解決方案提供商以及一些創(chuàng)業(yè)公司;產品覆蓋了NoSQL模型和關系模型、B/S架構和C/S架構、開源軟件和自主研發(fā)的軟件;部署模式涵蓋了本地化部署和云服務。
測試結果顯示,在25項必須具備的能力中,這些不同廠家的產品基本都能滿足,僅有一家產品不具備加密通信能力。由于服務的領域和場景不同,對于7個可選項,各家的產品展現(xiàn)出了一定的差異,以滿足不同的業(yè)務需求(見表4)。
表4 7家企業(yè)的測評情況
六、技術要求
在總結了業(yè)界的多款產品以及現(xiàn)階段的一些業(yè)務需求之后,總結了時序數(shù)據庫需要具備的一些技術要求,分為幾個層面:一是基礎功能,能保證數(shù)據庫具備可用性的一些最基礎的操作;其次是管理能力,決定產品的可管理性和易用性;再就是維護產品穩(wěn)定運行和持續(xù)優(yōu)化的一些特性,比如兼容能力、容錯能力、擴展性、安全性;最后是性能方面的一些考察項。
6.1 基礎功能
功能層面的要求決定了時序數(shù)據庫產品是否滿足最基礎的一些使用條件:涵蓋常用的額數(shù)據類型,如int、long、float、string、bool、bytearray等;數(shù)據的操作不丟失精度,支持毫秒精度數(shù)據讀寫;支持單域或多域寫入,提供單次和批量寫入接口;可以增加時間序列;支持單個時間序列和多個時間序列的查詢;支持按標簽進行過濾,包括精確匹配和模糊匹配;提供插值查詢能力,將數(shù)據補齊,并支持多種插值算法;支持按數(shù)值進行時間序列和數(shù)據點過濾;支持獲取最新數(shù)據點;提供多種維度的聚合查詢接口,包括時間窗口聚合、標簽分組,以及min、max、avg、count、sum等基本聚合函數(shù);能夠實現(xiàn)可編程函數(shù)以滿足一些定制化的查詢要求;在物聯(lián)網的使用場景下,能進行基于地理位置的聚合查詢;支持按時間管理歷史數(shù)據,提供過期時間設置接口,可以高效清理歷史數(shù)據。
6.2 管理能力
完整和友好的管理能力可以有效地支撐時序數(shù)據庫的使用和維護,有助于數(shù)據庫的使用者和維護團隊有更好的使用體驗。具體指標包括:具備友好的部署能力或服務開通能力;全局范圍內的數(shù)據庫配置在線管理能力;能夠對數(shù)據庫狀態(tài)進行實時監(jiān)控,并具備告警能力;支持用戶的新增、刪除等管理能力,支持為用戶分配不同的權限;數(shù)據庫具備在線組件升級功能;能夠查看時間序列的定義、標簽的定義、指標的定義;支持與其他類型數(shù)據庫間的數(shù)據導入和導出。
6.3 兼容能力
指數(shù)據庫產品能否與主流硬件、軟件及大數(shù)據生態(tài)對接的能力,具體包括:數(shù)據庫能夠在x86/x86-64等主流硬件上正常運行,異構硬件特別是不同CPU型號和主流操作系統(tǒng)能夠兼容;建議支持容器部署;能夠與Hadoop/Spark等大數(shù)據分析平臺對接。
6.4 容錯能力
時序數(shù)據庫應該具備一定的容錯能力,確保集群在硬件或軟件異常的情況下仍能保證數(shù)據與服務的完整性,內容包括:在發(fā)生硬件故障、操作系統(tǒng)故障或軟件服務故障時,運行中的服務不會受到影響;當請求超過集群能承載的壓力時,能夠通過一定的機制保證系統(tǒng)的可用性;能夠支持數(shù)據多副本存儲,在副本丟失時不影響查詢業(yè)務。
6.5 擴展性
時序數(shù)據庫應該具備良好的擴展性,能夠根據業(yè)務需求隨時進行集群的擴展和收縮,并保持數(shù)據的均衡:數(shù)據庫集群具備集群擴展能力,擴展前后保持數(shù)據均衡,且性能能夠隨之提升;數(shù)據庫集群具備集群縮減能力,縮減前后保持數(shù)據均衡。
6.6 安全性
時序數(shù)據庫應具備安全保障能力,主要包含:能夠對接入數(shù)據庫用戶進行身份認證工作;能夠對數(shù)據庫內操作進行審計工作;能夠支持客戶端與服務器端的加密通信,如HTTPS。
6.7 性能
時序數(shù)據庫應具備較高的處理性能,需要考察的內容包括:寫入吞吐量、寫入時延;查詢并發(fā)度、查詢時延;聚合操作時延;數(shù)據導入并發(fā)度、時延;數(shù)據壓縮的效率。
七、結束語
本文從幾個層面分析了工業(yè)中時序數(shù)據處理的挑戰(zhàn),描述了工業(yè)領域傳統(tǒng)的處理方案,以及在互聯(lián)網領域發(fā)展出的新技術架構,并進行了對比。為了解決工業(yè)中新涌現(xiàn)的問題,兩種實現(xiàn)方案需要各取所長,互為補充,以使互聯(lián)網技術更好地在工業(yè)領域應用。并對產業(yè)界時序數(shù)據庫技術的發(fā)展方向進行了分析,通過對需求方和供給側的研究,總結出了一些在新時期對于時序數(shù)據庫的技術要求。這項工作對于工業(yè)數(shù)據應用的后續(xù)發(fā)展具有很重要的意義,還將繼續(xù)研究時序數(shù)據處理的性能要求,并研發(fā)適合工業(yè)場景數(shù)據特征的測試基準和工具。