Peak time-series performancePeaktime-seriesperformance
QuestDB is the open-source time-series database for demanding workloads—from trading floors to mission control. It delivers ultra-low latency, high ingestion throughput, and a multi-tier storage engine. Native support for Parquet and SQL keeps your data portable, AI-ready—no vendor lock-in.
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)SELECTtimestamp, symbol,first(price) AS open,max(price) as high,min(price) as low,last(price) AS close,sum(amount) AS volumeFROM tradesWHERE timestamp IN today()SAMPLE BY 1m FILL(PREV);
-- Streaming Materialized ViewsCREATE MATERIALIZED VIEW 'bbo_1s'REFRESH IMMEDIATE AS (SELECT timestamp, symbol,last(bids[1][1]) AS bid,last(asks[1][1]) AS askFROM market_dataSAMPLE BY 1s) PARTITION BY DAY TTL 1 DAY;
-- Multi-Dimensional ArraysSELECT timestamp,array_sum(bids[2][1:4]) bid_vol,array_sum(asks[2][1:4]) ask_vol,bid_vol / ask_vol ratioFROM market_dataWHEREtimestamp > dateadd('h', -1, now())AND symbol='EURUSD';
-- ASOF JOIN (Time-Bounded)SELECT symbol,asks.price - bids.price as spreadFROM asksASOF JOIN bidsON symbolTOLERANCE 1sWHEREasks.timestamp IN today();
LLMs speak SQL.
Your database should too.
Trained on billions of SQL statements, supercharge AI with our REST API in minutes.
QuestDB leaps forward
Scale fast.
Stay open.
Hot ingest for live analytics; Parquet archives for long-term insight. Open formats on object storage cut costs and end lock-in, while dataframe libraries and engines run natively on the data. AI-ready by design: standard SQL and REST API make prompt-to-query copilots work out of the box.
Tier One: Hot ingest (WAL), durable by default
Incoming data is appended to the write-ahead log (WAL) with ultra-low latency. Writes are made durable before any processing, preserving order and surviving failures without data loss. The WAL is asynchronously shipped to object storage, so new replicas can bootstrap quickly and read the same history.
Tier Two: Real-time SQL on live data
Data is time-ordered and de-duplicated into QuestDB's native, time-partitioned columnar format and becomes immediately queryable. Power real-time analysis with vectorized, multi-core execution, streaming materialized views, and time-series SQL (e.g., ASOF JOIN, SAMPLE BY). The query planner spans tiers seamlessly.
Tier Three: Cold storage, open and queryable
Older data is automatically tiered to object storage in Apache Parquet. Query it in-place through QuestDB or use any tool that reads Parquet. This delivers predictable costs, interoperability with AI/ML tooling, and zero lock-in.
Capital Markets
Powering Brazil's leading stock exchange
- High performance: Engineered to capture terabytes of data per day with sub-millisecond query capabilities
- Cloud-native architecture: Seamlessly integrates with microservices in cloud environments with 99.9% uptime guarantee
- Open standards: Supports SQL queries and open formats like Parquet and Iceberg for historical data storage
"Our CSD platform demands exceptional performance, security, and resilience for real-time data. We chose QuestDB for its speed and straightforward deployment, which fits cleanly into our cloud-native architecture."
Explore our live demo
Our live demo instance is the quickest way to get a feel for QuestDB. Scan more than 2 billion rows in milliseconds. Example queries can get you deep in just a few clicks.
/* This query takes the best bid price and multiplies it by 1.01. Then it finds the level at which that price would be met inside the prices array. We slide the volume array from the first level until the level we found, and sum all the volumes. Note the use of DECLARE to make the query more readable. */
DECLARE@prices := asks[1],@volumes := asks[2],@best_price := @prices[1],@multiplier := 1.01,@target_price := @multiplier * @best_price,@rel_vol := @volumes[1:insertion_point(@prices, @target_price)]SELECT timestamp, array_sum(@rel_vol) total_volumeFROM market_dataWHERE timestamp > dateadd('m', -1, now())AND symbol='EURUSD';
Open formats, no vendor lock-in
Delete proprietary, commit open
Peak performance time-series
Hyper ingestion
Using QuestDB, we deliver real-time market data from a top 10 blockchain. This outperforms a legacy cloud-based data platform at a fraction of the cost, reducing TCO by more than 90%.

QuestDB for Capital Markets
Built for tick data, trades, order books, and OHLC-with nanosecond timestamps, ASOF joins, arrays, and materialized views. Query years of history in milliseconds with standard SQL.
QuestDB is an essential part of our trading platform—giving us a high-speed, scalable store for billions of trades that we can query in real time to power both customer-facing features and internal systems.

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.