正如《銀翼殺手》中那句在影史流傳經典的臺詞:「I've seen things you people wouldn't believe... All those ... moments will be lost in time, like tears...in rain.」 時間浩瀚的人類歷史長河中老是一個耀眼的詞彙,當科技的年輪劃到數據時代,時間與數據庫碰到一塊兒,把數據庫內建時間屬性後,產生了時序數據庫。時序數據庫是一種帶有時間戳業務屬性的垂直型數據庫。自從2014年開始,數據庫熱度排名網站DB-Engines就把時間序列數據庫做爲了獨立的目錄來分類統計,並且最近幾年的增加率在所有數據庫分類裏排名第一(見下圖)。算法
A time series database (TSDB) is a software system that is optimized for handling time series data, arrays of numbers indexed by time (a datetime or a datetime range)docker
以上是維基百科對於時序數據庫的定義。能夠把它拆解成3個方面來看:時序特性,數據特性,數據庫特性。數據庫
時序特性:api
時間戳:通用的業務場景內以秒和毫秒精度爲主,在一些遙感等高頻採集領域,時間戳能夠達到納秒級別。服務器
時間戳種類包括unix系統時間戳和Calendar, 而且支持時區的自動適配。
數據特性:微信
數據庫特性(CRUD)網絡
雖然通用關係數據庫能夠存儲時序數據,可是因爲缺少針對時間的特殊優化,好比按時間間隔存儲和檢索數據等等,所以在處理這些數據時效率相對不高。數據結構
第一代時序數據典型來源於監控領域,直接基於平板文件的簡單存儲工具成爲這類數據的首先存儲方式。架構
以RRDTool,Wishper爲表明,一般這類系統處理的數據模型比較單一,單機容量受限,而且內嵌於監控告警方案。併發
伴隨着大數據和Hadoop的發展,時序數據量開始迅速增加,系統業務對於處理時序數據的擴展性等方面提出更多的要求。
基於通用存儲而專門構建的時間序列數據庫開始出現,它能夠按時間間隔高效地存儲和處理這些數據。像OpenTSDB,KairosDB等等。
這類時序數據庫在繼承通用存儲優點的基礎上,利用時序的特性規避部分通用存儲的劣勢,而且在數據模型,聚合分析方面作了貼合時序的大量創新。
好比OpenTSDB繼承了HBase的寬表屬性結合時序設計了偏移量的存儲模型,利用salt緩解熱點問題等等。
然而它也有諸多不足之處,好比低效的全局UID機制,聚合數據的加載不可控,沒法處理高基數標籤查詢等等。
隨着docker,kubernetes, 微服務等技術的發展,以及對於IoT的發展預期愈來愈強烈。
在數據隨着時間而增加的過程當中,時間序列數據成爲增加最快的數據類型之一。
高性能,低成本的垂直型時序數據庫開始誕生,以InfluxDB爲表明的具備時序特徵的數據存儲引擎逐步引領市場。
它們一般具有更加高級的數據處理能力,高效的壓縮算法和符合時序特徵的存儲引擎。
好比InfluxDB的基於時間的TSMT存儲,Gorilla壓縮,面向時序的窗口計算函數p99,rate,自動rollup等等。
同時因爲索引分離的架構,在膨脹型時間線,亂序等場景下依然面臨着很大的挑戰。
目前,DB-Engines把時間序列數據庫做爲獨立的目錄來分類統計,下圖就是2018年業內流行的時序數據庫的關注度排名和最近5年的變化趨勢。
公有云
AWS Timestream
Azure Series Insights
開源
學術
商業&工業
能夠將數據從16字節壓縮到平均1.37字節,縮小12倍.而且設計了針對壓縮算法的內存數據結構.在保持對單個時間序列進行時間段查找的同時也能快速和高效的進行全數據掃描。
經過將時間序列數據寫到不一樣地域的主機中,容忍單節點故障,網絡切換,甚至是整個數據中心故障。
投資市場
2018年時序數據庫創業公司在投資市場有2筆著名的投資。
Timescale得到了來自Benchmark Capital的\$12.4M Series A輪融資。 InfluxDB得到了來自Sapphire Ventures的\$35M C輪融資。
近2年來時序數據庫正處於高速發展的階段。國內外雲市場各大主流廠商已經從整個時序生態的不一樣角度切入,造成各自特點的解決方案完成佈局,開始搶佔流量。
而以Facebook Gorilla爲表明的優秀的時序數據庫則是脫胎於知足自身業務發展的須要。學術上,在時序領域裏面更是涌現了一大批黑科技,把時序數據的技術深度推向更高的臺階。
阿里巴巴的TSDB團隊自2016年初版時序數據庫落地後,逐步服務於DBPaaS,Sunfire等等集團業務,在2017年中旬公測後,於2018年3月底正式商業化。
在此過程當中,TSDB在技術方面不斷吸納時序領域各家之長,開啓了自研的時序數據庫發展之路。
這個系列文章帶領讀者一塊兒欣賞下當前時序領域的技術風景。
原文連接 更多技術乾貨 請關注阿里云云棲社區微信號 :yunqiinsight