什麼是時序數據?有哪些應用場景?終於有人講明白了

作者:蔡春久

來源:數據工匠俱樂部(ID:zgsjgjjlb)

時序數據治理是數據治理領域核心、打通 IT 與 OT 域數據鏈路,是工業物聯網基石、大數據價值創造的關鍵、企業管理提升的發動機、是數字化轉型的重要支撐。

工業企業在生產經營過程中,會運用物聯網技術,採集大量的數據並進行實時處理,這些數據都是時序的,而且具有顯著的特點,比如帶有時間戳、結構化、沒有更新、數據源唯一等。

時序數據處理應用於智慧城市、物聯網、車聯網、工業互聯網領域的過程數據採集、過程控制,並與過程管理建立一個數據鏈路,屬於工業數據治理的新興領域。

01 時序數據的定義及作用

時序數據是指時間序列數據。是按時間順序記錄的數據列,在同一數據列中的各個數據必須是同口徑的,要求具有可比性。時序數據可以是時期數,也可以時點數。

時序數據管理主要通過對時序數據的採集、處理和分析幫助企業實時監控企業的生產與經營過程。

時序數據在應用上特點也很明顯,比如數據往往只保留一定時長,需要做降頻採樣、插值、實時計算、聚合等操作,關心的是一段時間的趨勢,而不是某一特定時間的值等。

工業企業爲了監測設備、生產線以及整個系統的運行狀態,在各個關鍵點都配有傳感器、採集各種數據。這些數據是週期或準週期產生的,有的採集頻率高,有的採集頻率低,這些採集的數據一般會發送至服務器,進行彙總並實時處理,對系統的運行做出實時監測或預警。

時序數據常常被長期保存下來,用以做離線數據分析,例如在工業企業應用場景如下:

  1. 分析故障,看主要的設備故障是什麼;

  2. 分析產能,看如何優化配置來提升生產效率;

  3. 分析能耗,看如何降低生產成本;

  4. 分析潛在的安全隱患,以降低故障時長。

▲《數據治理:工業企業數字化轉型之道》數據治理體系車輪圖

02 時序數據的十二大典型特點

與各種信息管理系統的數據相比,工業領域的時序數據具有鮮明的特點。

  1. **數據是時序的,一定帶有時間戳:**聯網的設備按照設定的週期,或受外部事件的觸發,源源不斷地產生數據,每個數據點是在哪個時間點產生的,這個時間對於數據的計算和分析十分重要,必須要記錄。

  2. **數據是結構化的:**網絡爬蟲的數據、微博、微信的海量數據都是非結構化的,可以是文字、圖片、視頻等。但物聯網設備產生的數據往往是結構化的,而且是數值型的,比如智能電錶採集的電流、電壓就可以用 4 字節的標準的浮點數來表示。

  3. **數據極少有更新操作:**聯網設備產生的數據是機器日誌數據,一般不容許而且也沒有修改的必要。很少有場景,需要對採集的原始數據進行修改。但對於一個典型的信息化或互聯網應用,記錄是一定可以修改或刪除的。

  4. **數據源是唯一的:**一個物聯網設備採集的數據與另外一個設備採集的數據是完全獨立的。一臺設備的數據一定是這臺設備產生的,不可能是人工或其他設備產生的,也就是說一臺設備的數據只有一個生產者,數據源是唯一的。

  5. **相對互聯網應用,寫多讀少:**對於互聯網應用,一條數據記錄,往往是一次寫,很多次讀。比如一條微博或一篇微信公衆號文章,一次寫,但有可能會有上百萬人讀。但物聯網設備產生的數據不一樣,對於產生的數據,一般是計算、分析程序自動讀,而且計算、分析次數不多,只有分析事故等場景,人才會主動看原始數據。

  6. **用戶關注的是一段時間的趨勢:**對於一條銀行記錄,或者一條微博、微信,對於它的用戶而言,每一條都很重要。但對於物聯網數據,每個數據點與數據點的變化並不大,一般是漸變的,大家關心的更多是一段時間,比如過去 5 分鐘,過去 1 小時數據變化的趨勢,一般對某一特定時間點的數據值並不關注。

  7. **數據是有保留期限的:**採集的數據一般都有基於時長的保留策略,比如僅僅保留一天、一週、一個月、一年甚至更長時間,爲節省存儲空間,系統最好能自動刪除。

  8. **數據的查詢分析往往是基於時間段和某一組設備的:**對於物聯網數據,在做計算和分析時,一定是指定時間範圍的,不會只針對一個時間點或者整個歷史進行。而且往往需要根據分析的維度,對物聯網設備的一個子集採集的數據進行分析,比如某個地理區域的設備,某個型號、某個批次的設備,某個廠商的設備。等等。

  9. **除存儲查詢外,往往需要實時分析計算操作:**對於大部分互聯網大數據應用,更多的是離線分析,即使有實時分析,但實時分析的要求並不高。比如用戶畫像,可以在積累一定的用戶行爲數據後進行。但是對於物聯網應用,對數據的實時計算要求往往很高,因爲需要根據計算結果進行實時報警,以避免事故的發生。

  10. **流量平穩、可預測:**給定物聯網數量、數據採集頻次,就可以較爲準確地估算出所需要的帶寬和流量、每天新生成的數據大小。

  11. **數據處理的特殊性:**與典型的互聯網相比,還有不一樣的數據處理需求。比如要檢查某個具體時間的設備採集的某個量,但傳感器實際採集的時間不是這個時間點,這時往往需要做插值處理。還有很多場景需要基於採集量進行復雜的數學函數計算。

  12. **數據量巨大:**以智能電錶爲例,一臺智能電錶每隔 15 分鐘採集一次數據,每天自動生成 96 條記錄,全國就有接近 5 億臺智能電錶,每天生成近 500 億條記錄。一臺聯網的汽車每隔 10 到 15 秒就採集一次數據發送到雲端,一臺汽車一天就很容易產生 1000 條記錄。如果中國 2 億輛車全部聯網,那麼每天將產生 2000 億條記錄。5 年之內,物聯網設備產生的數據將佔世界數據總量的 90% 以上。

