QuestDB is an open-source SQL database designed to process time-series data, faster.
- Website
- https://questdb.com/[01]
- Source Code
- https://github.com/questdb/questdb[02]
- Tech Docs
- https://questdb.com/docs/[03]
- Developer
- Country of Origin
- GB
- Start Year
- 2014 [04]
- Project Types
- Commercial, Open Source
- Inspired By
- Kdb+
- Compatible With
- InfluxDB, PostgreSQL
- License
- Apache v2
It uses a column-oriented approach, vectorized execution, SIMD instructions, and a whole array of low-latency techniques. The whole code base is built from scratch and without dependencies, in the name of performance. QuestDB is 100% free from garbage collection.
QuestDB implements SQL, and augments it for time-series. It exposes a Postgres wire protocol, a high-performance REST API, and even supports ingestion with InfluxDB line protocol. It supports both relational and time-series joins, which makes it easy to correlate data over time. Writes are durably committed to disk, meaning that the data is safe - yet instantly accessible.
QuestDB is an open-source SQL database designed to process time-series data, faster.
It uses a column-oriented approach, vectorized execution, SIMD instructions, and a whole array of low-latency techniques. The whole code base is built from scratch and without dependencies, in the name of performance. QuestDB is 100% free from garbage collection.
QuestDB implements SQL, and augments it for time-series. It exposes a Postgres wire protocol, a high-performance REST API, and even supports ingestion with InfluxDB line protocol. It supports both relational and time-series joins, which makes it easy to correlate data over time. Writes are durably committed to disk, meaning that the data is safe - yet instantly accessible.
History[04]
QuestDB was born as a side project from Vlad Ilyushchenko who applied principles from low latency techniques found in the financial services industry. QuestDB is backed by YCombinator and its recent Hacker News launch goes through the story of QuestDB since 2013.
Concurrency Control[05]
QuestDB uses a single writer model. The writer re-orders timestamps on the fly. Multi-publisher, single consumer queue provides concurrent write access.
Indexes[07]
Indexing is available for symbol columns. Index support for other types will be added over time.
Joins[08]
QuestDB supports the following types of joins: INNER, OUTER, CROSS, ASOF and SPLICE. FULL joins are not yet implemented and are on our roadmap. All supported join types can be combined in a single SQL statement.
Query Interface[10]
QuestDB enhances ANSI SQL with time series extensions to manipulate time stamped data.
Storage Model[06]
QuestDB uses a column-based storage model. Data is stored in tables with each column stored in its own file and its own native format. New data is appended to the bottom of each column to allow data to be organically retrieved in the same order that it was ingested.
Citations
11 sources- QuestDB | Low-latency time-series database on open formats questdb.com
- GitHub - questdb/questdb: QuestDB is a high performance, open-source, time-series database · GitHub github.com
- QuestDB Documentation - SQL Time-Series Database Guides | QuestDB questdb.com
- Initial commit github.com
- Architecture Overview | QuestDB questdb.com
- Architecture Overview | QuestDB questdb.com
- Indexes | QuestDB questdb.com
- JOIN keyword | QuestDB questdb.com
- Aggregating billions of rows per second with SIMD | QuestDB questdb.com
- https://questdb.com/docs/concept/sql-execution-order questdb.com
- Architecture Overview | QuestDB questdb.com