時間序列數據的存儲和計算 - 開源時序數據庫解析(三)

點擊查看全文數據庫

InfluxDB

  InfluxDB在DB-Engines的時序數據庫類別裏排名第一,實至名歸,從它的功能豐富性、易用性以及底層實現來看,都有不少的亮點,值得大篇幅來分析。架構

  首先簡單概括下它的幾個比較重要的特性:運維

  1. 極簡架構:單機版的InfluxDB只須要安裝一個binary,便可運行使用,徹底沒有任何的外部依賴。相比來看幾個反面例子,OpenTSDB底層是HBase,拖家帶口就得帶上ZooKeeper、HDFS等,若是你不熟悉Hadoop技術棧,通常運維起來是有必定的難度,這也是其被人抱怨最多的一個點。KairosDB稍微好點,它依賴Cassandra和ZooKeeper,單機測試可使用H2。總的來講,依賴一個外部的分佈式數據庫的TSDB,在架構上會比徹底自包含的TSDB複雜一點,畢竟一個成熟的分佈式數據庫自己就很複雜,固然這一點在雲計算這個時代已經徹底消除。 2.** TSM Engine**:底層採用自研的TSM存儲引擎,TSM也是基於LSM的思想,提供極強的寫能力以及高壓縮率,在後面的章節會對其作一個比較詳細的分析。
  2. InfluxQL:提供SQL-Like的查詢語言,極大的方便了使用,數據庫在易用性上演進的終極目標都是提供Query Language。
  3. Continuous Queries: 經過CQ可以支持auto-rollup和pre-aggregation,對常見的查詢操做能夠經過CQ來預計算加速查詢。
  4. TimeSeries Index: 對Tags會進行索引,提供高效的檢索。這一項功能,對比OpenTSDB和KairosDB等,在Tags檢索的效率上提高了很多。OpenTSDB在Tags檢索上作了很多的查詢優化,可是受限於HBase的功能和數據模型,因此然並卵。不過目前穩定版中的實現採用的是memory-based index的實現方式,這種方案在實現上比較簡單,查詢上效率最高,可是帶來了很多的問題,在下面的章節會詳細描述。
  5. Plugin Support: 支持自定義插件,可以擴展到兼容多種協議,如Graphite、collectd和OpenTSDB。

  在下面的章節,會主要對其基本概念、TSM存儲引擎、Continuous Queries以及TimeSeries Index作詳細的解析。分佈式

 

 

點擊查看全文oop

相關文章
相關標籤/搜索