乾貨分享!邊雲融合的時序時空數據庫實踐詳解

隨着物聯網、車聯網、工業互聯網和智慧城市快速發展,時序數據庫成爲數據架構技術棧的標配,面對海量時空數據,隨之而來是數據存儲、處理問題,也對時序數據庫高效讀寫、快速查詢能力提出了更高要求。本文將和大家分享物聯網商業應用場景下時序數據庫(Time Series Database)的能力要求和技術核心點,以及時序數據庫賦能各領域應用場景落地實踐。


01

關於時間序列數據



時間序列數據是指某一指標在不同時間上的不同數值,按照時間先後順序排列而成的數列。這類數據庫在日常生活中十分常見,像環境溫度的監控數據,直播房間的監控數據,無人車的運行數據等都是時序數據。
它們通常都有以下的特點:
  • 結構特性:時序數據一般都具有單向遞增的時間戳,並且對於數據批量或特定刪除的場景較少,數據清理一般基於時間窗口。
  • 場景特性:由於在時間維度上的累計,時序數據的數據量通常較大且往往寫多讀少、讀寫正交。時序數據通常按照固定頻率不斷寫入,寫入數據流量具有平穩可預測的特點,且讀和寫一般發生在不同時刻,。和關係型數據庫相比,因爲應用場景的不同,通常不會涉及太多的事務性原則。
  • 應用特性:時序數據在應用上大多進行聚合趨勢分析,較少單獨查看某個數據。



02

時序時空數據庫系統架構演進



以百度智能雲天工時序時空數據庫(TSDB)爲代表,典型的商業時序數據庫需具備:性能讀寫、低成本存儲、強計算能力、高可靠服務、多生態支持的能力。
如下圖爲典型TSDB所處上下游宏觀架構圖,左側爲數據接入端。
通常數據有兩種來源:
1. 來自於物聯網設備,這些設備藉由IoT Edge SDK使用物聯網典型的MQTT協議接入物聯網平臺,數據經快速預處理後被送入時序時空數據庫;
2. 通過其他數據中心使用HTTP等協議直接寫入TSDB。右側爲數據查詢端,可同時支持物聯網設備可視化展示和大數據分析。設備可視即通過物聯網平臺建設的屏幕,實時觀看數據狀況;大數據分析是基於SQL/API的語義對接到大數據平臺中,經大數據工具得到更高層次的數據認知或AI模型。
圖1:TSDB宏觀架構圖

從微觀角度來說,一個典型的時序時空數據庫由存儲和計算兩部分組成。
  • 存儲方面,實時數據沿時間維度壓縮後進入歷史數據層,而百度還引入了分級存儲技術,進一步提升數據存儲性價比。

  • 計算方面,包括索引和SQL計算,沿着存儲系統分佈在實時數據兩側,便於數據快速被查詢。

    索引部分,百度使用在搜索引擎積累的倒排索引技術,快速建立數據索引,而要理解用戶的查詢目的,這就需要倚靠成熟解決方案的SQL計算層。索引、數據和SQL構成了TSDB的基本內核,向外拓展有面向用戶的數據面交互和麪向管理者的控制面系統兩部分。

    數據面交互部分,數據通過JDBC接口與Hadopp/Spark等大數據應用相連接,構成SQL接入層;HTTP接入層負責物聯網平臺和數據中心的數據寫入,也負責各類具體業務類應用程序的查詢服務。

圖2:TSDB微觀架構圖


03

時序時空數據庫核心技術優勢



從宏觀和微觀兩個角度介紹完時序數據庫,接下來從技術角度來回顧時序數據結構的特點。如下圖顯示了兩種典型的時序數據:
  • 單個數據的維度。如溫度數據,包含存儲時間戳和對應的溫度,通過給數據貼標籤tag來標記數據來源;
  • 多維度時序數據。如風機數據,包含風向、速度兩組數據點,同樣會用到tag進行標記。TSDB在進行大規模存儲和查詢時會引用到分佈式存儲、分級存儲、數據查詢優化的核心技術,實現提高讀寫效率、降低成本、高效查詢等目標。
圖3:時序數據結構

以下將針對上述核心技術優勢進行深度解析:

分佈式存儲優化

當數據較多,爲提高數據寫入速度,就需要對大規模時序數據進行存儲優化,最直觀的方式是對數據分佈式分片存儲。例如,根據數據Field的不同進行分片,將同方向的數據列存儲於同一存儲點,便於存儲和查詢。在複雜的情況下,需進一步對數據進行列與行的數據平衡操作。

多級存儲優化

在TSDB產品中,通過多級存儲技術,根據數據的訪問頻率選擇不同成本的存儲方式,進一步降低數據存儲成本。具體來說,訪問最頻繁、實時產生的數據存儲在內存中,一天內產生的數據會存儲在本機的Cache中。最近一年的數據會轉移到SSD中,SSD較高的隨機讀寫能力能保證數據的快速訪問,同時數據存儲與計算相分離,滿足降低存儲成本的需求。對於一年以上的時序數據,訪問頻率較低,其被轉移至更低存儲成本的HDD中,並使用EC編碼將三副本數據降低爲一點五副本,進一步降低存儲成本。通過使用多級存儲技術能夠很好的平衡訪問速度和存儲成本。

數據查詢優化

TSDB傳統單機使用聚合查詢,可藉助索引搜索全表,但也面臨單機的計算能力、性能不足的侷限,當面對幾千億甚至上萬億的數據節點時,如何優化數據的查詢成爲時序數據庫需要解決的問題。

