Skip to content

InfluxDB 历史发展

创立背景

InfluxDB 是由 InfluxData 公司开发的开源时间序列数据库(TSDB),专门用于处理和存储时间戳数据。时间序列数据是按时间顺序记录的数据点集合,广泛应用于监控系统、IoT设备、传感器数据、日志记录等场景。

发展历程

2013-2015:初创与早期版本

  • 2013年:InfluxData 公司成立,开始开发 InfluxDB
  • 2014年4月:发布 InfluxDB 0.8.0 版本,这是首个公开可用的版本
  • 2015年4月:发布 InfluxDB 0.9.0 版本,引入了新的存储引擎 TSM (Time Structured Merge Tree),显著提升了性能

2016-2018:快速发展与稳定化

  • 2016年2月:发布 InfluxDB 0.10.0 版本,改进了查询语言和性能
  • 2016年11月:发布 InfluxDB 1.0.0 版本,标志着产品进入稳定阶段
  • 2017年10月:发布 InfluxDB 1.3.0 版本,增强了集群功能和监控能力
  • 2018年6月:发布 InfluxDB 1.6.0 版本,引入了 Flux 查询语言的预览版

2019-2021:架构演进与多版本并行

  • 2019年9月:发布 InfluxDB 1.7.0 版本,改进了 Flux 查询语言支持
  • 2020年2月:发布 InfluxDB 2.0.0 版本,采用全新架构,集成了 Telegraf、Chronograf 和 Kapacitor 功能
  • 2020年6月:发布 InfluxDB 1.8.0 版本,作为 1.x 系列的长期支持版本
  • 2021年11月:发布 InfluxDB 2.1.0 版本,改进了性能和稳定性

2022-至今:持续改进与企业级功能

  • 2022年4月:发布 InfluxDB 2.2.0 版本,增强了安全性和监控能力
  • 2022年10月:发布 InfluxDB 2.3.0 版本,改进了查询性能和存储效率
  • 2023年3月:发布 InfluxDB 2.4.0 版本,增强了企业级功能
  • 2023年9月:发布 InfluxDB 2.7.0 版本,改进了 Flux 查询引擎和 UI 界面
  • 2024年:继续迭代更新,专注于性能优化和企业级功能增强

重要里程碑

存储引擎演进

  • BoltDB:早期版本使用的存储引擎,适合小规模部署
  • TSM (Time Structured Merge Tree):自 0.9.0 版本引入,是 InfluxDB 的核心存储引擎,专为时间序列数据设计,提供高效的写入和查询性能
  • InMemory:内存存储引擎,用于高速写入场景
  • Parquet:在企业版中支持,用于长期数据存储和分析

查询语言发展

  • InfluxQL:类似 SQL 的查询语言,适合熟悉 SQL 的用户
  • Flux:功能更强大的函数式查询语言,支持复杂的数据处理和分析,自 1.6.0 版本引入

架构演进

  • 单机版:适合小规模部署
  • 集群版:支持水平扩展,适合大规模部署
  • 云原生架构:2.0 版本采用的全新架构,更好地支持容器化和云环境

主要版本对比

版本系列发布时间主要特点支持状态
1.x2016-2020稳定可靠,广泛应用长期支持(LTS)
2.x2020-至今全新架构,集成工具链活跃开发

1.x 与 2.x 的主要区别

特性1.x2.x
架构模块化设计集成式设计
查询语言InfluxQL 为主,Flux 为辅Flux 为主,InfluxQL 兼容
数据存储TSM 引擎TSM 引擎,支持 Parquet
管理界面Chronograf内置 UI
数据采集Telegraf 单独部署内置 Telegraf 支持
数据处理Kapacitor 单独部署内置任务引擎

生态系统发展

InfluxDB 生态系统包括以下核心组件:

  • Telegraf:数据采集代理,支持多种数据源
  • Chronograf:可视化和管理界面(在 2.x 中集成)
  • Kapacitor:数据处理和告警引擎(在 2.x 中集成)
  • Flux:函数式查询语言

应用领域扩展

InfluxDB 最初主要用于监控系统,随着版本演进,应用领域不断扩展:

  • 基础设施监控:服务器、网络设备、容器等
  • 应用性能监控(APM):应用程序性能指标
  • IoT 设备监控:传感器数据、设备状态
  • 日志管理:结构化日志存储和分析
  • 金融数据:股票价格、交易数据
  • 工业物联网:生产设备监控、预测性维护
  • 医疗健康:患者生命体征监测

常见问题(FAQ)

Q1: InfluxDB 1.x 和 2.x 哪个更适合新部署?

A1: 对于新部署,建议使用 InfluxDB 2.x,因为它具有更现代化的架构、更好的用户体验和更强大的功能。2.x 版本集成了数据采集、存储、查询和可视化功能,部署和管理更简单。

Q2: InfluxDB 适合存储多大规模的数据?

A2: InfluxDB 可以处理从 GB 到 PB 级别的数据,具体取决于部署规模和硬件配置。单机版适合中小规模部署,集群版支持水平扩展,适合大规模部署。

Q3: InfluxDB 支持哪些数据导入方式?

A3: InfluxDB 支持多种数据导入方式,包括:

  • HTTP API
  • Telegraf 代理
  • 命令行工具
  • 第三方集成工具
  • 批量导入工具

Q4: InfluxDB 的数据保留策略是如何工作的?

A4: InfluxDB 通过保留策略(Retention Policy)管理数据的生命周期。可以为每个数据库创建多个保留策略,定义数据的保留时间和副本数量。当数据超过保留时间后,会被自动删除或降采样。

Q5: InfluxDB 支持实时查询吗?

A5: 是的,InfluxDB 专为实时数据设计,支持低延迟的实时查询。TSM 存储引擎优化了写入和查询性能,能够处理高吞吐量的实时数据。

Q6: InfluxDB 可以与哪些可视化工具集成?

A6: InfluxDB 可以与多种可视化工具集成,包括:

  • 内置的 Chronograf/UI(2.x 版本)
  • Grafana
  • Tableau
  • Power BI
  • 自定义应用程序