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