- Notifications
You must be signed in to change notification settings - Fork1.2k
QuestDB is a high performance, open-source, time-series database
License
questdb/questdb
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
English |简体中文 |繁體中文 |العربية |Italiano |Українська |Español |Português |日本語 |Türkçe |हिंदी |Tiếng Việt
QuestDB is the fastest growing open-source time-series database offeringblazingly fast, highthroughput ingestion anddynamic, low-latency SQL queries. The entire high-performancecodebase is built from the ground up in Java, C++ and Rust with no dependenciesand zero garbage collection.
We achieve high performance via a column-oriented storage model, parallelizedvector 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 SQLextensions make it simple to analyze, filter and downsample data, or tocorrelate data from multiple sources using relational and time-series joins.
Ready to go? Jump to theGet 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 orApache Parquet), partitionedand ordered by time
- Responsive and intuitive Web Console for query and data management, with errorhandling
- Excellent performance withhigh data cardinality - seebenchmarks
And why use a time-series database?
Beyond performance and efficiency, with a specializedtime-series database, youdon'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
Thelive, public demo is provisioned with the latestQuestDB 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 ar6a.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 usingourGrafana-native plugin:
- Real-time crypto trades: executedtrades on OKX from more than 20 assets in real time
- NYC taxi geolocation data: real-timereplay 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.
UseDocker to start quickly:
docker run -p 9000:9000 -p 9009:9009 -p 8812:8812 questdb/questdb
Or macOS users can use Homebrew:
brew install questdbbrew services start questdb
questdb startquestdb stop
Alternatively, to kickoff the full onboarding journey, start with our concisequick 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 SQLeditor and CSV import on port
9000
- InfluxDB Line Protocolfor streaming ingestion on port
9000
- PostgreSQL Wire Protocolfor programmatic queries on port
8812
- REST API for CSV import andcURL on port
9000
Popular tools that integrate with QuestDB include:
From streaming ingestion to visualization with Grafana, start with codescaffolds in from ourquickstart repository.
Find ourcapacity planning tofine-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 theEnterprise page for further detailsand contact information.
- QuestDB documentation: begin the journey
- Product roadmap: checkout our plan for upcoming releases
- Tutorials: learn what's possible with QuestDB,step by step
- Community Discourse forum: join technicaldiscussions, ask questions, and meet other users!
- Public Slack: chat with the QuestDB team andcommunity members
- GitHub issues: report bugs orissues with QuestDB
- Stack Overflow: look forcommon troubleshooting solutions
Contributions welcome!
We appreciate:
- source code
- documentation (see ourdocumentation 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 relevantlabelled issues
- Read thecontribution guide
- For details on building QuestDB, see thebuild instructions
- Create a forkof QuestDB and submit a pull request with your proposed changes
- Stuck? Join ourpublic Slack for assistance
✨ As a sign of our gratitude, we sendQuestDB swag to our contributors!
A big thanks goes to the following wonderful people who have contributed toQuestDBemoji key:
This project adheres to theall-contributorsspecification. Contributions of any kind are welcome!
About
QuestDB is a high performance, open-source, time-series database