Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/questdb/questdb
- Owner: questdb
- License: apache-2.0
- Created: 2014-04-28T23:29:15.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2024-10-29T10:58:36.000Z (about 1 month ago)
- Last Synced: 2024-10-29T11:37:02.763Z (about 1 month ago)
- Topics: analytics, big-data, cpp, database, financial-analysis, grafana, hacktoberfest, iot, java, low-latency, postgres, postgresql, questdb, simd, sql, time-series, time-series-database, tsdb
- Language: Java
- Homepage: https://questdb.io
- Size: 753 MB
- Stars: 14,512
- Watchers: 136
- Forks: 1,178
- Open Issues: 601
-
Metadata Files:
- Readme: .github/readme-benchmark.png
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
- my-awesome-list - questdb - source, time-series database | questdb | 14692 | (Java)
- awesome-ccamel - questdb/questdb - QuestDB is an open source time-series database for fast ingest and SQL queries (Java)
- awesome-time-series - QuestDB
- awesome-java-zh - QuestDB - 用于时间序列的高性能sql数据库。支持InfluxDB line协议、PostgreSQL wire协议和REST。 (项目 / 数据库)
- jimsghstars - questdb/questdb - QuestDB is an open source time-series database for fast ingest and SQL queries (Java)
- awesome-list - questdb
- awesome-iouring - questdb
- awesome-dataops - QuestDB - An open source SQL database designed to process time series data, faster. (Database / Time Series Database)
- awesome-java - QuestDB - High-performance SQL database for time series. Supports InfluxDB line protocol, PostgreSQL wire protocol, and REST. (Projects / Database)
- trackawesomelist - QuestDB (⭐14k)
- StarryDivineSky - questdb/questdb
- awesome-for-beginners - QuestDB
- fucking-awesome-for-beginners - QuestDB
- my-awesome - questdb/questdb - markets,cpp,database,financial-analysis,grafana,java,low-latency,market-data,olap,postgresql,questdb,real-time-analytics,sensor-data,simd,sql,tick-data,time-series,time-series-database,tsdb pushed_at:2024-12 star:14.7k fork:1.2k QuestDB is a high performance, open-source, time-series database (Java)
- awesome-starred - questdb/questdb - An open source time-series database for fast ingest and SQL queries (sql)
README
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.
## Benefits of QuestDB
QuestDB excels with:
- financial market data
- IoT sensors with high data cardinality
- real-time dashboardsFeature 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 timeUse 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.
## 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 moreVisit 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!