InfluxDB IOx简介
作者 Susannah Brodnitz / 用例, 产品
2022年11月3日
导航至
上周InfluxData宣布了IOx,这是InfluxDB的新时序引擎。我们重新审视了数据库的核心,利用底层技术实现重大突破。用户可以期待更高的性能和更多查询数据的选择。以下是关于InfluxDB IOx的一些最激动人心的功能的简要介绍。
无限基数
在InfluxDB中,当我们说基数时,我们指的是桶中独特的测量、标签集和字段键组合的数量。在过去,我们不建议在InfluxDB中使用大量标签或包含无限数据的标签,因为这会降低性能。这限制了像可观察性和跟踪这样的用例,这些用例依赖于像日志和跟踪这样的高基数数据。InfluxDB IOx取消了基数限制。现在,用户可以写入具有无限基数的数据,并沿着他们想要的任何维度监控和查询他们的时序数据,而不会影响性能。
实时分析
InfluxDB IOx 是一个列式时序数据库。列式数据库将数据表示为表,并允许您快速且大规模地执行查询。我们的新引擎基于列式数据库,从多个方面解决了性能问题。按列压缩有助于磁盘空间利用。字典确保在具有适用于许多时间戳的标记值时,不会重复存储字符串。运行长度编码有助于有效存储合法重复值。向量执行让您可以组织数据,以便 CPU 可以非常快速地运行。并且查询被并行化以加快运行速度。
新引擎最重要的部分之一是分区。在 IOx 中,时序数据根据时间(如按天)和标记(如区域)进行分区。这使得您可以轻松过滤掉不满足查询时间范围或其他指定条件的部分数据。查询逐行操作包含的分区中的所有行,由于向量执行,IOx 允许您每秒每个核心查询约 10 亿行。这种分区和极快的查询响应速度意味着您可以有大量标记,并且仍然可以实时构建仪表板和监控及警报系统。
SQL 支持
InfluxDB IOx 是用 Rust 编程语言编写的,并使用 Apache Parquet 文件进行磁盘存储,使用 Apache Arrow 进行组件间的操作。Apache Arrow 是一个内存中列式数据的规范,使分析查询非常快。IOx 还使用 DataFusion 库,作为其解析器、计划器、优化器和执行引擎。这意味着 InfluxDB 首次支持 PostgreSQL 语法和协议,允许您连接到 PSQL、Grafana、Tableau 和 Apache Superset 等第三方库和 BI 工具。兼容性是 InfluxData 的关键关注点,这个新引擎支持许多查询选项。除了新的 SQL 支持,InfluxDB IOx 继续支持 API 的版本以及我们自己的查询和脚本语言。在 API 层次中,您可以使用 1.x 或 2.0 API 与新引擎通信,并且可以使用 Flux、InfluxQL、SQL 或我们提供的 12+ 个客户端库中的任何一个来查询数据库。
注册 InfluxDB IOx 公测版程序
您可以通过此处注册成为 InfluxDB IOx 公测版的一员。您将获得 SQL 兼容性、无限基数和 InfluxDB 云中的更快性能。如果您使用 OSS 或 InfluxDB 企业版,您可以考虑明年使用新引擎、这些兼容层和迁移工具。