购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.2 InfluxDB简介

时序数据库发展到目前,市场上已经诞生了很多稳定高效的产品,而InfluxDB就是其代表之一。

InfluxDB作为目前流行的时序数据库,拥有众多的竞争对手。本书将重点介绍InfluxDB,只要大家学会了InfluxDB,其他同类的时序数据库也就学会了,因为目前大多数时序数据库的概念都是相通的。

1.2.1 什么是InfluxDB

InfluxDB是一个由InfluxData公司于2013年开发的开源分布式时间序列数据库,其设计意图就是为了能够存储带有大量时间戳的数据,例如物联网设备、自动驾驶汽车产生的数据等,InfluxDB致力于对这些数据进行海量的写入以及高负载查询,由于是由Go语言开发,无须外部依赖,安装配置十分便捷,被广泛用于存储系统的监控数据等领域,成为目前主流的时序数据库之一。

InfluxData公司成立于2012年1月,其创始人Paul Dix和Todd Person在2013年开始着手InfluxDB的开发,之后获得了多轮投资。发展至今,历经了多次迭代,目前在InfluxDB版本中,部署方式分为单机版和集群版,单机版走开源路线。在2016年3月,InfluxData公司宣布他们会将用于支撑InfluxDB集群水平扩展的组件作为闭源产品单独销售,从而为InfluxDB的持续开发建立一个稳定的收入来源。

InfluxDB单机版是免费使用的,关于InfluxDB集群版的售价可在其官网上查阅,价格是随着服务器节点和每个节点的核心数变化的,见表1-1。

表1-1 InfluxDB售价

1.2.2 InfluxDB的历史

随着工业的快速发展,传统的关系型数据库面对快速增长的时序数据开始显得逐渐吃力,由于采用BTree的随机读写的模式,在寻道上会消耗很多时间,在目前物联网数据的大量写入要求下,传统关系型数据库的效率太过低下,于是时序数据库应运而生。

从图1-3中可以看出,时序数据库最早可追溯到20世纪90年代,为满足监控领域时序数据的存储要求,以RRDTool和KDB+为代表,出现了第一批时序数据库,它们将一个固定大小的数据库内嵌在监控系统中,来达到随时间变化快速存储数据的能力,但其缺点是读取能力依旧较弱,并且处理的数据比较单一。

图1-3 时序数据库发展史

后来随着大数据发展,不只是监控领域,其他领域也出现了需要处理大量时序数据的需求。从2011年年始,陆续出现了以openTSDB、Kairos为代表的基于分布式存储的数据库,其对时间进行了针对性优化。例如,openTSDB的底层依赖HBase集群存储,根据时序的特征对数据进行压缩,节省了存储空间。相较于之前的时序数据库,在存储和读写性能方面上有了显著提升,但其依赖Hadoop和HBase环境,使得部署及维护成本极高。

由于openTSDB本身的不足再加上部署维护不便,促成了低成本时序数据库的诞生。在这场混战中,InfluxDB得益于其高效的数据读取存储的能力和算法,慢慢地占据了主流市场。

Errplane公司在2013年下半年开始以开源项目的形式开始了InfluxDB的研发。其目的是提供一个高性能的监控以及告警的解决方案。2014年11月,Errplane公司获得了梅菲尔德风险投资公司与Trinity Ventures领投的A轮投资,金额高达810万美元。在2015年,Errplane正式更名为InfluxData,在2016年9月获得了金额高达1600万美元的B轮投资,又于2018年2月获得3500万美元的C轮投资。

1.2.3 InfluxDB现状及未来

2013年9月,Errplane公司正式发行了InfluxDB 1.0版本。2019年1月23日,InfluxDB推出了InfluxDB 2.x的alpha内部测试版,通过了二十几个版本的迭代,到2020年1月8日,InfluxDB 2.0开始推出Beta公开测试版,一直持续到同年10月,最终测试版本v2.0.0-rc.0正式推出。后来又推出了v2.0.1通用版,截至2021年11月,InfluxDB版本已经迭代到了v2.1.1。

历经这么多版本的迭代,InfluxDB在用户界面上不断进行完善,对旧版本的bug进行不断改进,并在每个版本上增加了新功能。以最新版本为例,InfluxDB对api和cli做出了更新,同时包括InfluxQL的更新。在最新的DB-ENGINES给出的时间序列数据库的排名中,InfluxDB高居第一位,可以预见,InfluxDB会得到越来越广泛的使用,如图1-4所示。

不过值得注意的是,InfluxDB目前正在进行重构,相信不久之后就会推出更为强劲的版本。

图1-4 时序数据库排名 lTHQtqFQYe0oVgURkijElxp8h89LxkGsx6Tm7zyIQ/SrvIqAjVcVdQsmRcT5RShQ

点击中间区域
呼出菜单
上一章
目录
下一章
×