03 通用大數據處理工具在時序數據場景的三大挑戰

從工具維度看,時序數據處理工具與傳統時序數據庫的差異很大。後者侷限於車間級的可編程邏輯控制器,而非企業級。企業級的時序數據處理,首先是基於數據架構和數據模型的。

數據架構決定哪些時序數據需要採集,如何處理,用於哪些業務場景,用於時序數據採集的規劃與設計開發;數據模型用於解析時序數據的數據結構。

在物聯網、車聯網、工業互聯網興起之後,大家都想用通用的大數據平臺來處理其中的數據。現在市場上流行的物聯網、車聯網等大數據平臺幾乎無一例外都是這類架構,但這套通用處理工具的效果如何?可以說有很多不足,主要表現在以下幾個方面:

數字化工廠產生的時序數據量是巨大的,處理它有相當的技術挑戰。以數控機牀加工生產爲例,由於工業行業的要求,需要將包括報警在內的各種工況數據存儲起來。

假設企業每個廠區具有 2000 個監測點,5 秒一個採集週期,全國一共 200 個廠區。這樣粗略估算起來每年將產生驚人的幾十萬億個數據點。假設每個點 0.5KB,數據總量將達 PB 級別(如果每臺服務器的硬盤容量是 10TB,那麼總共需要 100 多臺服務器)。

這些數據不僅要實時生成,寫入存儲,還要支持快速查詢,實現可視化的展示,幫助管理者分析決策;並且也能夠用來做大數據分析,發現深層次的問題,幫助企業節能減排,增加效益。這樣看來,需要解決的關鍵技術問題如下。

▲通用大數據處理工具在時序數據場景的挑戰

傳統的數據採集體系面臨着數據質量差、查詢速度慢、缺少實時智能分析等問題。

  1. **高併發、高吞吐量的寫入能力:**如何支持每秒鐘上千萬數據點的寫入,這是最關鍵的技術能力。

  2. **數據高速聚合:**如何支持以秒級的速度對上億數據進行分組聚合運算,如何能高效地在大數據量的基礎上將滿足條件的原始數據查詢出來並聚合,要知道統計的原始值可能因爲時間比較久遠而不在內存中,因此這可能是一個非常耗時的操作。

  3. **降低存儲成本:**如何降低海量數據存儲的成本,這需要時序數據庫提供高壓縮率。

  4. **多維度的查詢能力:**時序數據通常會有多個維度的標籤來刻畫一條數據,如何根據幾個維度進行高效查詢就是必須要解決的一個問題。

