Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/questdb/questdb

QuestDB is an open source time-series database for fast ingest and SQL queries
https://github.com/questdb/questdb

analytics big-data cpp database financial-analysis grafana hacktoberfest iot java low-latency postgres postgresql questdb simd sql time-series time-series-database tsdb

Last synced: 4 days ago
JSON representation

QuestDB is an open source time-series database for fast ingest and SQL queries

Awesome Lists containing this project

README

        


QuestDB Logo

 



QuestDB open source contributors


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](#get-started) section.

 



QuestDB Web Console showing a SQL statement and query result

QuestDB Web Console - click to launch demo


 

## Benefits of QuestDB

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](https://questdb.io/glossary/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](https://questdb.io/glossary/high-cardinality/) - see
[benchmarks](#questdb-performance-vs-other-oss-databases)

And why use a time-series database?

Beyond performance and efficiency, with a specialized
[time-series database](https://questdb.io/glossary/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

## Try QuestDB, demo and dashboards

The [live, public demo](https://demo.questdb.io/) 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](https://demo.questdb.io/?query=SELECT%20*%20FROM%20trades%20LATEST%20ON%20timestamp%20PARTITION%20BY%20symbol;&executeQuery=true) |

We also have some public, real-time demo dashboards using
our [Grafana-native](https://questdb.io/docs/third-party-tools/grafana/) plugin:

- [Real-time crypto trades:](https://questdb.io/dashboards/crypto/) executed
trades on OKX from more than 20 assets in real time
- [NYC taxi geolocation data:](https://questdb.io/dashboards/taxi/) real-time
replay of 146,393,317 taxi rides across New York City in 2016

### QuestDB performance vs. other oss databases

QuestDB performs very well in performance benchmarks compared to alternatives.

For deep dives into internals and performance, see the following blog posts:

- [QuestDB vs InfluxDB](https://questdb.io/blog/2024/02/26/questdb-versus-influxdb/)
- [QuestDB vs TimescaleDB](https://questdb.io/blog/timescaledb-vs-questdb-comparison/)
- [QuestDB vs MongoDB](https://questdb.io/blog/mongodb-time-series-benchmark-review/)

As always, we encourage you to run your own benchmarks.


A chart comparing the ingestion rate of QuestDB, InfluxDB and TimescaleDB.

## Get started

Use [Docker](https://www.docker.com/) to start quickly:

```bash
docker run -p 9000:9000 -p 9009:9009 -p 8812:8812 questdb/questdb
```

Or macOS users can use Homebrew:

```bash
brew install questdb
brew services start questdb
```

```bash
questdb start
questdb stop
```

Alternatively, to kickoff the full onboarding journey, start with our concise
[quick start guide](https://questdb.io/docs/quick-start/).

### First-party ingestion clients

QuestDB clients for ingesting data via the InfluxDB Line Protocol:

- [Python](https://questdb.io/docs/clients/ingest-python/)
- [.NET](https://questdb.io/docs/clients/ingest-dotnet/)
- [C/C++](https://questdb.io/docs/clients/ingest-c-and-cpp/)
- [Go](https://questdb.io/docs/clients/ingest-go/)
- [Java](https://questdb.io/docs/clients/java_ilp/)
- [NodeJS](https://questdb.io/docs/clients/ingest-node/)
- [Rust](https://questdb.io/docs/clients/ingest-rust/)

### Connect to QuestDB

Interact with QuestDB and your data via the following interfaces:

- [Web Console](https://questdb.io/docs/web-console/) for an interactive SQL
editor and CSV import on port `9000`
- [InfluxDB Line Protocol](https://questdb.io/docs/reference/api/ilp/overview/)
for streaming ingestion on port `9000`
- [PostgreSQL Wire Protocol](https://questdb.io/docs/reference/api/postgres/)
for programmatic queries on port `8812`
- [REST API](https://questdb.io/docs/reference/api/rest/) for CSV import and
cURL on port `9000`

### Popular third-party tools

Popular tools that integrate with QuestDB include:

- [Apache Kafka](https://questdb.io/docs/third-party-tools/kafka/questdb-kafka/)
- [Grafana](https://questdb.io/docs/third-party-tools/grafana/)
- [Superset](https://questdb.io/docs/third-party-tools/superset/)
- [Telegraf](https://questdb.io/docs/third-party-tools/telegraf/)
- [Apache Flink](https://questdb.io/docs/third-party-tools/flink/)
- [qStudio](https://questdb.io/docs/third-party-tools/qstudio/)
- [MindsDB](https://questdb.io/docs/third-party-tools/mindsdb/)

### End-to-end code scaffolds

From streaming ingestion to visualization with Grafana, start with code
scaffolds in from our
[quickstart repository](https://github.com/questdb/questdb-quickstart).

### Configure QuestDB for production workloads

Find our
[capacity planning](https://questdb.io/docs/deployment/capacity-planning/) to
fine-tune QuestDB for production workloads.

### QuestDB Enterprise

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](https://questdb.io/enterprise/) for further details
and contact information.

## Additional resources

### 📚 Read the docs

- [QuestDB documentation:](https://questdb.io/docs/) begin the journey
- [Product roadmap:](https://github.com/orgs/questdb/projects/1/views/5) check
out our plan for upcoming releases
- [Tutorials:](https://questdb.io/tutorial/) learn what's possible with QuestDB,
step by step

### ❓ Get support

- [Community Discourse forum:](https://community.questdb.io/) join technical
discussions, ask questions, and meet other users!
- [Public Slack:](https://slack.questdb.io/) chat with the QuestDB team and
community members
- [GitHub issues:](https://github.com/questdb/questdb/issues) report bugs or
issues with QuestDB
- [Stack Overflow:](https://stackoverflow.com/questions/tagged/questdb) look for
common troubleshooting solutions

### 🚢 Deploy QuestDB

- [AWS AMI](https://questdb.io/docs/guides/aws-official-ami)
- [Google Cloud Platform](https://questdb.io/docs/guides/google-cloud-platform)
- [Official Docker image](https://questdb.io/docs/get-started/docker)
- [DigitalOcean droplets](https://questdb.io/docs/guides/digitalocean)
- [Kubernetes Helm charts](https://questdb.io/docs/guides/kubernetes)

## Contribute

Contributions welcome!

We appreciate:

- source code
- documentation (see our
[documentation repository](https://github.com/questdb/documentation))
- bug reports
- feature requests or feedback.

To get started with contributing:

- Have a look through GitHub issues labelled
"[Good first issue](https://github.com/questdb/questdb/issues?q=is%3Aissue+is%3Aopen+label%3A%22Good+first+issue%22)"
- For Hacktoberfest, see the relevant
[labelled issues](https://github.com/questdb/questdb/issues?q=is%3Aissue+is%3Aopen+label%3Ahacktoberfest)
- Read the
[contribution guide](https://github.com/questdb/questdb/blob/master/CONTRIBUTING.md)
- For details on building QuestDB, see the
[build instructions](https://github.com/questdb/questdb/blob/master/core/README.md)
- [Create a fork](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo)
of QuestDB and submit a pull request with your proposed changes
- Stuck? Join our [public Slack](https://slack.questdb.io/) for assistance

✨ As a sign of our gratitude, we send
**[QuestDB swag](https://questdb.io/community)** to our contributors!

A big thanks goes to the following wonderful people who have contributed to
QuestDB [emoji key](https://allcontributors.org/docs/en/emoji-key):




clickingbuttons

💻 🤔 📓

ideoma

💻 📓 ⚠️

tonytamwk

💻 📓

sirinath

🤔

igor-suhorukov

💻 🤔

mick2004

💻 📦

rawkode

💻 🚇



solidnerd

💻 🚇

solanav

💻 📖

shantanoo-desai

📝 💡

alexprut

💻 🚧

lbowman

💻 ⚠️

chankeypathak

📝

upsidedownsmile

💻



Nagriar

💻

piotrrzysko

💻 ⚠️

mpsq

💻

siddheshlatkar

💻

Yitaek

💡

gabor-boros

💡

kovid-r

💡



TimBo93

🐛 📓

zikani03

💻

jaugsburger

💻 🚧

TheTanc

📆 🖋 🤔

davidgs

🐛 🖋

kaishin

💻 💡

bluestreak01

💻 🚧 ⚠️



patrickSpaceSurfer

💻 🚧 ⚠️

chenrui333

🚇

bsmth

📖 🖋

Ugbot

💬 📓 📢

lepolac

💻 🔧

tiagostutz

📓 🐛 📆

Lyncee59

🤔 💻



rrjanbiah

🐛

sarunas-stasaitis

🐛

RiccardoGiro

🐛

duggar

🐛

postol

🐛

petrjahoda

🐛

t00

🐛



snenkov

📓 🐛 🤔

marregui

💻 🤔 🎨

bratseth

💻 🤔 📓

welly87

🤔

fuzzthink

🤔 📓

nexthack

💻

g-metan

🐛



tim2skew

🐛 📓

ospqsp

🐛

SuperFluffy

🐛

nu11ptr

🐛

comunidadio

🐛

mugendi

🤔 🐛 📖

paulwoods222

🐛



mingodad

🤔 🐛 📖

houarizegai

📖

jjsaunier

🐛

zanek

🤔 📆

Geekaylee

📓 🤔

lg31415

🐛 📆

null-dev

🐛 📆



ultd

🤔 📆

ericsun2

🤔 🐛 📆

giovannibonetti

📓 🐛 📆

wavded

📓 🐛

puzpuzpuz

📖 💻 📓

rstreics

💻 🚇 📖

mariusgheorghies

💻 🚇 📖



pswu11

🖋 🤔 🎨

insmac

💻 🤔 🎨

eugenels

💻 🤔 🚧

bziobrowski

💻 📆

Zapfmeister

💻 📓

mkaruza

💻

DylanDKnight

📓 🐛



enolal826

💻

glasstiger

💻

argshook

💻 🤔 🎨 🐛

amunra

💻 📖 🐛

GothamsJoker

💻

kocko

💻

jerrinot

💻 🤔 🐛



rberrelleza

💻

Cobalt-27

💻

eschultz

💻

XinyiQiao

💻

terasum

📖

PlamenHristov

💻

tris0laris

📝 🤔



HeZean

💻 🐛

iridess

💻 📖

selmanfarukyilmaz

🐛

donet5

🤔 🐛

Zahlii

🐛

salsasepp

🐛

EmmettM

🐛 ⚠️



robd003

🤔

AllenEdison

🐛

CSharpDummy

🐛

shimondoodkin

🐛 🤔

huuhait

🐛 🤔

alexey-milovidov

🐛

suconghou

🐛



allegraharris

💻

oliver-daniel

💻

kerimsenturk5734

📖

This project adheres to the
[all-contributors](https://github.com/all-contributors/all-contributors)
specification. Contributions of any kind are welcome!