InfluxDB 3.0相比开源版InfluxDB,最近数据的处理速度提升至45倍。
作者:Charles Mahler / 产品
2023年8月9日
导航到
随着InfluxDB 3.0的发布,一个重要的问题是:它与之前的InfluxDB版本相比如何?我们已经开始使用生产负载对InfluxDB 3.0进行基准测试,以便为用户提供更多采用InfluxDB 3.0的好处。在这篇文章中,我们查看了对InfluxDB 3.0与开源版InfluxDB (OSS) 1.8进行的最新基准测试。
我们将性能基准测试结果总结如下
- InfluxDB 3.0比InfluxDB OSS提供强45倍的写入吞吐量。
- InfluxDB 3.0相比InfluxDB OSS,存储压缩率提高4.5倍。
- InfluxDB 3.0在给定的硬件资源下更加高效,相比InfluxDB OSS可以降低90%以上的存储成本。
- InfluxDB 3.0查询在广泛查询类型上,对于最近数据(5分钟)的处理速度比InfluxDB OSS快2.5-45倍。
- InfluxDB 3.0 的查询速度在过去的1小时时间范围内,与 InfluxDB OSS 相比,在广泛的查询类型中提高了 5-25倍。
我们的主要目标是创建一个一致、最新的比较,反映 InfluxDB 3.0 与 InfluxDB 开源版本的最新发展。我们将定期重新运行这些基准测试,并更新我们的详细基准技术论文。
此基准测试为比较 InfluxDB 3.0 与 InfluxDB 的早期版本(包括 1.x 和 2.x)提供了一个清晰的框架。您可以通过这里尝试我们的交互式基准测试工具。
测试的产品和版本
InfluxDB 3.0
InfluxDB 3.0 是 InfluxDB 的最新版本,为开发者提供了前所未有的可扩展性和性能。InfluxDB 3.0 支持所有时间序列数据,包括度量、事件和跟踪等高基数数据。它基于 Apache Arrow 在 Rust 上构建,这种解耦架构允许计算和存储独立扩展。InfluxDB 3.0 提供了对 SQL 和 InfluxQL(添加了对基于时间的函数支持的类似 SQL 的自定义查询语言)的查询支持。InfluxDB 3.0 在市场上有两个产品,还有一个将在今年晚些时候推出。 InfluxDB Cloud Serverless 是数据库的多租户实例,而 InfluxDB Cloud Dedicated 是单租户产品。两者目前都可用。InfluxDB Clustered,将于今年晚些时候推出,是 InfluxDB 3.0 的专用实例,客户可以在自己的环境中进行管理和操作。
InfluxDB OSS 1.8
InfluxDB 1.8 是 InfluxDB v1 线路的最新版本。其核心是 时间结构合并(TSM)树,这是一个针对时间序列数据优化的自定义存储引擎。InfluxDB OSS 支持 InfluxQL,并因其特定于时间序列的功能在社区中广受欢迎(我们专注于使用 InfluxQL 进行测试,因为 InfluxDB 3.0 和 InfluxDB 1.8 都原生支持 InfluxQL,从而实现了更强的直接比较)。
基准测试方法
工作负载
我们设计此基准测试以模拟实际条件。测试按顺序执行各种时间范围和期间的查询,并在导入时安排以模拟实际工作负载条件。未来的基准测试计划包括添加查询工作负载的并行执行。我们选择 Telegraf 作为测试写入吞吐量的首选数据收集代理。测试通过增加写入数据的客户端数量,直到观察到性能下降。
数据集
我们设计此基准测试的数据以模拟使用 Telegraf 输入插件收集各种指标和测量的应用程序性能监控工作负载。以下是数据集的高级细节
- 数据集持续时间:24小时
- 测量间隔:10秒
- 基数:160,000
关于基准测试的完整详细信息,您可以在此处下载完整报告。
写入性能
与InfluxDB OSS相比,InfluxDB 3.0能够在不降低性能的情况下同时处理更多45倍的客户端写入数据。尽管InfluxDB 3.0比InfluxDB OSS使用的硬件资源更少(下载完整的报告以获取硬件规格详情[链接]),但其卓越的执行能力进一步证明了新产品的效率和技术进步。
数据采集性能
结果代表了来自不同负载的Telegraf实例报告的21.5小时指标。
存储性能
在数据压缩方面,InfluxDB 3.0比InfluxDB OSS提高了约4.5倍。由于InfluxDB 3.0使用的是比InfluxDB OSS使用的基于SSD(固态设备)的存储更便宜的对象存储,因此成本节省最大化。
磁盘上的存储大小
查询性能观察
InfluxDB 3.0在查询性能类别中比InfluxDB OSS表现出强2.5-45倍。这些22种不同的查询被分为时间序列数据的实际应用场景。对于特定类型的查询,性能提升甚至更大。
我们对每种产品中的每个查询测试用例运行了10次。查询延迟指标的第95百分位数决定了性能。查询包括两个不同的时间段:过去5分钟的数据和过去60分钟的数据。
查询可以广泛地归为以下类别
- 聚合:聚合查询包括输出从原始行派生的聚合值(例如计数、总和、最小值、最大值等)的查询。
- 统计/数学:统计/数学查询对所选行执行数学(例如众数、中位数等)或统计(例如分散、标准差、百分位数等)函数。
- 阈值:阈值查询返回满足一个或多个阈值条件的行。
- In/Or:In/Or查询返回与IN/OR子句提供的多个值匹配的行。
- 按时间分组:按时间分组查询对返回的行执行基于时间的操作。
- 按/排序:按/排序查询返回分组特定列的结果行或包含排序结果。
- 限制/顶部/底部:限制/顶部/底部查询仅返回由LIMIT、TOP或BOTTOM子句指定的行。
- Like/Union:Like/Union查询通过匹配LIKE子句提供的模式返回多行,或返回多个查询的并集。
以下一些图表显示了基准测试运行24小时后,对过去5分钟内的数据进行查询后,InfluxDB 3.0和InfluxDB OSS的性能比较。
查询性能 – 聚合查询类型
输出从所选行派生的聚合值(例如计数、总和、最小值、最大值等)的查询。
结果反映了InfluxDB 3.0对常见分析查询(如对时间范围内多个列值的总和)的改进性能。
查询性能 – 按分组/排序查询类型
返回由分组特定列的结果行或包含排序结果。
这组查询使用Order by/Group by子句进行过滤和排序。Order by查询特别显示了InfluxDB 3.0比InfluxDB OSS提高了78倍的性能。
查询性能 – 限制/顶部/底部查询类型
仅返回由LIMIT、TOP或BOTTOM条件指定的行。
这些查询涉及使用Limit和Top子句选择最近的10个值和最近的5个CPU值。
查询性能 - 统计/数学查询类型
执行对所选行进行数学(例如,众数、中位数等)或统计(例如,离散度、标准差、百分位数等)功能的查询。
此图表包括三个单独的查询,结果范围广泛。在基准测试的开始处包括一个五分钟的时间范围。InfluxDB 3.0在特定查询上比InfluxDB OSS快22倍,对于其他查询性能相当,但对于中值运算符查询则略慢。
下一步
在这篇文章中,我们回顾了最近的对InfluxDB 3.0与InfluxDB OSS在三个向量(数据摄取、查询性能和存储)上进行的基准测试。InfluxDB 3.0在所有领域都以显著的幅度超越了InfluxDB OSS。
我们在多年的InfluxDB先前版本开发经验的基础上构建了InfluxDB 3.0。我们相信这反映在基准测试和整个基准研究中的详细部分。在此处下载您的免费完整基准报告点击此处。
对概念证明感兴趣?现在就与我们的销售团队交谈!