04 時序數據應用場景

▲時序數據在各行業應用場景

1. 智慧城市、能源行業智能應急指揮和融合通信調度

智慧城市、智慧工廠智能應急指揮和融合通信指揮調度方案是採用數字化 BIM+GIS+NBIOT+AI+5G + 算法技術,圍繞監控、指揮、調度、會議、通訊等多種功能合一的可視化指揮調度方案。在突發事件預警、上報、響應、指揮等各個環節實現及時有效的可視化指揮,滿足突發事件現場實時圖像傳送和視頻會商的快速響應需求。

▲應急指揮和融合通信指揮調度方案

2. 園區智能巡檢和安防

在各種園區日常巡檢、隱患上報、三維地圖以及融合調度上有很多應用場景。設備管理運行狀態、HSE 風險等級、工藝流程、過程控制運行參數等檢修情況各類業務現場及管理實時數據及信息的直觀展示,及時發現問題,分析原因,提出整改建議,並貫徹執行。

▲智能巡檢和安防應用場景

可燃氣體、煙霧、電氣火災全方位監控;火災感應、視頻監控、消防水全鏈路聯動;起火、報警、疏散、滅火全流程覆蓋。

▲設施全域物聯,安全數據說話

3. 能源行業設備智能運維

物聯網平臺還可被應用於對海量設備終端的統一管理與運維,對設備的狀態進行在線監測與診斷,並及時進行故障預警。還可以通過多維圖表展示運維數據等。

▲設備智能運維

05 時序數據處理工具(系統)需要具備哪些功能?

與通用的大數據處理工具相比,它具備什麼樣的特點呢?

▲物聯網平臺與大數據平臺關係

▲覆蓋雲、管、邊、端的全景式能力矩陣

▲時序數據流向圖

▲從數據採集到應用的端到端物聯網平臺

1. 必須是高效的分佈式系統

工業互聯網產生的數據量巨大,比如,全國有 5 億多臺智能電錶,每臺智能電錶每隔 15 分鐘採集一次數據,全國的智能電錶一天就會產生 500 多億條記錄。

這麼大的數據量,任何一臺服務器都無法處理,因此時序數據處理系統必須是分佈式的、水平擴展的。爲降低成本,一個節點的處理性能必須是高效的,需要支持數據的快速寫入和快速查詢功能。

2. 必須是實時的處理系統

對於互聯網大數據的應用場景,大家所熟悉的都是用戶畫像、推薦系統、輿情分析等,這些場景並不需要數據計算具有實時性,批處理即可。但是對於工業互聯網大數據的應用場景,則需要基於採集的數據做實時預警、決策,延時要控制在秒級以內。如果沒有實時計算,則其商業價值就大打折扣。

3. 需要運營商級別的高可靠服務

工業互聯網系統對接的往往是生產、經營系統,如果數據處理系統宕機,則會直接導致停產,無法對終端消費者正常提供服務。因此,時序數據處理系統必須是高可靠的,必須支持數據實時備份,必須支持異地容災,必須支持軟件、硬件在線升級,必須支持在線 IDC 機房遷移,否則服務一定有被中斷的可能。

4. 需要高效的緩存功能

在絕大部分場景中,都需要能快速獲取設備當前狀態或其他信息,用以報警、大屏展示等。時充數據處理系統需要提供高效機制,讓用戶可以獲取全部或符合過濾條件的部分設備的最新狀態。

5. 需要實時流式計算

各種實時預警或預測已經不是簡單地基於某一個閾值進行的,而是需要通過將一個或多個設備產生的數據流進行實時聚合計算(並且不只是基於一個時間點,而是基於一個時間窗口進行計算)。不僅如此,計算的需求也相當複雜,因場景而異,應容許用戶自定義函數進行計算。

6. 需要支持數據訂閱

時序數據處理系統與通用大數據平臺比較一致的地方是,同一組數據往往有很多應用都需要,因此,時序數據處理系統應該提供訂閱功能:只要有新的數據更新,就應該實時提醒應用。而且這個訂閱也應該是個性化的,容許應用設置過濾條件,比如只訂閱某個物理量 5 分鐘的平均值。

