InfluxDB是一个由InfluxData页面存档备份,存于互联网档案馆)开发的开源时序型数据库[note 1]。它最早由Go写成,后来切换成用Rust编写,着力于高性能地查询与存储时序型数据。InfluxDB被广泛应用于存储系统的监控数据,IoT行业的实时数据等场景。

InfluxDB
开发者InfluxData
首次发布2013年9月24日 (2013-09-24)
当前版本1.7.3(2019年1月13日,​5年前​(2019-01-13
编程语言Rust
操作系统跨平台
类型时序型数据库
许可协议MIT许可证
网站influxdata.com/time-series-platform/influxdb/

历史

Errplane公司[1]在2013年下半年开始以开源项目的形式开始了InfluxDB的开发。其目的是为了提供一个高性能的监控以及告警的解决方案。在2014年11月,Errplane获得了由梅菲尔德风险投资公司英语Mayfield FundTrinity Ventures领投的A轮投资,金额高达810万美元[2]。在次年的2015年,Errplane正式更名为InfluxData Inc.,而更名后的InfluxData又分别于2016年9月,2018年2月获得了金额高达1600万美元和3500万美元的B轮英语Venture round#Round names,C轮投资。[3] 2019年2月,InfluxData, Inc.完成 Norwest Venture Partners 领投的6000万美元D轮融资,Battery Ventures、Sapphire Ventures、Mayfield Fund、Trinity Ventures等跟投。[4]

技术概览

  • InfluxDB在技术实现上充分利用了Go语言的特性,无需任何外部依赖即可独立部署[5]
  • InfluxDB提供了一个类似于SQL的查询语言并且一系列内置函数方便用户进行数据查询。
  • InfluxDB存储的数据从逻辑上由 Measurement, tag组以及 field组以及一个时间戳组成的:
    • Measurement: 由一个字符串表示该条记录对应的含义。比如它可以是监控数据"cpu_load",也可以是测量数据"average_temperature"
    • tag组: 由一组键值对组成,表示的是该条记录的一系列属性信息。同样的measurement数据所拥有的tag组不一定相同,它是无模式的(Schema-free)。tag信息是默认被索引的。
    • field组:也是由一组键值对组成,表示的是该条记录具体的value信息(有名称)。field组中可定义的value类型包括:64位整型,64位浮点型,字符串以及布尔型。Field信息是无法被索引的。
    • 时间戳:就是该条记录的时间属性。如果插入数据时没有明确指定时间戳,则默认存储在数据库中的时间戳则为该条记录的入库时间。
  • InfluxDB支持基于HTTP的数据插入与查询。同时也接受直接基于TCP或UDP协议的连接.比如下面的示例就显示了一个基于HTTP协议的POST请求的数据插入操作:
$curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000'
  • InfluxDB允许用户定义数据保存策略(Retention Policies)来实现对存储超过指定时间的数据进行删除[note 2]或者降采样

闭源的集群组件

在向InfluxDB开源社区贡献了一个名为InfluxDB-Relay[note 3]高可用套件后。2016年3月,InfluxData宣布他们会将用于支撑InfluxDB集群水平扩展的组件作为闭源产品单独销售,从而为InfluxDB的持续开发建立一个稳定的收入来源[6]

附注

  1. ^ InfluxDB的代码托管于Github。请参见: https://github.com/influxdata/influxdb页面存档备份,存于互联网档案馆
  2. ^ 作为时序型数据库,InfluxDB不提供用户直接删除或更新数据的途径
  3. ^ Influx-relay的代码也托管于Github. 请参见:https://github.com/influxdata/influxdb-relay页面存档备份,存于互联网档案馆

参考资料

  1. ^ Lardinois, Frederic. Y Combinator-Backed Errplane Launches Comprehensive Performance Monitoring And Alert Service For Web Apps. TechCrunch. [2016-09-07]. (原始内容存档于2019-10-17). 
  2. ^ Miller, Ron. Errplane Snags $8.1M To Continue Building Open Source InfluxDB Time Series Database. TechCrunch. [2016-09-07]. (原始内容存档于2019-10-17). 
  3. ^ Mannes, John. InfluxData closes $16 million Series B led by Battery Ventures to organize IOT data. TechCrunch. [2016-10-13]. (原始内容存档于2020-11-24). 
  4. ^ 开源时间序列数据库InfluxDB开发商:InfluxData, Inc.. mg21.com. 2021-08-08 [2021-08-08]. (原始内容存档于2021-08-14). 
  5. ^ Michael Duffy. DevOps Automation Cookbook. Packt Publishing. 26 November 2015: 176–. ISBN 978-1-78439-839-2. 
  6. ^ Update on InfluxDB Clustering, High-Availability and Monetization. GitHub. influxdata. 2016-03-10 [2016-08-08]. (原始内容存档于2020-11-11).