InfluxDB是一个由InfluxData开发的开源时序型数据库,由Go写成,着力于高性能地查询与存储时序型数据。InfluxDB被广泛应用于存储系统的监控数据,IoT行业的实时数据等场景。
InfluxDB 是一个由 InfluxData 开发的开源时序型数据库,由 Go 写成,着力于高性能地查询与存储时序型数据。InfluxDB 被广泛应用于存储系统的监控数据,IoT 行业的实时数据等场景。
历史
Errplane 公司在 2013 年下半年开始以开源项目的形式开始了 InfluxDB 的开发。其目的是为了提供一个高性能的监控以及告警的解决方案。在 2014 年 11 月,Errplane 获得了由梅菲尔德风险投资公司与 Trinity Ventures 领投的 A 轮投资,金额高达 810 万美元。在次年的 2015 年,Errplane 正式更名为 InfluxData Inc.,而更名后的 InfluxData 又分别于 2016 年 9 月,2018 年 2 月获得了金额高达 1600 万美元和 3500 万美元的 B 轮,C 轮投资。
技术概览
- InfluxDB 在技术实现上充分利用了 Go 语言的特性,无需任何外部依赖即可独立部署。
- 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 协议的连接
- InfluxDB 允许用户定义数据保存策略(Retention Policies)来实现对存储超过指定时间的数据进行删除或者降采样。
闭源的集群组件
在向 InfluxDB 开源社区贡献了一个名为 InfluxDB-Relay 的高可用套件后。2016 年 3 月,InfluxData 宣布他们会将用于支撑 InfluxDB 集群水平扩展的组件作为闭源产品单独销售,从而为 InfluxDB 的持续开发建立一个稳定的收入来源。
免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考;文章版权归原作者所有!本站作为信息内容发布平台,页面展示内容的目的在于传播更多信息;本站不提供任何相关服务,阁下应知本站所提供的内容不能做为操作依据。市场有风险,投资需谨慎!如本文内容影响到您的合法权益(含文章中内容、图片等),请及时联系本站,我们会及时删除处理。