QuestDB
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.
Try QuestDB
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.
Connecting to QuestDB
You can interact with QuestDB using the following interfaces:
- Web Console listening on
port9000
- REST API on port
9000
- PostgreSQL wire protocol on
port8812
- InfluxDB line protocol for
high-throughput ingestion on port9009
How QuestDB compares to other open source TSDBs
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 |
Documentation & resources
- The QuestDB documentation describes
how to run and configure QuestDB with technical references. - Our Slack workspace is a great place for technical
discussions and to meet other users. :wave: - GitHub discussions is where
our users share ideas for features, ask questions, and show what they've
built. - GitHub issues are for bug
reports. - Our project roadmap contains
our backlog and a list of tasks for upcoming releases. - Tutorials written by our community members
show what's possible with QuestDB. - QuestDB on Stack Overflow
has common troubleshooting solutions.
Deployment
- An AWS AMI is provided via
the AWS marketplace. - The Docker deployment guide
shows how to start using the official Docker image. - DigitalOcean droplets can be
launched as 1-Click applications on the DigitalOcean marketplace. - Basic Kubernetes documentation
describes how to get started using the official Helm chart.
Contribute
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'll send contributors some of our QuestDB swag
such as stickers and t-shirts! :star2:
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!