Why QuestDB?

QuestDB is an open source time-series database with a multi-tier storage engine for scale and low-latency analytics for the most demanding time-series workloads. It is built on open formats such as Parquet to avoid vendor lock-in.

Ready to try it? Jump to the quick start.

When to use QuestDB

QuestDB is designed for workloads that require:

  • Continuous ingestion of time-stamped data — financial tick data, sensor readings, events
  • Fast time-based queries — dashboards, real-time analytics, downsampling, high QPS
  • Efficient petabyte-scale storagemulti-tier architecture with long-term storage in Parquet files
  • SQL, not a new query language — standard SQL with time-series extensions
  • Hardware efficiency — get more from less infrastructure
  • Capital markets and crypto capabilitiesN-dimensional arrays, order book analytics, OHLC charts, advanced post-trade analysis, ultra-low latency architecture, and a strong customer base in financial services

Common use cases

DomainExamples
Capital marketsMarket data, tick-by-tick analysis, pre and post trade analytics
BankingRetail banking analytics, fraud detection, transaction monitoring
AerospaceFlight telemetry, satellite monitoring, rocket engine simulations
EnergyGrid monitoring, anomaly detection, power generation forecasting

What makes QuestDB fast

Ingestion performance

QuestDB ingests millions of rows per second on commodity hardware.

A chart showing high-cardinality ingestion performance of InfluxDB, TimescaleDB, and QuestDB
Results for QuestDB 9.1.0, Timescale 2.22.1, InfluxDB 2.7.12, and Clickhouse 25.10.1.1486

On a Raspberry Pi 5, QuestDB ingests ~270,000 rows per second.

Built-in handling for real-world data

Time-series data is messy. QuestDB handles it automatically:

  • Out-of-order data — late-arriving records are merged efficiently
  • Deduplication — duplicates are detected and handled at ingestion
  • High cardinality — millions of unique series without performance degradation

SQL with time-series extensions

No proprietary query language. Use SQL you already know, extended for time-series:

OHLC aggregation with SAMPLE BYDemo this query
SELECT
timestamp, symbol,
first(price) AS open,
last(price) AS close,
min(price),
max(price),
sum(amount) AS volume
FROM trades
WHERE timestamp > dateadd('d', -1, now())
SAMPLE BY 15m;

Key extensions:

  • SAMPLE BY — aggregate by time buckets (1 minute, 1 hour, 1 day, etc.)
  • LATEST ON — get the most recent value per series
  • ASOF JOIN — join time-series by closest timestamp
  • Materialized Views — pre-compute aggregations automatically

When QuestDB might not be the right fit

QuestDB is optimized for time-series. Consider alternatives if:

  • You need general-purpose OLTP — frequent updates, deletes, complex transactions → PostgreSQL
  • Your data isn't time-series — no timestamp column, no time-based queries → traditional RDBMS
  • You need full-text search — log text searching → Elasticsearch or Loki

Get started

The quick start gets you running in minutes.

Choose a client library to start ingesting:

C & C++

High-performance client for systems programming and embedded applications.

Read more

C & C++ logo

.NET

Cross-platform client for building applications with .NET technologies.

Read more

.NET logo

Go

An open-source programming language supported by Google with built-in concurrency.

Read more

Go logo

Java

Platform-independent client for enterprise applications and Android development.

Read more

Java logo

Node.js

Node.js® is an open-source, cross-platform JavaScript runtime environment.

Read more

Node.js logo

Python

Python is a programming language that lets you work quickly and integrate systems more effectively.

Read more

Python logo

Rust

Systems programming language focused on safety, speed, and concurrency.

Read more

Rust logo

Or explore more:

Support

We're happy to help: