用于实时分析应用的新的开源基准测试
New open-source benchmark for real-time analytics applications

原始链接: https://github.com/timescale/rtabench

RTABench是一个新的基准测试,旨在专门评估实时分析应用程序的数据库性能。与专注于批处理和大规模历史分析的传统基准测试不同,RTABench 模拟了需要对最新数据进行快速、有针对性洞察的应用程序的需求。 它利用基于在线商店(客户、产品、订单等)的标准化模式来模拟真实的跨表连接和选择性过滤。RTABench 包含一个大约 1.71 亿事件的数据集和一套 33 个查询,这些查询分为原始事件查询、选择性过滤、多表连接和预聚合查询。 该基准测试侧重于通常用于实时分析的数据库,包括通用数据库(PostgreSQL、MySQL)、实时分析优化数据库(ClickHouse、TimescaleDB)和批处理分析数据库。RTABench 是开源的,并鼓励社区贡献以扩大数据库覆盖范围并改进查询优化。其目标是帮助开发人员了解哪个系统最符合他们特定的实时分析需求,同时认识到结果并非数据库的最终排名。

Hacker News 最新 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 实时分析应用程序的新开源基准测试 (github.com/timescale) thenoahhein 4小时前 13 分 | 隐藏 | 过去 | 收藏 | 2 条评论 giovannibonetti 42分钟前 | 下一条 [–] 在用于列存储的 Postgres 扩展方面,我喜欢 Citus [1] 如何处理列表这一更普遍的问题,而不是仅仅关注“超表”,超表必须具有时间列作为主键。[1] https://github.com/citusdata/citus?tab=readme-ov-file#creati... 回复 6Az4Mj4D 4小时前 | 上一条 [–] 对于懒人,点击查看结果 https://rtabench.com/ 回复 加入我们,参加 6 月 16-17 日在旧金山举行的 AI 初创公司学校! 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系我们 搜索:
相关文章
  • Postgres 荣登分析型数据库速度榜首 2025-03-09
  • 性能还不够 2024-03-12
  • (评论) 2024-08-23
  • 骰子数据库 2025-03-17
  • (评论) 2024-08-04

  • 原文

    A Benchmark for Real-Time Analytics Applications

    rtabench.com

    Choosing the right database for analytics is hard: there are many options, each optimized for different use cases. Benchmarks can help, but only if they reflect your actual workload.

    Common analytics benchmarks tend to represent analytics workloads as:

    • Store all data in a single, wide, denormalized table.
    • Run full-table scans or large aggregations across long time periods.
    • Are optimized for ad-hoc, exploratory queries rather than pre-defined application queries.

    This approach works well for batch processing and historical analysis, but real-time analytics inside applications requires a different perspective. Instead of analyzing large datasets retrospectively, applications generate fast, targeted insights on fresh data for specific users, devices, or transactions. This leads to three key differences:

    • Queries require joining multiple tables instead of using a single denormalized table.
    • Queries are often highly selective, filtering on specific objects and time windows.
    • Pre-aggregated views are very often used for instant responses.

    That is why we designed RTABench, to provide a benchmark that accurately reflects real-time analytics inside applications, with a normalized schema, realistic dataset sizes, and queries that match real-world usage patterns.

    RTABench uses the Clickbench framework for benchmarking, but it introduces a new dataset and query set that better represents real-time analytics inside applications. All tools, datasets, and benchmark results are available on GitHub, where we welcome contributions for expanding RTABench to support additional databases and optimizations.

    Like any benchmark, RTABench results should not be viewed as a ranking of databases, but rather as a guide to understanding which system aligns best with your real-time analytics needs.

    A Normalized Data Model That Reflects Real Applications

    RTABench is based on an application that tracks products, orders, and shipments for an online store. Instead of a single table, it follows a normalized schema that reflects how most applications store and manage data:

    • customers – stores information about people making orders.
    • products – contains product catalog information, including prices and stock levels.
    • orders – tracks orders placed by customers.
    • order_items – records which products were included in each order.
    • order_events – tracks order status changes (e.g., created, shipped, delivered).

    This multi-table schema ensures RTABench measures how well databases handle real-time analytics queries that require joins and filtering—a scenario missing from other analytics benchmarks.

    RTABench includes a dataset with ~171 million events that is large enough to run performance benchmarks without making it impractical to be used and run easily and fast.

    The benchmark also includes 1,102 customers, 9,255 products and 10,010,342 orders, ensuring RTABench can test query performance under realistic application workloads while remaining scalable for different database configurations.

    Measuring Real-Time Performance

    RTABench evaluates databases using 33 queries designed to reflect the analytics patterns commonly found in real-time applications. These queries assess query performance on normalized schemas, selective filtering, and incremental materialized views:

    • Raw event queries – Counting, filtering, and aggregating events over time. (e.g., “Count the number of ‘Departed’ shipments per day at a specific terminal.”)
    • Selective filtering – Querying specific objects and time windows to test indexing and partitioning efficiency. (e.g., “Find the last recorded status of a given order.”)
    • Multi-table joins – Fetching related data across multiple tables to simulate real-world application queries. (e.g., “Show the total revenue generated by each customer in the last 30 days.”)
    • Pre-aggregated queries – Measuring how incremental materialized views improve response times by precomputing results. (e.g., “Retrieve pre-aggregated counts of delayed shipments over the last month.”)

    By including both raw and pre-aggregated queries, RTABench ensures that databases are tested for both ad-hoc analytics and optimized real-time reporting, capturing the trade-offs between flexibility and performance.

    Database systems included

    RTABench evaluates databases that are commonly used for real-time analytics inside applications, where high-ingest rates, low-latency queries, and efficient joins are critical. Databases in the benchmark fall into three broad categories:

    • General-Purpose Databases: A transactional database that can handle many use cases and used as the primary database for an application. Most general-purpose databases, like PostgreSQL and MySQL, are capable of handling real-time analytics depending on scale and performance requirements
    • Real-Time Analytics: A database optimized for real-time analytics with support for high ingest throughput, making data instantly available, fast analytical queries and high concurrency. Specialized real-time analytics databases are often used as a secondary database for an application.
    • Batch Analytics Databases: These databases are optimized for large-scale historical analysis and batch processing, excelling at ad-hoc queries on static datasets rather than real-time, continuously updated data. Although Batch analytics databases are not designed for real-time analytics, we have included them in RTABench for developers interested in comparing their performance. Because these databases cannot serve real-time analytics, they are not the focus of this benchmark. Their results are not shown by default, as the benchmark is not targeted at them. It’s possible for a database to fall into multiple categories based on their capabilities.

    The first version of the benchmark includes the databases listed below:

    Database General-Purpose Real-Time Batch Analytics
    ClickHouse
    ClickHouse Cloud
    DuckDB
    MongoDB
    MySQL
    PostgreSQL
    PostgreSQL with TimescaleDB
    Timescale Cloud

    RTABench is an open-source benchmark, and we encourage the community to contribute by:

    • Adding new databases to expand the comparison.
    • Improving query optimizations for different systems.
    • Providing feedback on configurations to ensure fairness.

    Contributions can be made through GitHub, where all benchmark tooling, datasets, and results are publicly available.

    By using Clickbench as the underlying framework, we inherit the same rules for adding new systems and results.

    It compares analytical databases using clickstream data. This type of workload—common in web analytics, BI reporting, and log aggregation—favors single-table queries that scan large datasets to generate insights over long time ranges.

    Time Series Benchmark Suite is a benchmarking tool designed to evaluate the performance of time-series databases under realistic ingestion and query workloads.

    A benchmark that measures the performance of analytical databases using a set of ad hoc business queries on a simplified schema. It evaluates the usecase of traditional data warehouses.

    An evolution of TPC-H to provide a more realistic, complex, and comprehensive benchmark for modern decision support systems. It uses complex, business-oriented queries on large, multi-dimensional datasets. It's meant to evaluate data warehouse-like workloads (star/snowflake schema, fact/dimension tables)

    联系我们 contact @ memedata.com