InfluxDB 3 Core 和 Enterprise 正式发布 (GA): 面向开发者的下一代时序平台现已面世
作者:Paul Dix / 产品, 开发者,
2025 年 4 月 15 日
导航至
经过数月的开发、测试和社区反馈,我们激动地宣布 InfluxDB 3 Core 和 InfluxDB 3 Enterprise 正式发布 (GA)。此版本使我们更接近 InfluxDB 的愿景:一个时序数据库,帮助开发者解决跨传感器、网络、服务器和应用程序收集、分析、监控和处理数据的难题。我们将时序视为一种通过时间分析、监控和处理数据的方式。这可以采用预先计算的时序形式存储在数据库中(以前版本的 InfluxDB 在这方面表现出色),以及从各种原始事件和观测数据中动态计算时序的形式。InfluxDB 3 使我们更接近实现这一更广泛的愿景。
这标志着我们历时四年半从头开始重建 InfluxDB 以适应现代时序数据工作负载的旅程达到顶峰。我们进行了这项重大努力,旨在交付用户和客户长期以来要求的三个关键新功能:时序数据中的无限基数、支持将历史数据保存在对象存储上同时使其可用于实时查询,以及功能齐全、符合标准的 SQL 查询引擎。
当我们评估将这些新功能引入 InfluxDB 的解决方案空间时,我们意识到这将需要重大的架构转变。InfluxDB 3 的成果今天就在这里,这是一个现代时序平台,支持无限基数,采用“无盘”架构设计,嵌入式 Python VM 用于实时收集、处理、警报和自动化数据,以及我们创建过的操作最简单的集群 InfluxDB 架构。
InfluxDB 3 Core 和 Enterprise 都基于相同的架构,并且专为时序数据的未来而构建
- InfluxDB 3 Core 是我们的新开源产品,一个高速、最新的数据引擎,根据 MIT/Apache 2 许可获得许可。它作为单个进程运行,易于设置和立即开始使用。
- InfluxDB 3 Enterprise 是 Core 的商业版本,针对超过一小时时间范围的查询以及更长期的历史查询、高可用性、增强的安全性和多节点部署进行了性能优化。
自 1 月份发布 Alpha 版和 3 月份发布 Beta 版以来,我们一直专注于稳定性、性能优化和采纳用户反馈。
如果您有兴趣立即下载和使用该软件,我们已使其易于上手。无论您是想探索开源版本还是启动 Enterprise 的 30 天试用期,都无需进行设置呼叫或销售洽谈——只需软件,按照您的条款即可。
- Core 和 Enterprise 入门指南
- InfluxDB 3 Core 的开源仓库
技术架构:FDAP 基础
InfluxDB 3 构建于我们称之为 FDAP 堆栈之上:Apache Flight、DataFusion、Arrow 和 Parquet。与在对象存储(或首选本地磁盘)上持久保存所有状态的能力相结合,这实现了优于先前版本 InfluxDB 的新功能和优势。Apache Arrow 是一种内存列式格式,可在系统组件之间共享数据并实现快速矢量化查询执行。DataFusion 是一个功能齐全的矢量化 SQL 查询引擎,它充分利用了这种格式。通过为 DataFusion 做出贡献,我们与引擎及其推动社区保持密切联系。每一次性能提升和新功能都直接流入 InfluxDB 3,加速其每次发布的成熟度。Parquet 用作我们的持久性格式,这为我们的时序数据提供了极佳的压缩率。与 DataFusion 对 Parquet 的原生支持和下推优化相结合,我们在先前版本的 InfluxDB 无法企及的时序分析查询方面实现了卓越的性能。
Flight 和 FlightSQL 使 InfluxDB 3 能够提供数百万行查询响应,而无需昂贵的序列化。我们还提供易于使用的 HTTP API,用于不需要 FlightSQL 性能的请求。
在 FDAP 堆栈上开发 InfluxDB 为我们提供了一个灵活高效的架构,可实现显着的性能提升——更高的摄取率、更好的压缩率、更快的查询速度以及无限的基数。即使您的数据在数量和复杂性上不断增长,它也能提供高效的存储和实时分析。
对于开发者而言,这意味着构建在快速、可靠且专为时序而构建的系统之上。在操作方面,它可以处理高并发工作负载,保持数据完整性,并在压力下保持弹性。在架构方面,它可以横向和纵向扩展,随着工作负载的变化无缝适应。
这种基础之所以成为可能,是因为我们不仅使用 Arrow、Parquet 和 DataFusion 等开放标准,而且还在帮助塑造它们。除了 InfluxDB 3 Core,我们还在投资 FDAP 堆栈并向上游贡献,通常是领导这项工作。这些改进直接流入 InfluxDB 3,提供更好的功能、更简单的集成以及在各种环境中测试过的软件。这就是开源的价值:您从封闭系统无法获得的成熟度和弹性。
InfluxDB 3 Core 架构
InfluxDB 3 Core 为开发者提供了一个高速、最新的数据引擎,针对实时工作负载进行了优化。它旨在收集、处理数据并将数据持久保存到本地磁盘或对象存储,同时直接从 RAM 提供针对最新数据的查询。这使其成为实时系统监控、边缘数据转换、流分析和基于传感器的警报的理想选择——任何需要低延迟洞察的用例。
无盘架构
InfluxDB 3 中最重要的架构转变之一是能够“无盘”运行——仅使用对象存储(S3、GCS、Azure Blob 等)作为唯一的持久性层。虽然我们保留了仅使用本地磁盘且不使用对象存储进行操作的能力,但这种架构开箱即用地实现了许多功能。具体而言:
- 无需复杂复制即可实现多可用区持久性
- 计算与存储分离
- 企业版中更易于部署和扩展的无状态操作
- 升级或移动实例时零数据迁移
- 多节点企业版部署中的容错和隔离
所有这些都与广泛的缓冲和缓存相结合,以确保完全从 RAM 提供针对最新或热数据的查询,而无需向对象存储发出单个请求。这使得以数十毫秒为单位衡量查询响应时间成为可能。
通过最后值缓存和不同值缓存提高查询性能
我们在 InfluxDB 3 Core(和 Enterprise)中引入了多项功能,以优化时序数据中的常见查询模式。最后值缓存 (LVC) 和不同值缓存 (DVC) 的构建旨在在 10 毫秒内响应查询,从而实现响应式 UI 和快速监控系统。
- 最后值缓存:可配置为保留指定标签层次结构的 N 个最新值。例如,您可以立即检索特定传感器、机器上的所有传感器或工厂中所有传感器的最新指标。
- 不同值缓存:用于标签值和序列元数据的超快速查找,使 UI 下拉列表和探索性查询具有响应性。
处理引擎:嵌入式 Python VM
InfluxDB 3 中最重要的新增功能之一是嵌入式 Python 处理引擎。它将计算直接引入数据库,从而无需外部服务或管道即可实现数据转换、丰富、监控和警报。处理引擎在数据库内部运行轻量级 Python VM,并根据触发器执行您的代码——在摄取时、按计划或响应 HTTP 请求。
这不仅仅是一个新功能——它简化了整个堆栈。您定义逻辑,数据库运行它,无需额外的基础设施或胶水代码——只需在数据已存在的地方进行实时处理。
处理引擎支持
- 实时数据转换和丰富
- 数据收集和将数据拉入数据库
- 自定义监控和警报逻辑
- 数据降采样和聚合
- 与外部系统集成
- 用于自定义 API 创建的 HTTP 端点
- 运行 LLM 生成的 Python 脚本以进行简单自动化
这些插件的执行基于用户和操作员设置的触发器。触发器类型为
- WAL Flush(WAL 刷新):在写入时处理批次数据
- Schedule(计划):按可配置的计时器运行(从毫秒到小时或天)
- Request(请求):绑定到 HTTP 端点以进行按需处理
您无需学习新的 DSL 或部署额外的服务。您编写 Python 并专注于您的逻辑。处理引擎负责其余的工作。
内置插件 API
InfluxDB 3 Python 插件具有用于与数据库交互的内置 API。这包括将数据写回数据库、使用完整的 SQL 引擎查询数据库以及用于在不同的触发器调用之间保持状态的内存缓存的能力。
我们建立了一个 GitHub 存储库,其中包含 InfluxDB 3 插件示例,并将接受来自社区的拉取请求,用于可能对更广泛的受众有用的插件。我们期待看到社区使用该引擎所做的事情,并且我们打算在未来几个月内快速迭代其 API 和功能。
InfluxDB 3 Enterprise
InfluxDB 3 Enterprise 是我们为大规模生产工作负载构建的商业产品。它构建在 Core 引擎之上,并添加了在规模上可靠运行所需的功能——无论是支持数千个传感器、运行长期分析还是为关键基础设施提供动力。
Enterprise 包括
- 一个压缩器,可优化数据布局,以用于针对超过一小时的数据和历史查询的查询
- 安全功能,可为特定数据库启用读写访问令牌
- 通过多节点部署实现高可用性
- 读取副本以扩展查询和处理工作负载
- 工作负载隔离,能够独立分离和扩展摄取、查询、处理和压缩
Enterprise 专为操作简单而设计——无论您是在裸机、VM、容器还是 Kubernetes 上运行。其无盘架构隔离了工作负载,并且仅共享对象存储文件,从而使其易于集成到现有基础设施并在规模上部署。
家庭用户的免费层级
对于非商业家庭或业余爱好者使用,我们提供免费的 Enterprise 层级。它仅限于具有两个内核的单节点部署。它包括压缩引擎,可实现更好的性能和历史时序查询。
我们构建此层级是为了让业余爱好者能够访问完整的生产级时序数据库,他们可以使用它进行学习、实验或个人项目。这是探索 InfluxDB 3 可能性的简单方法。
迁移和兼容性
我们努力构建与尽可能多的先前版本 InfluxDB 的兼容性。具体而言,我们支持
- InfluxDB 1.x 和 2.x 写入 API:我们支持以前的写入 API 和 InfluxDB Line Protocol
- InfluxQL 和 1.x 查询 API:我们在 DataFusion 查询引擎之上实现了 InfluxQL,以使用户能够通过旧版 InfluxQL 和新的 v3 InfluxQL 端点以及 DataFusion 的原生 SQL 进行查询
架构注意事项
虽然 InfluxDB 3 保持了熟悉的 measurement、标签/字段数据模型映射到更传统的 SQL 表模型,但仍有一些重要的架构注意事项
- 标签和字段在 measurement 中必须具有唯一的名称
- 数据库限制:Core 中为 5 个,Enterprise 中为 100 个(可以在配置中增加)
- 表限制:Core 中为 2,000 个,Enterprise 中为 10,000 个(可以在配置中增加)
迁移路径
我们正在开发两种主要的迁移方法
- 对于 Enterprise 用户:我们正在为 InfluxDB Enterprise 构建全面的数据迁移工具,这些工具将在过渡到新架构的同时保留您的历史数据。这些工具将在未来几个月内发布。
- 对于 Core 用户:由于 InfluxDB 3 Core 专门为最新数据(72 小时)设计,因此我们的迁移建议是将旧版本的写入镜像到新的 InfluxDB 3 Core 实例一段时间,然后在 72 小时后完全切换。
对于 Flux 用户,我们目前很遗憾无法提供直接兼容层。但是,Python 处理引擎、SQL 和 InfluxQL 的组合应为大多数用例提供同等或改进的功能。插件系统是早期版本功能的自然继承者,包括 Continuous Queries、Tasks、Kapacitor 和 Telegraf。虽然 Kapacitor 和 Telegraf 仍然与 InfluxDB 3 兼容,但插件模型将该功能直接引入数据库。
下一步是什么
InfluxDB 3 Core 和 Enterprise 的正式发布只是第一步。它们共同为更快的分析、更深入的集成和更智能的自动化奠定了坚实的基础。无论您是刚开始使用还是已经在运行大规模工作负载,新引擎都能提供性能和灵活性,从而大规模地支持实时监控、长期分析和事件驱动的自动化。而我们才刚刚开始——更多功能、插件和构建工具正在路上。
如果您是 InfluxDB 的新手,那么现在是开始使用的最佳时机。查看我们的 Core 和 Enterprise 入门指南,并加入对话以分享反馈并帮助塑造未来的发展方向
- Discord:加入 InfluxDB Discord 上的 #influxdb3_core 频道,与我们的开发团队直接互动
- 社区站点
- Reddit:r/InfluxDB
- Slack:#influxdb3_core 频道