主要观点:InfluxData 四年前开始为 InfluxDB 开发新核心以应对现代时间序列工作负载需求,推出 InfluxDB 3,它是用 Rust 构建的实时列式数据库,基于 FDAP 栈,实现了显著的技术改进和新功能。
关键信息:
- 早期 InfluxDB 1.0 用 Go 编写,有自定义存储引擎 TSM;后来引入 TSI 解决基数限制问题,但仍无法满足分析查询性能需求。
- 2020 年推出 InfluxDB 2.x,用户需求促使进行底层架构转变,最终宣布 InfluxDB IOx(即 InfluxDB 3),用 Rust 及 FDAP 栈重建核心。
- Rust 因其性能、内存安全和无畏并发等特性被选为 InfluxDB 3 的核心语言,DataFusion 引擎的 Rust 编写也促使其成为查询引擎。
- FDAP 栈的各组件(Apache Arrow Flight、DataFusion、Apache Arrow、Apache Parquet)在 InfluxDB 3 中协同工作,实现高效数据处理和交互。
- InfluxDB 3 带来诸多好处,如提高性能、增加摄取效率、降低存储成本等,还将添加 Iceberg 支持,实现与现代数据生态系统的集成。
- InfluxDB 3 开源,包括 Core 和 Enterprise 版本,具有无状态、无盘架构等特点,能高效处理实时和历史数据。
重要细节: - TSM 设计将时间序列存储与内存倒排索引配对;TSI 扩展索引至磁盘和内存,支持千万到一亿基数的工作负载。
- DataFusion 由 InfluxData 团队贡献,已成为 Apache 顶级项目,性能是其核心关注点,吸引了众多贡献。
- Apache Arrow 用于高效数据表示和处理,arrow-rs 实现不断优化;Parquet 用于批量数据交换,方便与其他系统集成。
- InfluxDB 3 的无状态、无盘架构由多个模块化服务组成,高效处理数据流入和流出,通过各种缓存和优化提高查询性能。
- 企业版 InfluxDB 3 解除了查询计划的文件数量限制,提供长期查询性能和高级部署功能。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。