High performance time series database

Superior developer experience with SQL and time series extensions. Speed and reliability to solve ingestion speed bottlenecks.

Get QuestDB

Performance

  • Ingest 2M rows/s per node
  • Up to 10x faster writes vs InfluxDB
  • Don’t worry about cardinality
  • Columnar storage
  • Data partitioned by time
  • SIMD-optimized queries
See Benchmarks

Developer experience

  • Open source under Apache 2.0
  • Built-in SQL optimizer & REST API
  • PostgreSQL driver compatibility
  • InfluxDB Line Protocol API
  • SQL and time-series joins
  • Grafana integration
See live demo

Enterprise ready

  • Cloud & on-prem
  • Hot & cold read replicas
  • Role-based access control
  • Multiple availability zones
  • Data compression
  • Enterprise support SLA
See Enterprise

Try the live demo

Query over 2 billion rows in milliseconds in the QuestDB Web Console using SQL

Try QuestDB demo in your browser

See query results  >

Augmented SQL for time series data

ANSI SQL time series extensions made for time stamped data

Arrow up icon
SELECT timestamp, tempC
FROM sensors
WHERE timestamp IN '2021-05-14;1M';
-- Search time
SELECT timestamp, tempC
FROM sensors
WHERE timestamp IN '2021-05-14;1M';
SELECT timestamp, avg(tempC)
FROM sensors
SAMPLE BY 5m;
-- Slice time
SELECT timestamp, avg(tempC)
FROM sensors
SAMPLE BY 5m;
SELECT timestamp, sensorName, tempC
FROM sensors
LATEST ON timestamp PARTITION BY sensorName;
-- Navigate time
SELECT timestamp, sensorName, tempC
FROM sensors
LATEST ON timestamp PARTITION BY sensorName;
SELECT sensors.timestamp ts, rain1H
FROM sensors
ASOF JOIN weather;
-- Merge time
SELECT sensors.timestamp ts, rain1H
FROM sensors
ASOF JOIN weather;
Arrow up icon

Magnifying glass iconSearch Time

Filter and search for specific timestamps with “WHERE”

Knife iconSlice Time

Create time buckets and aggregate by intervals with “SAMPLE BY”

Indication arrow iconNavigate Time

Search time series from most recent values to oldest with “LATEST ON”

Two overlapping squaresMerge Time

Join two tables based on timestamp where timestamps do not exactly match with “ASOF JOIN”

Transform data into value

Perfect for time series data

Time series data appears in tremendous volume through massive bursts or continuous streams. It often contains sensitive timestamps and very high data cardinality, with many unique values per column. To best handle the nuances of time series data, you need a specialized time series database.

During ingestion, take advantage of features like high-volume ingest, out-of-order indexing and deduplication.

Chart showing Bitcoin price moving average

What our users say about QuestDB

Arrow left icon
Arrow right icon