QuestDB is an open-source time-series database for high throughput ingestion and fast SQL queries with operational simplicity.
QuestDB is well-suited for financial market data, IoT sensor data, application metrics, real-time dashboards, and fast analytics.
QuestDB implements ANSI SQL with native time-series SQL extensions. These SQL extensions make it simple to filter and downsample data, or correlate data from multiple sources using relational and time-series joins. We achieve high performance by adopting a column-oriented storage model, parallelized vector execution, SIMD instructions, and low-latency techniques. The entire codebase is built from the ground up in Java and C++, with no dependencies and zero garbage collection.
QuestDB supports schema-agnostic streaming ingestion using the InfluxDB line protocol and a REST API for bulk imports and exports. The QuestDB SQL Web Console is an interactive SQL editor facilitating CSV import. Finally, QuestDB also includes the Postgres Wire Protocol for programmatic queries and interoperability with various tools such as Grafana.
We provide a live demo provisioned with the latest QuestDB release and sample datasets:
- Trips: 10 years of NYC taxi trips with 1.6 billion rows
- Trades: live crypto market data with 30M+ rows per month
- Pos: geolocations of 250k unique ships over time
Our demo is running on
c5.metal instance and using 24 cores out of 96.
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 questdb start // To start questdb questdb stop // To stop questdb
The QuestDB downloads page provides direct downloads for binaries and has details for other installation and deployment methods.
QuestDB Cloud is the fully managed version of QuestDB, with additional features such as Role-based access control, Cloud-native Replication, Compression, monitoring and cloud-native snapshots. Get started with $200 credits here
Connect to QuestDB
You can interact with QuestDB using the following interfaces:
- Web Console for an interactive SQL editor and CSV import on port
- InfluxDB line protocol for streaming ingestion on port
- PostgreSQL wire protocol for programmatic queries and transactional inserts on port
- REST API for CSV import and cURL on port
Below are the official QuestDB clients for ingesting data via the InfluxDB Line Protocol:
Want to walk through everything, from streaming ingestion to visualization with Grafana? Check out our multi-path quickstart repository.
How QuestDB compares to other open source TSDBs
This article compares QuestDB to other open source time series databases spanning functionality, maturity and performance.
Here are high-cardinality
Time Series Benchmark Suite
results using the
cpu-only use case with 6 to 16 workers on 32 CPUs and 64GB RAM:
📚 Read the docs
- 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.
❓ Get support
- Community Slack: join technical discussions, ask questions, and meet other users!
- GitHub issues: report bugs or issues with QuestDB.
- Stack Overflow: look for common troubleshooting solutions.
🚢 Deploy QuestDB
We welcome contributions to the project, whether source code, documentation, bug reports, feature requests or feedback. To get started with contributing:
- Have a look through GitHub issues labelled "Good first issue".
- For Hacktoberfest, see the relevant labelled issues
- 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 adheres to the all-contributors specification. Contributions of any kind are welcome!