# questdb **Repository Path**: mirrors/questdb ## Basic Information - **Project Name**: questdb - **Description**: QuestDB 是用于时间序列数据的高性能开源 SQL 数据库 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://www.oschina.net/p/questdb - **GVP Project**: No ## Statistics - **Stars**: 24 - **Forks**: 10 - **Created**: 2021-02-19 - **Last Updated**: 2024-04-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## 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 WHERE symbol IN ('BTC-USD', 'ETH-USD') LATEST ON timestamp PARTITION BY symbol, side` | [0.00025 secs](https://demo.questdb.io/?query=SELECT%20%2A%20FROM%20trades%20WHERE%20symbol%20IN%20%28%27BTC-USD%27%2C%20%27ETH-USD%27%29%20LATEST%20ON%20timestamp%20PARTITION%20BY%20symbol%2C%20side;&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/) - [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!