為物聯網而生:高性能時間序列資料庫HiTSDB商業化首發!
近日,阿里雲宣布高性能時間序列資料庫 (High-Performance Time Series Database , 簡稱 HiTSDB) 正式商業化。
先跟大家聊一下什麼叫時序數據。簡單的說,就是時間上分布的一系列數值,關鍵字是數值,我們一般認為的時序數據是什麼時間發生了什麼事情,但是在時序數據這個領域裡定義的時序數據全都是跟數值有關的。也就是說,如果只是一個帶有時間戳的一條數據並不能叫做時序數據。舉個例子,比如像我早上8點半上樓吃了個飯這條記錄,相當於一個日誌,這個本身不構成一個時序數據,但是如果某個餐廳早上8點半同時有50個人在那裡吃飯,這個50加上餐廳的信息再加這個時間點就構成了一個時序數據。
單值與多值建模
實際上通用的建模方式有兩種,其中的一種是單值。實際上我們是針對不同的東西來建模的,多值的模型是針對數據源建模,我們每一行數據針對的是一個數據源,它的三個被測量的指標在同一列上,所以每一個數據源,數據的來源在每一個時間點上都有一行,這就是多值的模型。
還有一種模型是單值的模型,單值的模型我們是把它測量的精確到時間序列上,也就在時間序列的每個時間點上只有一個值,所以是個單值,也就是說對於多值模型來說它每一行數據對應的是一個數據源,對於單值模型來說它對應的是一個時間序列,實際上多值模型對應的是一個數據源在一個時間點上就會產生一行數據,而在單值模型里一個數據源上面的每一個指標會產生一行數據。
什麼是插值和降精度?
如上前面所講,時間序列會分布在一些時間線上,數據源和測量指標確定了的話,時間序列是隨著時間軸往後分布的,實際上它的採樣在一個典型的場景里是固定時間間隔的,它中間一些點做處理會牽扯到插值和降精度處理。比如說中間丟失了一個點,比較簡單的方法是中間插一個值,常用的方法是線性插值,就是在時間軸上畫一個直線中間的點就插出來了。
另一個叫降精度,例如我們有個按秒採樣的時間序列,顯示時間範圍是一年的數據,為了便於查看,需要把時間精度降到一天。比如我們只選這一天中的最大值或者最小值或者平均值,作為這一天的氣溫,也就是最高氣溫,最低氣溫和平均氣溫的概念。用演算法或者把時序數據轉換成精度比較低的時間序列以便於觀察和理解它,這是在傳統資料庫里沒有的一種方式。
再一個就是數據聚合,也是非常典型的基於設備的數據統計,比如這裡有很多設備指標數據構成的時間線,時序數據的聚合是在時間線的維度上的,而不是按點的,在處理平時處理的空間聚合的話,一般是把很多數據點按照一個個聚合起來,而實際數據處理的時候一般會把它抽象的點連成線就是剛才看的時間序列,每個數據源在一個測量值上會產生一行時間線,加上時間序列,如果是根據某一個維度上的測量的話,在同一維度就能調成線就把時間序列處理出來了。
舉個例子, 智慧園區的業務系統需要查看一個樓宇的某盞燈的耗電量情況,那麼就需要把這盞燈的耗電量數據從資料庫中查詢並展示出來,如果由於採集的故障導致某個時刻用電量數據缺失,那麼需要通過特定演算法來近似的估算出這個數據,這個計算補全數據的過程就是「插值」。而當需要查看這盞燈一年的耗電趨勢情況時,通常只需要計算出每一天的耗電量,進行查看,而不需要把每一個時刻採集的數據全部輸出出來,這個將原始精度轉化為業務需求精度的過程就是「降精度」。而如果要統計某一個樓層或者樓宇的用耗電量整體趨勢數據時,就需要將所有統計範圍內的燈具的耗電量數據做「合併統計」,這個類似的統計過程就是Aggregation。
時序數據降精度是在時間序列維度上做的。對於關係資料庫來說,首先要把時間序列維度拿出來,然後在中間插值,而實際上 SQL 是按點來操作的。所以如果要做降精度的話,需要用一個值查詢把整條時間序列上的數據查詢出來,插好值之後才能做時間序列之間的聚合,那麼服務和 SQL 伺服器之間的吞吐量非常大,相當於 SQL 只是一個數據通道需要把所有值都拉出來運算一遍,這個查詢性能會非常慢,並且每一次計算都需要重新拉取數據,相對 HiTSDB,這個性就能差了幾百倍,在空間聚合 Aggregator 支持也非常全面,支持 ADhoc 查詢,HiTSDB 通過引入倒排索引和數據分片提升檢索時間序列的效率,通過並行計算架構,整體計算性能提升非常明顯。
HiTSDB高壓縮技術 存儲成本降低90%
物聯網領域是最典型的時序數據產生和應用的場景,這些場景具備一些特徵,技術數據量特別大,比如某個智能設備的溫度感測器,首先第一是時間序列會持續的產生大量的數據,持續的產生什麼意思呢?因為我們往往對時間序列來說是定時採樣功能,如果每秒測量一次,一天是86400秒,如果24小時都要用,平均每一個感測器儀錶在一個時間點上產生一個數據點,一個儀錶就產生86400個數據,如果把全國各個縣都布一個採樣點,那一天數據就上億了,實際上大家作為氣象採樣來說每一個縣對應一個溫度感測器顯然有點不夠的,可能我們是每一個街道甚至每個小區都有這樣的感測器,那麼這個數據加起來實際上是一個非常驚人的數字。
利用HiTSDB 的高壓縮技術,相比較 OpenTSDB 提升10倍左右,通常原始時序數據的大小在 200-300 Byte,OpenTSDB 單數據點消耗約20 Byte,HiTSDB 單數據點消耗約 2Byte,通過 HiTSDB 可以節約90%以上的資料庫存儲成本。
對於物聯網平台企業可以利用HiTSDB 和阿里雲的產品能力基於如下的架構構建雲上的物聯網平台。
HiTSDB 除了在雲上提供高效的時序數據服務能力,企業可以也可以利用HiTSDB 結合阿里雲工業大腦和城市大腦的大數據方案實現智能製造生產和智慧城市。 利用HiTSDB 的「邊緣+ 中心」的解決方案,可以滿足工業物聯網IoT尤其是電力能源行業的數據邊緣端本地存儲分析,逐級數據上報 ,以及網路不穩態的數據數據穩定上報和中心端的全局設備數據監控分析,打通智慧大腦的數據通道。
HiTSDB商業化首發期間,官網推出85折優惠活動。更多詳情點擊【HiTSDB官方網站】
原文鏈接
更多技術乾貨敬請關注云棲社區知乎機構號:阿里云云棲社區 - 知乎
推薦閱讀:
※時序資料庫(TSDB)-為萬物互聯插上一雙翅膀
※IOT近距離:曇花一現還是星星之火?(上)
※你以為這只是一件普通的調溫外套?但它卻是搭載AI技術的物聯網入口
※鐵塔交流20171115
※物聯網時代的巨頭在哪裡:3類平台,5種路徑【一】