questdb

JAVA源码 2025-07-29

 

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 section.

 

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), partitioned and ordered by time
  • Responsive and intuitive Web Console for query and data management, with error handling
  • Excellent performance with high data cardinality - see benchmarks

And why use a time-series database?

Beyond performance and efficiency, with a specialized 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 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

We also have some public, real-time demo dashboards using our Grafana-native plugin:

  • Real-time crypto trades: executed trades on OKX from more than 20 assets in real time
  • NYC taxi geolocation data: 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
  • QuestDB vs TimescaleDB
  • QuestDB vs MongoDB

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

Get started

Use Docker to start quickly:

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

Or macOS users can use Homebrew:

brew install questdb
brew services start questdb
questdb start
questdb stop

Alternatively, to kickoff the full onboarding journey, start with our concise quick start guide.

First-party ingestion clients

QuestDB clients for ingesting data via the InfluxDB Line Protocol:

  • Python
  • .NET
  • C/C++
  • Go
  • Java
  • NodeJS
  • Rust

Connect to QuestDB

Interact with QuestDB and your data via the following interfaces:

  • Web Console for an interactive SQL editor and CSV import on port 9000
  • InfluxDB Line Protocol for streaming ingestion on port 9000
  • PostgreSQL Wire Protocol for programmatic queries on port 8812
  • REST API for CSV import and cURL on port 9000

Popular third-party tools

Popular tools that integrate with QuestDB include:

  • Apache Kafka
  • Grafana
  • Superset
  • Telegraf
  • Apache Flink
  • qStudio
  • MindsDB

End-to-end code scaffolds

From streaming ingestion to visualization with Grafana, start with code scaffolds in from our quickstart repository.

Configure QuestDB for production workloads

Find our 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 for further details and contact information.

Additional resources

Read the docs

  • QuestDB documentation: begin the journey
  • Product roadmap: check out our plan for upcoming releases
  • Tutorials: learn what's possible with QuestDB, step by step

❓ Get support

  • Community Discourse forum: join technical discussions, ask questions, and meet other users!
  • Public Slack: chat with the QuestDB team and community members
  • GitHub issues: report bugs or issues with QuestDB
  • Stack Overflow: look for common troubleshooting solutions

? Deploy QuestDB

  • AWS AMI
  • Google Cloud Platform
  • Official Docker image
  • DigitalOcean droplets
  • Kubernetes Helm charts

Contribute

Contributions welcome!

We appreciate:

  • source code
  • documentation (see our documentation 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 relevant labelled issues
  • 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
  • Stuck? Join our public Slack for assistance

As a sign of our gratitude, we send QuestDB swag to our contributors!

A big thanks goes to the following wonderful people who have contributed to QuestDB 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 specification. Contributions of any kind are welcome!

下载源码

通过命令行克隆项目:

git clone https://github.com/questdb/questdb.git