Fast SQL for time series

QuestDB is the fastest open source time series database

Try QuestDB demo in your browser

Speedometer illustration with an indicator pointing to high level speed

Built for performance

  • SIMD-optimized analytics
  • Row and column based access
  • Vectorized query execution
  • Tiny memory footprint
  • C++ and zero-GC Java
See Benchmarks
Illustration of a stylized code editor with a chart that shows the result of the query

Optimized for time series

  • Relational model for time series
  • Data stored in chronological order
  • Time partitioned
  • Immediate consistency
  • Fast InfluxDB line protocol
View Tutorials
Illustration of a code editor containing a SQL statement

Implemented with SQL

  • Time series and relational joins
  • Postgres compatibility
  • Aggregations and downsampling
  • Geospatial-native queries
  • Built-in SQL optimizer
Browse Docs

Why choose QuestDB?

Query with SQL

Deploy via Docker or binaries

Interactive web console

Postgres and InfluxDB line protocols

Cloud-native or on-premises

Get Started >

Augmented SQL for time series

QuestDB enhances ANSI SQL with time series extensions to manipulate time stamped data

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;

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”

Why time series?

Interactive Console

Interactive console to import data (drag and drop) and start querying right away.

Check our Web Console documentation to get started.

Artistic view of QuestDB's Web Console split in 3 components: the navigation tree, the SQL code editor and data displayed as a chart

Join our developer community

QuestDB is open source. Follow us on Twitter, star our GitHub repo, and join our developer community on Slack!

Subscribe to our newsletter

Stay up to date with all things QuestDB