English | 简体中文 | 繁體中文 | العربية | Italiano | Українська | Español | Português | 日本語 | Türkçe | हिंदी | Tiếng Việt
QuestDB is the fastest growing open-source time-series database offering blazingly fast, high throughput ingestion and dynamic, low-latency SQL queries. The entire high-performance codebase is built from the ground up in Java, C++ and Rust with no dependencies and zero garbage collection.
We achieve high performance via a column-oriented storage model, parallelized vector execution, SIMD instructions, and low-latency techniques. In addition, QuestDB is hardware efficient, with quick setup and operational efficiency.
QuestDB implements ANSI SQL with native time-series SQL extensions. These SQL extensions make it simple to analyze, filter and downsample data, or to correlate data from multiple sources using relational and time-series joins.
Ready to go? Jump to the Get started section.
QuestDB excels with:
- financial market data
- IoT sensors with high data cardinality
- real-time dashboards
Feature highlights include:
- SQL with powerful, SIMD-optimized time-series extensions
- High-speed ingestion via the InfluxDB Line Protocol
- Strong and efficient performance on limited hardware
- Columnar storage format (native or Apache Parquet), partitioned and ordered by time
- Responsive and intuitive Web Console for query and data management, with error handling
- Excellent performance with high data cardinality - see benchmarks
And why use a time-series database?
Beyond performance and efficiency, with a specialized time-series database, you don't need to worry about:
- out-of-order data
- duplicates
- exactly one semantics
- streaming data (low latency)
- high volumes of concurrent requests
- volatile and "bursty" data
- adding new columns - change schema "on the fly" while streaming data
The live, public demo is 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
Use example queries or write your own!
The public demo queries over 1.6BN rows and uses a r6a.12xlarge
48 vCPU and 348GB RAM instance.
Query | Execution time |
---|---|
SELECT sum(double) FROM trips |
0.15 secs |
SELECT sum(double), avg(double) FROM trips |
0.5 secs |
SELECT avg(double) FROM trips WHERE time in '2019' |
0.02 secs |
SELECT time, avg(double) FROM trips WHERE time in '2019-01-01' SAMPLE BY 1h |
0.01 secs |
SELECT * FROM trades LATEST ON timestamp PARTITION BY symbol |
0.00025 secs |
We also have some public, real-time demo dashboards using our Grafana-native plugin:
- Real-time crypto trades: executed trades on OKX from more than 20 assets in real time
- NYC taxi geolocation data: real-time replay of 146,393,317 taxi rides across New York City in 2016
QuestDB performs very well in performance benchmarks compared to alternatives.
For deep dives into internals and performance, see the following blog posts:
As always, we encourage you to run your own benchmarks.
Use Docker to start quickly:
docker run -p 9000:9000 -p 9009:9009 -p 8812:8812 questdb/questdb
Or macOS users can use Homebrew:
brew install questdb
brew services start questdb
questdb start
questdb stop
Alternatively, to kickoff the full onboarding journey, start with our concise quick start guide.
QuestDB clients for ingesting data via the InfluxDB Line Protocol:
Interact with QuestDB and your data via the following interfaces:
- Web Console for an interactive SQL
editor and CSV import on port
9000
- InfluxDB Line Protocol
for streaming ingestion on port
9000
- PostgreSQL Wire Protocol
for programmatic queries on port
8812
- REST API for CSV import and
cURL on port
9000
Popular tools that integrate with QuestDB include:
From streaming ingestion to visualization with Grafana, start with code scaffolds in from our quickstart repository.
Find our capacity planning to fine-tune QuestDB for production workloads.
For secure operation at greater scale or within larger organizations.
Additional features include:
- multi-primary ingestion
- read replica(s)
- cold storage integration
- role-based access control
- TLS encryption
- native querying of Parquet files via object storage
- support SLAs, enhanced monitoring and more
Visit the Enterprise page for further details and contact information.
- QuestDB documentation: begin the journey
- Product roadmap: check out our plan for upcoming releases
- Tutorials: learn what's possible with QuestDB, step by step
- Community Discourse forum: join technical discussions, ask questions, and meet other users!
- Public Slack: chat with the QuestDB team and community members
- GitHub issues: report bugs or issues with QuestDB
- Stack Overflow: look for common troubleshooting solutions
Contributions welcome!
We appreciate:
- source code
- documentation (see our documentation repository)
- 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
- Stuck? Join our public Slack for assistance
✨ As a sign of our gratitude, we send QuestDB swag to our contributors!
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!