優化後的數據查詢藉助存儲分片的方式,數據存入不同的Shard節點,每個Shard中的數據由獨立計算節點訪問計算,最後將各計算節點的數據匯聚後得到最終的查詢計算結果。這種將存儲與計算相分離的技術,能夠實現計算的併發,得到更強的查詢能力,是數據庫性能優化的重要方法。


04

時序時空數據庫應用方案



在時序時空數據庫的實際應用中,通常會遇到兩種應用場景,一種是與空間相結合,另一種是與邊緣相結合。

與空間相結合

從空間角度來說,時空數據發展早期,時間和空間都爲靜態分別計算。隨着車聯網等移動互聯網的出現,時間和空間都在發生改變,這時我們需要將時間數據和空間數據共同存儲,就得到時空數據。

一個典型的時空數據會沿着TSDB向外延展,基於地理數據存儲,再結合專題數據作爲基本數據層,通過更多支持時空的聚合函數根據不同場景、不同業務情況,最終將這些基礎服務對接到應用層,得到具體時空大數據分析應用。
圖4:時空數據庫基礎服務套件

基於時空數據的基礎,百度爲企業提供解決方案解決數據孤島、實現數據治理及數據共享、提高運營效率。在解決方案中,我們會提供 數據服務 (DaaS)、 基礎服務 (PaaS),以及與合作伙伴面向行業提供 應用服務 (SaaS)。

與邊緣結合

另一個與TSDB有關聯的就是 邊緣計算 ,現今大量數據需要在短時間內被處理,對於數據不同的處理需求,百度以TSDB產品爲基礎提供了四級計算平臺,處於中間的是中央數據中心,可提供無盡算力;向外拓展第一輪是可複用CDN網絡,向全國各個省會城市提供計算節點;繼續向外拓展,藉助運營商的5G網絡,將計算下沉到市縣級,提供數十毫秒的處理延遲;最外圍是物聯網邊緣,是用戶自行部署的硬件,可提供幾毫秒甚至亞毫秒的數據響應。

爲配合實現邊緣計算系統,百度智能雲也提供了很多開源基礎平臺,幫助用戶以更中立開放的方式引入邊緣計算。如百度與開源社區合作,捐贈的 智能邊緣開源框架Baetyl ,全面支持雲原生架構,促進邊雲融合,幫助用戶將數據在雲和邊緣上進行無縫切換。

在實際應用場景中,通過邊雲融合的數據解決方案,來處理用戶不同的數據處理需求。下圖即爲典型的邊雲融合數據解決方案,左側爲邊緣的推斷執行,來自用戶各類數據源的數據匯聚到用戶自己可控的邊緣硬件上,在該硬件上運行百度智能邊緣服務程序。一旦在邊緣進行了數據整理,對數據處理的精度和效能也同樣有要求,因此,百度智能雲天工智能邊緣BIE也可提供經用戶許可後,並脫敏處理的安全數據抽樣上傳到雲端來進行分析整理。
在雲端,用戶可選擇將數據暫存於天工時序時空數據庫,與用戶的其他先驗知識傳入大數據平臺或者AI平臺進行深度分析。得到新模型後,可藉助邊雲融合系統將模型加密後推送至邊緣設備。基於知識下行通道,可以分鐘級的速度升級邊緣系統,相比傳統的升級效率得到了質的提升。
圖5:邊雲融合的數據解決方案

時序時空數據庫各領域落地實踐

基於TSDB,百度智能雲提供完整成套的解決方案,在工業、電力、自動駕駛等領域都有廣泛應用。在工業環境檢測案例中,基於百度智能雲天工時序時空數據庫,藉助展示系統和大數據分析工具爲客戶檢測。相較於客戶自檢而言,實現成本有效控制,助力企業數字化轉型。

此外,在節能減排和碳中和等重要任務的大背景下,百度智能雲基於TSDB爲核心的電力服務管理系統,助力電力系統智慧化轉型,該方案可將電網的發電和供電數據彙總至天工時序時空數據庫,保證半年內的電力數據能在兩秒內查詢,配合基於這些數據建立起電力分析預測的AI模型,有效提升電力服務水平。

最後,在百度自動駕駛的應用案例中,爲保證自動駕駛的安全,以及迭代自動駕駛模型,也適用了天工時序時空數據庫來存儲實時採集的每輛車自動駕駛時的運行狀態。早期落地的無人公交系統,已實現公交數據實時上報,並藉由百度智能雲天工物聯網平臺進入時序時空數據庫。基於此,後臺運行系統可對自動駕駛交通車輛進行異常分析、故障統計、實時監控,來確保自動駕駛的安全可控,並積累更多的數據迭代模型,不斷助力全自動駕駛技術的升級。

圖6:TSDB在百度自動駕駛上的應用

時序時空數據庫基於其核心技術優勢,提供高性能的數據存儲、數據查詢、數據分析挖掘等能力,在時空大數據、物聯網+、工業互聯網等領域廣泛應用。

未來,百度智能雲天工也將持續探索時序時空數據庫的多樣的應用場景,持續助力企業數字化轉型,加速AI時代的產業升級!
 往期推薦 
🔗
數據有了,如何構建數據資產?
3個步驟,4大平臺,搞定大規模數據處理
一行命令,瞬間從“馬賽克”到高清影像!

本文分享自微信公衆號 - 百度開發者中心(baidudev)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章