The Fastest Time-Series Database | QuestDB

New: QuestDB Agent Skills for AI coding agents

New: QuestDB Agent Skills

Try it out

Ultra-low latency

  • SIMD-accelerated SQL queries
  • Multi-threaded engine
  • Ingest 8M rows/s per server
See use cases

Open architecture

  • Parquet + SQL — no lock-in
  • Postgres protocol compatible
  • Apache 2.0 open source
See architecture

Ready for scale

  • Petabyte-scale tiered storage
  • Multi-AZ resilience
  • Instant scale-out
See Enterprise

Standard SQL. No lock-in.

Developer friendly, easy-to-write SQL

-- Time-bucketing (SAMPLE BY)

SELECT

timestamp, symbol,

first(price) AS open,

max(price) as high,

min(price) as low,

last(price) AS close,

sum(amount) AS volume

FROM trades

WHERE timestamp IN today()

SAMPLE BY 1m FILL(PREV);

-- Streaming Materialized Views

CREATE MATERIALIZED VIEW 'bbo_1s'

REFRESH IMMEDIATE AS (

SELECT timestamp, symbol,

last(bids[1][1]) AS bid,

last(asks[1][1]) AS ask

FROM market_data

SAMPLE BY 1s

) PARTITION BY DAY TTL 1 DAY;

-- Multi-Dimensional Arrays

SELECT timestamp,

array_sum(bids[2][1:4]) bid_vol,

array_sum(asks[2][1:4]) ask_vol,

bid_vol / ask_vol ratio

FROM market_data

WHERE

timestamp > dateadd('h', -1, now())

AND symbol='EURUSD';

-- ASOF JOIN (Time-Bounded)

SELECT symbol,

asks.price - bids.price as spread

FROM asks

ASOF JOIN bids

ON symbol

TOLERANCE 1s

WHERE

asks.timestamp IN today();

Arrow up icon

Time-bucketing (SAMPLE BY)

Resample to fixed intervals; downsample; fill gaps with FILL (prev/linear/constant/none).

Streaming Materialized Views

Continuously compute OHLC bars and other rollups; REFRESH IMMEDIATE keeps dashboards live.

Multi-Dimensional Arrays

Compact 2D arrays for order-book snapshots; vectorized ops for depth/imbalance analytics.

As-of join (time-bounded)

Align each row to the latest event at or before its timestamp (ASOF JOIN … TOLERANCE).

LLMs speak SQL.
Your database should too.

From LLMs to coding agents — standard SQL means any AI can query QuestDB out of the box. Add our agent skills and build complete data pipelines in minutes.

One SQL engine, multiple storage tiers.

Scale fast.
Stay open.

Query QuestDB's native format on local storage and Parquet files on object storage simultaneously, all through a single SQL query. Data tiers automatically without manual intervention. Open formats eliminate lock-in while dataframe libraries and AI frameworks connect natively.

WHERE symbol in ('AAPL', 'NVDA')

LATEST ON timestamp PARTITION BY symbol

CREATE MATERIALIZED VIEW 'trades_OHLC'

SELECT spread_bps(bids[1][1], asks[1][1])

FROM read_parquet('trades.parquet')

Use QuestDB with the tools you love

Simple connections with clients, brokers, data-feeds, and much more.

Ready to upgrade?

Our team is here to help you scale. We're happy to offer live demos, chat about your case, and answer any questions.