7. 實時數據和歷史數據的處理要合二爲一

實時數據被存儲在緩存裏,歷史數據被存儲在持久化存儲介質裏,而且可能依據時長,被存儲在不同的存儲介質裏。時序數據處理系統應該隱藏背後的存儲介質,給用戶和應用呈現的是同一個接口和界面。無論是訪問新採集的數據還是 10 年前的老數據,除輸入的時間參數不同外,其餘都應該是一樣的。

8. 需要保證數據能持續、穩定地寫入

對於物聯網系統,數據流量往往是平穩的,因此數據寫入所需要的資源往往是可以估算的。其中變化的是查詢、分析,特別是即席查詢,有可能耗費很多的系統資源,不可控。

因此,時序數據處理系統必須保證分配足夠的資源以確保數據能夠寫入系統而不被丟失。準確地說,時序數據處理系統必須是一個寫優先系統。

9. 需要支持靈活的多維度數據分析

對於聯網設備產生的數據,需要進行各種維度的統計分析,比如根據設備所處的地域進行分析,根據設備的型號、供應商進行分析,根據設備所使用的人員進行分析等。這些維度的分析是無法事先設計好的,而是在實際運營過程中,根據業務發展需求定下來的。

因此,工業互聯網大數據平臺需要一個靈活的機制來增加某個維度的分析。

10. 需要支持數據降頻、插值、特殊函數計算等操作

原始數據的採集可能頻次較高,但在具體分析時,往往不需要對原始數據進行分析,而是需要對數據進行降頻。時序數據處理系統需要提供高效的數據降頻操作。不同設備採集數據的時間點是很難一致的,因此,分析一個特定時間點的值,往往需要插值才能解決,系統需要提供線性插值、設置固定值等多種插值策略。

11. 需要支持即席分析和查詢

爲提高數據分析師的工作效率,時序數據處理系統應該提供命令行工具或容許用戶通過其他工具,執行 SQL 查詢,而不是非要通過編程接口。並且查詢分析結果可以很方便地被導出,以及被製作成各種圖表。

12. 需要提供靈活的數據管理策略

一個大的系統,其中採集的數據種類繁多,而且除採集的原始數據外,還有大量的衍生數據。這些數據各自有不同的特點,有的採集頻次高,有的要求保留時間長,有的需要保存多個副本以保證更高的安全性,有的需要能快速訪問。

因此,工業互聯網大數據平臺必須提供多種策略,讓用戶可以根據特點進行選擇和配置,而且各種策略並存。

13. 必須是開放的

時序數據處理系統需要支持業界流行的標準,提供各種語言開發接口,包括 C/C++、Java、Go、Python、RESTful 等,也需要支持 Spark、R、MATLAB 等,方便集成各種機器學習、人工智能算法或其他應用,讓大數據處理平臺能夠不斷擴展,而不是成爲一個數據孤島。

14. 必須支持異構環境

大數據平臺的搭建是一個長期工作,每個批次採購的服務器和存儲設備都會不一樣,時序數據處理系統必須支持各種檔次、各種不同配置的服務器和存儲設備並存。

15. 需要支持邊雲協同

時序數據處理系統要有一套靈活的機制將邊緣計算節點的數據上傳到雲端,根據具體需要,可以將原始數據、加工計算後的數據,或僅僅符合過濾條件的數據同步到雲端,並且同步可以隨時取消,同步策略可以隨時修改。

16. 需要單一的後臺管理系統

單一的後臺管理系統便於查看系統運行狀態、管理集羣、管理用戶、管理各種系統資源等,而且能讓系統與第三方 IT 運維監測平臺無縫集成,便於統一管理和維護。

17. 便於私有化部署

因爲很多企業出於安全及各種因素的考慮,希望時序數據處理系統採用私有化部署。而傳統的企業往往沒有很強的 IT 運維團隊,因此在時序數據處理系統安裝、部署上需要做到簡單、快捷,可維護性強。

06 時序數據的採集難點分析

時序數據的採集一般都是通過傳感器自動進行的,包括光電、熱敏、氣敏、力敏、磁敏、聲敏、溼敏、電量等不同類別的工業傳感器。就某一個具體的物理量而言,數據採集是很容易的。但就整個系統而言,數據採集是相當複雜的,具體表現在以下幾個方面:

1. 工業數據的協議不標準

在現實場景中,往往會出現 ModBus、OPC、CAN、ControlNet、Profibus、MQTT 等各種類型的工業協議,而且各個自動化設備生產及集成商還會自己開發各種私有的工業協議,導致在實現工業協議的互聯互通時出現極大的難度。

很多開發人員在工業現場實施綜合自動化等項目時,遇到的最大問題即是面對衆多的工業協議,無法有效地進行解析和採集數據。

2. 通信方式不統一

由於歷史原因,採集的數據往往會通過局域網、藍牙、Wi-Fi、2.5G、3G、4G 等各種傳輸方式被傳送到服務器中,導致各種通信方式並行存在,連接管理變得複雜。

3. 對現有 MES 系統的數據獲取難度大

在工業企業實施大數據項目時,數據採集往往不是針對傳感器或者 PLC,而是從已經完成部署的 MES 系統獲取。這些系統在部署時廠商水平參差不齊,大部分系統是沒有數據接口的,文檔也大量缺失,大量的現場系統沒有點表等基礎設置數據,使得對於這部分數據採集的難度極大。

4. 安全性考慮不足

傳統的工業系統都運行在局域網中,安全問題不是考慮的重點。若需要通過雲端(特別是公有云)調度工業行業中核心的生產數據,又沒有充分考慮安全問題,則很有可能造成難以彌補的損失。

根據上述原因,企業在實際採集數據時,往往配有工業互聯網網關盒子,該盒子支持各種物理接口、通信協議和工業標準協議,將不同協議進行轉換,對數據進行安全加密,統一以 MQTT(Message Queuing Telemetry Transport,ISO/IEC PRF 20922)協議或其他協議發往雲端。

對於數據採集部分,因爲標準性不夠,就不對具體工具做介紹了。

07 時序數據處理流行工具

採集後的數據一般通過網絡被送往服務器或雲端進行處理。相對數據採集工具而言,數據處理工具比較統一,下面對幾個流行的工具進行介紹。

從 20 世紀 80 年代起,就湧現一批實時數據庫(時序數據庫的一種),專門用於處理工業自動控制或流程製造行業的實時數據。

其中美國 OSIsoft 公司的 PI(PlantInformation)實時數據庫最典型,它提供成套的工具,包括實時寫入、實時計算、存儲、分析、可視化、報警等系列功能,GE、Simens、Honeywell 都有類似產品。國內有庚頓、朗坤、麥傑、力控等產品。

這些產品在一定程度上滿足了工業數據處理的需求,但在測點數量暴漲、數據採集頻率不斷提高的大數據時代,傳統實時數據庫暴露出以下問題:

  1. 沒有水平擴展能力,數據量增加,只能依靠硬件的縱向擴展解決。

  2. 技術架構老舊,很多還是運行於 Windows 系統中的。

  3. 數據分析能力偏弱,不支持現在流行的各種數據分析接口。

  4. 不支持雲端部署,更不支持 SaaS。

  5. 在傳統的實時監控場景,由於對各種工業協議的支持比較完善,實時數據庫還佔有較牢固的市場地位,但是在工業大數據處理上,因爲上述幾個原因,幾乎沒有任何大數據平臺採用它們。

下面對幾個典型的實時數據庫進行介紹。

1. InfluxDB

InfluxDB 由 Golang 語言編寫,也是由 Golang 編寫的軟件中比較著名的一個,在很多 Golang 的沙龍或者文章中可能都會把 InfluxDB 當標杆來介紹,這也間接幫助 InfluxDB 提高了知名度。InfluxDB 的主要特點包括:

InfluxDB 是時序數據庫中爲數不多的進行了用戶和角色方面實現的,提供了 Cluster Admin、Database Admin 和 Database User 三種角色。

2. Graphite

Graphite 是分佈式時序列數據存儲數據庫,容易擴展,具備功能強大的畫圖 Web API,提供了大量的函數和輸出方式。主要功能包括:

