The Fastest Time-Series Database | QuestDB
New: QuestDB Agent Skills for AI coding agents
New: QuestDB Agent Skills
Try it outUltra-low latency
- SIMD-accelerated SQL queries
- Multi-threaded engine
- Ingest 8M rows/s per server
Open architecture
- Parquet + SQL — no lock-in
- Postgres protocol compatible
- Apache 2.0 open source
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();
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.