Scans and aggregations over billions of rows
Queries that read a few columns from a very large table, filter them and group the result, such as revenue by country by day.
What it asks of a system
An analytical query touches a small number of columns but a huge number of rows: a GROUP BY over a year of orders, a funnel over a billion page views, a join of a fact table with a few dimension tables. A system built for this stores each column on its own, so a query reads only the columns it names, and it compresses those columns well because the values in one column look alike. It splits the scan across every core, and often every machine, and skips whole blocks of data whose minimum and maximum values can’t match the filter.
To tell whether a system really handles it, look at how it lays data out (columnar files or row pages), whether it can skip data by time or sort key without reading it, and whether it adds more machines to one query or only to more queries. Test with your own data at full size: a query that is fast on ten million rows can still be slow on ten billion if the engine has to read every row or shuffle the whole table between nodes for a join.
Good at it · 31
Compare side by sideRelational databases
CedarDBCommercialFresh rows are folded into compressed columnar blocks, and each query runs as compiled code on every core.A PostgreSQL-compatible database rebuilt from scratch at TU Munich, running transactions and analytics on one copy of the data on a single server.Query engines
Amazon AthenaAWSRuns Trino-based SQL straight over files in S3; partitioned, compressed Parquet cuts the bytes each query reads.AWS’s serverless SQL engine for data in S3: no cluster to run, and on-demand queries cost $5 per TB scanned.
GizmoSQLOpen sourceShares one DuckDB engine with many network clients and sends results as Arrow columns, so BI tools get columnar scans without row conversion.A database server that wraps DuckDB (or SQLite) and serves it to many clients over Arrow Flight SQL, with TLS and authentication.
SailOpen sourceRuns Spark SQL and DataFrame plans on DataFusion over Arrow batches, on all cores of one machine or across worker pods on Kubernetes.A Spark Connect server written in Rust on Apache DataFusion: your PySpark code connects to it as if it were Spark, and it runs the queries without a JVM, on one machine or on Kubernetes.Data warehouses
DatabendOpen sourceA vectorized pipeline engine runs across stateless nodes and prunes Parquet blocks with min/max and bloom filter indexes before reading them.A cloud data warehouse written in Rust that keeps every table as Parquet blocks and Git-like snapshots in object storage, so stateless compute clusters can start, scale and stop without moving data. Open core: Apache 2.0, with paid features under the Elastic License 2.0.
MotherDuckCommercialDuckDB in the cloud with a Duckling per user, and dual execution runs S3 scans in MotherDuck’s region instead of over your laptop’s link.A serverless cloud data warehouse built on DuckDB, where one query can run partly on your laptop and partly in the cloud.Real-time analytics databases
PivotOpen sourceSoft-sorted, compacted Parquet files prune well on min/max statistics, and late materialization reads wide columns only for surviving rows.A young open-source analytics server in Rust that speaks the PostgreSQL protocol and queries Iceberg and Delta Lake tables straight from object storage.
StarRocksOpen sourceMPP with vectorized operators and a cost-based optimizer, shuffling rows between nodes so big joins and high-cardinality `GROUP BY` share the work.An open-source MPP analytical database with a vectorized engine that serves fast joins and real-time updates on its own tables, and also queries Iceberg, Hudi, Delta Lake and Hive tables in place.Sources
- ClickHouse docs: What is ClickHouse? (OLAP, column-oriented storage, billions of rows)
- Apache Druid docs: Introduction (columnar storage, time partitioning)
- BigQuery docs: Storage overview (columnar storage)
- Trino docs: Trino concepts (coordinator, workers, stages, splits)
Why each technology is listed comes from the sources on its own page.