点击查看全文数据库
InfluxDB
InfluxDB在DB-Engines的时序数据库类别里排名第一,实至名归,从它的功能丰富性、易用性以及底层实现来看,都有不少的亮点,值得大篇幅来分析。架构
首先简单概括下它的几个比较重要的特性:运维
- 极简架构:单机版的InfluxDB只须要安装一个binary,便可运行使用,彻底没有任何的外部依赖。相比来看几个反面例子,OpenTSDB底层是HBase,拖家带口就得带上ZooKeeper、HDFS等,若是你不熟悉Hadoop技术栈,通常运维起来是有必定的难度,这也是其被人抱怨最多的一个点。KairosDB稍微好点,它依赖Cassandra和ZooKeeper,单机测试可使用H2。总的来讲,依赖一个外部的分布式数据库的TSDB,在架构上会比彻底自包含的TSDB复杂一点,毕竟一个成熟的分布式数据库自己就很复杂,固然这一点在云计算这个时代已经彻底消除。 2.** TSM Engine**:底层采用自研的TSM存储引擎,TSM也是基于LSM的思想,提供极强的写能力以及高压缩率,在后面的章节会对其作一个比较详细的分析。
- InfluxQL:提供SQL-Like的查询语言,极大的方便了使用,数据库在易用性上演进的终极目标都是提供Query Language。
- Continuous Queries: 经过CQ可以支持auto-rollup和pre-aggregation,对常见的查询操做能够经过CQ来预计算加速查询。
- TimeSeries Index: 对Tags会进行索引,提供高效的检索。这一项功能,对比OpenTSDB和KairosDB等,在Tags检索的效率上提高了很多。OpenTSDB在Tags检索上作了很多的查询优化,可是受限于HBase的功能和数据模型,因此然并卵。不过目前稳定版中的实现采用的是memory-based index的实现方式,这种方案在实现上比较简单,查询上效率最高,可是带来了很多的问题,在下面的章节会详细描述。
- Plugin Support: 支持自定义插件,可以扩展到兼容多种协议,如Graphite、collectd和OpenTSDB。
在下面的章节,会主要对其基本概念、TSM存储引擎、Continuous Queries以及TimeSeries Index作详细的解析。分布式
点击查看全文oop