为了账号安全,请及时绑定邮箱和手机立即绑定

实时数据分析应用的数据库性能比拼:RTABench基准测试工具解读

选择适合分析的数据库可不容易。选项很多,每个选项都适合不同的应用场景。

一些数据库是为实时分析而构建的,用于面向客户的应用程序,其中低延迟查询速度和高数据吞吐量至关重要。还有一些数据库则是为内部商业智能和报告而设计,并针对大规模聚合和批处理优化。有些数据库是通用型的,既处理事务又支持分析,而有些则专注于分析工作负载。

参照标准可以有所帮助——但前提是它们能真正反映你的实际工作。

几个基准测试,包括ClickBench、TPC-H和TPC-DS,用于评估数据库在分析方面的性能。但是,它们并不代表实时分析场景。

为了填补这一缺口,我们创建了RTABench,一个新的基准,来帮助开发者评估不同数据库在实时分析场景下的表现。

在实时数据分析中,一些关键模式有:

  • 多表联结:快速合并来自多个表的数据。

  • 筛选:快速检索最新和最相关的数据。

  • 预聚合的结果:使用预计算的视图来快速响应。

虽然反范式化数据可以加速查询,但它会增加管理和成本的复杂性。实时应用更偏向于使用范式化的模式,并在查询时连接数据。

大家好,今天要介绍给大家的是RTABench(一个特定的工具或平台)。

为了满足实时分析任务的需求,我们开发了RTABench,这是一个用于测试这些数据库的基准,特别是针对其特定需求。RTABench 主要关注连接、过滤和预聚合等关键查询模式。

RTABench是怎么运作的:

RTABench 模拟了一个订单跟踪系统,使用规范化表来模仿实时分析应用程序。它使用大约 1.71 亿个订单记录,并通过 40 种不同的查询来评估数据库的表现,包括基本的计数、选择性过滤、多表连接查询和预聚合的查询。

RTABench 将数据库分为:

  1. 通用型数据库:例如,PostgreSQL 和 MySQL。

  2. 实时分析数据库:优化用于快速分析,通常是次要数据库。

  3. 批量分析数据库(batch analytics databases):主要用于存储历史数据,并不参与实时性能指标的评估。

基准测试结果:我们学到的教训

RTABench的结果可在rtabench.com查看。虽然性能会根据不同的工作负载特性有所变化,但该基准测试提供了一些有趣的发现:

  1. 通用型数据库在RTABench上的表现比在ClickBench上更好。 这在预料之中——RTABench使用规范化的模式类似于实际应用,而ClickBench则基于优化了批处理分析的非规范化的数据集。

  2. TimescaleDB在RTABench上比ClickHouse快近1.9倍,尽管在ClickBench上它的速度慢了6.8倍。这大概是因为TimescaleDB针对实时分析应用进行了优化,这些应用通常依赖于规范化的数据结构和选择性聚合,而ClickHouse则在非规范化、列式存储的分析和大规模聚合方面表现出色。

  3. 增量物化视图能大幅加速。 相比直接查询原始数据,它们能快几百甚至几千倍(从几秒到几毫秒),这显示了它们在实时分析中的价值。不过,在测试的数据库中,只有 ClickHouse 和 TimescaleDB 提供了这种支持。

  4. ClickHouse 在数据加载和存储效率方面领先。它的数据加载速度比其他数据库快4.8倍,且只占用其他数据库磁盘空间的59%。

  5. PostgreSQL 是最快的通用型数据库。 这款最受开发者欢迎的数据库展示了它的多功能性。在索引查询性能上,它仅比 TimescaleDB 慢 4.1 倍的速度——但它的增量物化视图性能不及 TimescaleDB,因为 PostgreSQL 并不支持这种功能。

如图所示:图片

点击这里查看结果。

欢迎为RTABench贡献力量! 我们期待您的参与,无论是添加新的数据库、优化现有查询还是调整配置。所有工具、数据集和结果都在GitHub上提供。您可以在这里找到最新版本。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消