Graphite 本身不帶數據採集功能,但是你可以選擇很多第三方插件,比如適用於 collectd、Ganglia 或 Sensu 的插件等。同時,Graphite 也支持 Plaintext、Pickle 和 AMQP 這些數據輸入方式。

Graphite 使用了類似 RRDtool 的 RRD 文件格式,它也不像 C/S 結構的軟件一樣,沒有服務進程,只是作爲 Python library 使用,提供對數據的 create/update/fetch 操作。Google、Etsy、GitHub、豆瓣、Instagram、Evernote 和 Uber 等很多知名公司都是 Graphite 的用戶。

3. OpenTSDB

這是一個 Apache 開源軟件,是在 HBase 的基礎上開發的,底層存儲是 HBase,但其依據時序數據的特點做了一些優化。其最大的好處就是建立在 Hadoop 體系上,各種工具鏈成熟,但這也是它最大的缺點,因爲 Hadoop 不是爲時序數據打造的,導致其性能很一般,而且需要依賴很多組件,安裝部署相當複雜。

OpenTSDB 採用 Schemaless 模式,不用預先定義數據結構,因此寫入靈活,但每個時間序列只能寫入一個採集量,不支持多列寫入。每個序列可以被打上多個標籤,以方便聚合操作。

總的來講,OpenTSDB 的性能無論是寫入還是查詢,都很一般,而且系統的穩定性欠佳。但吸引人的是,它支持集羣部署和支持水平擴展。

以騰訊的 CTSDB 時序數據庫爲例,CTSDB 是騰訊雲推出的一款分佈式、可擴展、支持近實時數據搜索與分析的時序數據庫。

該數據庫爲非關係型數據庫,提供高效讀寫、低成本存儲、強大的聚合分析能力、實例監控以及數據查詢結果可視化等功能。整個系統採用多節點多副本的部署方式,有效保證了服務的高可用性和數據的高可靠性。CTSDB 在處理海量時序數據時具有的優勢包括:

強大的聚合分析能力:支持豐富的聚合查詢方式,不僅支持 avg、min、max 等常用的聚合方式,還支持 Group By、區間、Geo、嵌套等複雜聚合分析。

4. TDengine

這是來自中國的開源軟件,由濤思數據研發推出。它不僅是一款時序數據庫,而且還提供緩存、消息隊列、數據訂閱、流式計算等系列功能,是時序數據的全棧技術解決方案。而且它不依賴任何第三方軟件,安裝包只有 1.5MB,使系統設計、安裝、部署和維護都變得極爲簡單。

▲時序大數據系統技術框圖

▲時序數據的全棧解決方案

TDengine 充分利用了時序數據的特點,因此具有很強的優勢,具體表現在 5 個方面:

  1. 無論是插入,還是查詢,性能都高出許多。

  2. 因爲性能超強,其所需要的計算資源不及其他軟件的 1/5。

  3. 採用列式存儲,對不同數據類型採取不同的壓縮算法,所需要的存儲資源不到其他軟件的 1/10。

  4. 無須分庫、分表,無實時數據與歷史數據之分,管理成本爲零。

  5. 採用標準 SQL 語法,應用可以通過標準的 JDBC、ODBC 接口插入或查詢數據,學習成本幾乎爲零。

總結

企業級的時序數據處理,首先是基於數據架構和數據模型的。數據架構決定了哪些時序數據需要採集,如何處理,用於哪些業務場景,用於時序數據採集的規劃與設計開發;數據模型用於解析時序數據的數據結構。

通過物聯網平臺的能力支撐,可以實現對存量設備與新增設備的統一接入,兼容利舊。AI 能力與數據分析能力下沉到邊緣端,也可以提升現有業務的響應速度,支持實時智能分析。

參考文獻:

《數據治理:工業企業數字化轉型之道》時序數據章節相關內容

關於作者:蔡春久,某公司數據業務負責人。中國數據標準化及治理大會組委會評爲十位 “中國數據標準化及治理專家” 之一 。中國大數據技術標準推進委員會數據資產專家、中電標協企業信息標準化委員會常委委員、eCl@ss 協會會員(國際產品分類標準化組織)、中國數據工匠俱樂部發起人。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/wmUQ1qttFDDTzNRN7mVjHw