What is QuestDB
QuestDB is an open-source database designed to make time-series lightning fast and easy.
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, without dependencies, in the name of performance. We are 100% free from garbage collection.
QuestDB implements SQL, and augments it for time-series. It exposes a Postgres Wire protocol, a high-performance HTTP API, and even supports ingestion with Influx 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.
Number operations per second per thread. Writes are durable and written to disk.
|Operation||64-bit double||32-bit int|
|Read||120 Million /s||240 Million /s|
|Write||240 Million /s||480 Million /s|
On a CPU with 6 memory channels, QuestDB can scan through 117GB of data per second.
Execution time on a c5.metal instance using 16 of the 96 threads available.
The easiest way to get started is with Docker:
docker pull questdb/questdb docker run -p 9000:9000 -p 8812:8812 questdb/questdb
Connecting to QuestDB
You can interact with QuestDB using:
- Web Console listening on port
- Postgres Wire, for example with PSQL
(alpha) on port
- HTTP API listening on port
Both the HTTP and PostgreSQL servers reference the database in
You can connect to the Postgres server as follows. The default password is
psql -h localhost -p 8812 -U admin -W -d qdb
Building from source
- Java 11 64-bit
- Maven 3
- Node.js 12 / NPM 6
java --version mvn --version node --version
(b) Clone the Repository
git clone firstname.lastname@example.org:questdb/questdb.git
(c) Build the Code
cd questdb mvn clean package -DskipTests
The build should take around 2 minutes. You can remove
-DskipTests to run the
3000+ unit tests. The tests take 3-5 minutes to run.
(d) Run QuestDB
# Create a database root directory and run QuestDB mkdir <root_directory> java -p core/target/core-5.0.2-SNAPSHOT.jar -m io.questdb/io.questdb.ServerMain -d <root_directory>
Complete references are available in the Documentation. There are also several guides to get started.
Support / Contact
Feel free to contribute to the project by forking the repository and submitting pull requests. Please make sure you have read our contributing guide.
Thanks to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!