Favicon of QuestDB

QuestDB

QuestDB is an open-source time-series database with a column-oriented, time-partitioned storage engine and SIMD-vectorized execution, extending SQL with time-series operators like SAMPLE BY and ASOF JOIN.

LicenseOpen source (permissive)· Apache-2.0
DeploymentSelf-hostedManagedHybrid
PricingFreeSubscription
Operational complexityLow
WorkloadInteractiveStreaming
LanguageJava, C++, Rust

Use it when

  • High-rate time-series ingest (market data, sensors, metrics) must stay queryable at millisecond latency.
  • SQL is the requirement, but with time-series done properly: SAMPLE BY, LATEST ON, and ASOF and WINDOW joins.
  • Predictable tail latency matters more than peak throughput.
  • PostgreSQL wire compatibility should keep existing drivers working.

Think twice when

  • Row deletes and TTLs are needed; individual rows cannot be deleted, only partitions dropped.
  • Scale-out is the plan; the open-source server is single-node, with replication and tiering reserved for Enterprise.
  • Queries filter heavily on columns that are neither symbols nor time; only SYMBOL columns carry an index, so those queries scan.
  • The wider job is general analytics; ClickHouse and TimescaleDB cover broader ground.

How it runs

A single self-hosted node: ILP over HTTP or TCP ingests through a write-ahead log, PostgreSQL wire and REST serve queries, and storage is memory-mapped, time-partitioned columns. Materialized views refresh incrementally on insert. Enterprise adds replication via object-store WAL and Parquet tiering; QuestDB Cloud is managed.

Details

Compare

How QuestDB answers the questions OLAP Engines turns on.

OLAP Engines
How it works
SpecializationTime-series database built for high-rate ingest and market data
SQL dialectSQL with time-series extensions; PostgreSQL wire
JoinsStandard joins plus ASOF, LT, SPLICE and WINDOW time joins
Updates and deletesUPDATE and dedup upserts; no row DELETE, drop partitions or TTL
Ingest to queryableSub-second: ILP writes commit through the WAL and become visible
Storage formatOwn column files, time-partitioned; reads Parquet (beta)
Compute and storageSingle node; Enterprise replicates via object-store WAL, tiers Parquet
IndexesSYMBOL columns only: bitmap or posting index; partitions prune by time
Pre-aggregationMaterialized views on SAMPLE BY, refreshed incrementally on insert
Running it
Concurrent usersModerate: one node's worker pools; Enterprise adds read replicas

Share:

Alternatives to QuestDB

Favicon

 

  
  
Favicon

 

  
  
Favicon