QuestDB is a high-performance, open-source SQL database for applications in financial services, IoT, machine learning, DevOps and observability. It includes endpoints for PostgreSQL wire protocol, high-throughput schema-agnostic ingestion using InfluxDB Line Protocol, and a REST API for queries, bulk imports, and exports.
QuestDB implements ANSI SQL with native extensions for time-oriented language features. These extensions make it simple to correlate data from multiple sources using relational and time series joins. QuestDB achieves high performance from a column-oriented storage model, massively-parallelized vector execution, SIMD instructions, and various low-latency techniques. The entire codebase was built from the ground up in Java and C++, with no dependencies, and is 100% free from garbage collection.
We provide a live demo provisioned with the latest QuestDB release and a 1.6 billion row dataset with 10 years of NYC taxi trips to query.
To run QuestDB, Docker can be used to get started quickly:
docker run -p 9000:9000 -p 9009:9009 -p 8812:8812 questdb/questdb
macOS users can use Homebrew:
brew install questdb
brew services start questdb
The QuestDB downloads page provides direct downloads for binaries and has details for other installation and deployment methods.
You can interact with QuestDB using the following interfaces:
- Web Console listening on
port
9000
- REST API on port
9000
- PostgreSQL wire protocol on
port
8812
- InfluxDB line protocol for
high-throughput ingestion on port
9009
Here are high-cardinality
Time Series Benchmark Suite
results using the cpu-only
use case with 6 workers on an AMD Ryzen 3970X:
The following table shows query execution time of a billion rows run on a
c5.metal
instance using 16 of the 96 threads available:
Query | Runtime |
---|---|
SELECT sum(double) FROM 1bn |
0.061 secs |
SELECT tag, sum(double) FROM 1bn |
0.179 secs |
SELECT tag, sum(double) FROM 1bn WHERE timestamp in '2019' |
0.05 secs |
- QuestDB documentation: understand how to run and configure QuestDB.
- Tutorials: learn what's possible with QuestDB step by step.
- Product roadmap: check out our plan for upcoming releases.
- Community Slack: join technical discussions, ask questions, and meet other users!
- GitHub issues: report bugs or issues with QuestDB.
- GitHub discussions: propose new features or show what you've built.
- Stack Overflow: look for common troubleshooting solutions.
We are always happy to have contributions to the project whether it is source code, documentation, bug reports, feature requests or feedback. To get started with contributing:
- Have a look through GitHub issues labeled "Good first issue".
- Read the contribution guide.
- For details on building QuestDB, see the build instructions.
- Create a fork of QuestDB and submit a pull request with your proposed changes.
✨ As a sign of our gratitude, we also send QuestDB swag to our contributors. Claim your swag here.
A big thanks goes to the following wonderful people who have contributed to QuestDB: (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!