时序型数据库InfluxDB更新采用以Rust开发的高性能存储引擎

InfluxData历时两年打造的时序数据库核心InfluxDB IOx终于完成,现在已经于InfluxDB托管数据库服务,开始部署新一代InfluxDB IOx存储引擎,该存储引擎的特点在于消除了基数(Cardinality)限制,使用户可以导入庞大的时间串行资料,提供无限规模、分层资料存储和快速分析查询等功能。

过去InfluxDB所使用的TSM存储引擎,针对指标资料进行优化,可供用户快速截取和查询指标资料,但官方认为,InfluxDB的用途应该不仅只限于规则时间串行的指标资料,也应该包含不规则时间串行的事件资料。

因此着手催生新的InfluxDB存储引擎,InfluxDB IOx是一个云计算原生、即时的栏式数据库,使用程序语言Rust开发,并且构建于Apache Arrow和DataFusion技术之上,官方提到,InfluxDB IOx单一数据库核心就能处理指标资料和事件资料,使用户可利用原始且高精确性的事件资料创建时间串行。

而之所以InfluxData决定使用Rust构建InfluxDB新核心,是考虑到Rust提供的高性能优势,并且采用Apache Arrow,使其能够与广泛社群合作获得更好的互通性,同时InfluxData也贡献Apache Arrow项目,推动该项目的发展。

使用新存储引擎的InfluxDB Cloud用户,现在将不受任何基数限制,可以在不牺牲性能的情况下,编写任何类型的事件资料,和任意维度的切片资料,官方提到,这将打开InfluxDB在事件、关注和短暂无界基数资料领域的应用。

另外,新引擎也不仅是在资料截取上支持高基数,InfluxDB IOx中的时间串行查询,都较过去的InfluxDB高出数个量级,官方提到,在InfluxDB IOx查询10个串行和1百万个串行时间相同,因此InfluxDB IOx也可应用于跨高基数资料分析。

InfluxDB IOx原生支持SQL,能够使用兼容于Postgres的客户端和商业智能工具,InfluxData之后还预计将推出Apache Arrow FlightSQL,使用户能够高效访问数百万行时间串行资料。