導讀:HiTSDB 是一種高性能、低成本、穩(wěn)定可靠的在線時序數據庫服務;提供高效讀寫,高壓縮比存儲、時序數據插值及聚合計算。
2017云棲大會·上海峰會上,阿里云發(fā)布了面向物聯網場景的高性能時間序列數據庫 (High-Performance Time Series Database , 簡稱 HiTSDB) 。HiTSDB 可支持每秒1000萬時序數據點寫入;具備PB級別的數據存儲能力,提供高效壓縮算法,整體存儲成本降低90%;提供時序數據插值計算,降精度計算,時間緯度聚合計算,空間緯度聚合計算的能力。
HiTSDB 是一種高性能、低成本、穩(wěn)定可靠的在線時序數據庫服務;提供高效讀寫,高壓縮比存儲、時序數據插值及聚合計算。是物聯網(IoT)設備監(jiān)控系統(tǒng) ,企業(yè)能源管理系統(tǒng)(EMS),生產安全監(jiān)控系統(tǒng),電力檢測系統(tǒng)等行業(yè)領域的專業(yè)數據庫。
HiTSDB 打造物聯網智慧園區(qū)
HiTSDB 已經在阿里巴巴內部孵化多年,在阿里巴巴集團已經支持了20多個核心業(yè)務場景,比如阿里智慧園區(qū)的物聯網(IoT)建設。
智慧園區(qū)主要解決辦公園區(qū)的設備的管理和智能控制。設備管理主要是將設備接入到統(tǒng)一的設備管理平臺,同時對所有設備的運行情況進行監(jiān)控,及時發(fā)現故障設備,了解整體的設備運行情況以便于做出相應的決策。
而智能控制就是系統(tǒng)能夠根據設備的運行狀態(tài),通過某些規(guī)則的設定自動的進行各種調控,比如:當某個辦公區(qū)域的人數大于20人時,可以自動開啟亮燈,小于20人是可以自動關燈,或者當某一區(qū)域的一氧化碳的水平高于預警值,則自動啟動報警開關,對于園區(qū)的安全管理也非常必要。
對于技術而言,設備的監(jiān)控和智能控制的規(guī)則的匹配,本質是數據的收集和監(jiān)控分析。
園區(qū)的設備種類繁多,包括攝像頭、電燈、空調、空氣檢測,這些設備上都有非常多的傳感器,這些傳感器每一時刻都在實時的產生數據,這些數據隨著時間的推進,會在時間軸上產生一些列的數據,就是我們說的時序數據,比如溫度、濕度、用電量等。要實現設備的監(jiān)控管理,其實就是將這時序數據進行實時的采集存儲和分析展現,而 HiTSDB 就是時序數據領域的專業(yè)數據庫。
HiTSDB 集群可支持每秒 1000 萬的時序數據點寫入
HiTSDB 具備關系數據庫及NoSQL 數據庫所不具備的寫入能力。
智慧園區(qū)以及其他的IoT場景,設備的規(guī)模通常是萬級別至百萬級別,每個設備都實時產生數據,需要將實時數據快速的寫入到數據庫中,那么每秒就要寫入上百萬甚至上千萬的實時數據。
百萬甚至千萬級別的實時數據寫入對于數據庫并發(fā)寫入的壓力非常巨大,使用關系型數據庫完全不可行。 因為 InnoDB 的寫入性能是很有限的,實際測試在24臺機器上,存儲使用SSD硬盤,一秒鐘只能持續(xù)寫入只有兩萬左右,主要原因在于B樹索引。InnoDB 的索引是一個B樹,這個B樹的更新有很大的開銷。雖然我們可以通過一些辦法優(yōu)化,但時序數通常是一個多維數據,通常是 ADhoc 的查詢,為了優(yōu)化所有排列組合查詢,需要建很多多列的索引,這些索引每次在寫的時候每個都需要更新,所以就會導致很多的IO。
而 HiTSDB 針對時序數據庫的進行寫入優(yōu)化,基于時間序列的時間線數據結構進行存儲寫入,實際業(yè)務使用場景中最高支持到每秒 1000 萬的時序數據點寫入?;诎⒗镌?4C8G規(guī)格的 ECS,單臺平均達到10萬/秒的數據寫入,峰值達15萬/秒。
HiTSDB 具備領先的時序數據分析技術優(yōu)勢
在數據查詢方面,HiTSDB 也具備領先的技術優(yōu)勢。在時序數據領域“插值(interpolation)”,“降精度(DownSimple)”以及“聚合計算(Aggregation)”是常見的業(yè)務需求。舉個例子, 智慧園區(qū)的業(yè)務系統(tǒng)需要查看一個樓宇的某盞燈的耗電量情況,那么就需要把這盞燈的耗電量數據從數據庫中查詢并展示出來,如果由于采集的故障導致某個時刻用電量數據缺失,那么需要通過特定算法來近似的估算出這個數據,這個計算補全數據的過程就是“插值”。而當需要查看這盞燈一年的耗電趨勢情況時,通常只需要計算出每一天的耗電量,進行查看,而不需要把每一個時刻采集的數據全部輸出出來,這個將原始精度轉化為業(yè)務需求精度的過程就是“降精度”。而如果要統(tǒng)計某一個樓層或者樓宇的用耗電量整體趨勢數據時,就需要將所有統(tǒng)計范圍內的燈具的耗電量數據做“合并統(tǒng)計”,這個類似的統(tǒng)計過程就是Aggregation。
時序數據降精度是在時間序列維度上做的。對于關系數據庫來說,首先要把時間序列維度拿出來,然后在中間插值,而實際上 SQL 是按點來操作的。所以如果要做降精度的話,需要用一個值查詢把整條時間序列上的數據查詢出來,插好值之后才能做時間序列之間的聚合,那么服務和 SQL 服務器之間的吞吐量非常大,相當于 SQL 只是一個數據通道需要把所有值都拉出來運算一遍,這個查詢性能會非常慢,并且每一次計算都需要重新拉取數據,相對 HiTSDB,這個性就能差了幾百倍。
HiTSDB 支持線性插值,可以盡量彌補數據異常缺失造成的統(tǒng)計失敗。HiTSDB 支持 Max ,Min ,AVG 等各種降精度的計算函數,同時也可以通過“預降精度”的方式,將業(yè)務精度的數據在入庫的過程中計算完成,提升查詢的效率。HiTSDB 在的空間聚合 Aggregator 支持也非常全面,支持 ADhoc 查詢,HiTSDB 通過引入倒排索引和數據分片提升檢索時間序列的效率,通過并行計算架構,整體計算性能提升非常明顯。
HiTSDB 兼容 OpenTSDB 協議,寫入性能提升20倍,壓縮效率提升10倍。
HiTSDB 兼容 OpenTSDB 訪問協議。OpenTSDB 是時序數據庫領域相對活躍的技術產品,HiTSDB 通過技術優(yōu)化后相對于 OpenTSDB 寫入性能提升20倍以上。HiTSDB 壓縮效率相比較 OpenTSDB 提升10倍左右,通常原始時序數據的大小在 200-300 Byte,OpenTSDB 單數據點消耗約20 Byte,HiTSDB 單數據點消耗約 2Byte,通過 HiTSDB 可以節(jié)約90%以上的數據庫存儲成本。
HiTSDB 所具備的高效數據寫入和高壓縮比的特性,以及阿里長期業(yè)務實踐的所提供的穩(wěn)定性保證,結合阿里云上豐富的產品生態(tài),可以幫助 IoT 企業(yè)快速構建自己的智慧物聯網監(jiān)控分析系統(tǒng),也可以幫助傳統(tǒng)的石油化工及制造企業(yè)插上物聯網的翅膀,打造屬于企業(yè)自己的智慧系統(tǒng)。
現在,HiTSDB 在阿里云官網啟動免費公測。