MCPcopy
hub / github.com/questdb/questdb

github.com/questdb/questdb @9.4.3 sqlite

repository ↗ · DeepWiki ↗ · release 9.4.3 ↗
103,325 symbols 566,476 edges 5,417 files 5,744 documented · 6%
README

QuestDB Logo

 

QuestDB open source contributors

English | 简体中文


QuestDB is an open-source time-series database offering blazingly fast ingestion and dynamic, low-latency SQL queries.

QuestDB delivers a multi-tier storage engine (WAL → native → Parquet on object storage), and the core engine is implemented in zero-GC Java and C++; QuestDB Enterprise includes additional components in Rust.

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.

Ready to go? Jump to the Get started section.

 

QuestDB Web Console showing a SQL statement and query result

QuestDB Web Console - click to launch demo

 

Benefits of QuestDB

Feature highlights include:

  • Low-latency, high-throughput ingestion — from single events to millions/sec
  • Low-latency SQL with time-series extensions (ASOF JOIN, WINDOW JOIN, HORIZON JOIN, SAMPLE BY, LATEST ON)
  • SIMD-accelerated, parallel execution
  • Multi-tier storage: WAL → native columnar → Parquet (time-partitioned and time-ordered)
  • Postgres protocol (PGwire) and REST API
  • Views, materialized views, and n-dimensional arrays (incl. 2D arrays for order books)
  • Web console for queries and data management
  • Apache 2.0 open source and open formats — no vendor lock-in
  • Finance functions and orderbook analytics

QuestDB excels with:

  • financial market data (tick data, trades, order books, OHLC)
  • Sensor/telemetry data with high data cardinality
  • real-time dashboards and monitoring
  • AI coding agents for automated data pipelines and analytics

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
  • deduplication and exactly one semantics
  • Continuous streaming ingest with many concurrent queries
  • streaming data (low latency)
  • 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:

  • Trades: live crypto trades with 30M+ rows per month (OKX exchange)
  • FX order book: live charts with orderbook FX pairs.
  • Trips: 10 years of NYC taxi trips with 1.6 billion rows

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

QuestDB performance vs. other databases

QuestDB performs very well in performance benchmarks compared to alternatives.

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

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

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

AI coding agents

QuestDB works out of the box with AI coding agents. Install the QuestDB agent skill and go from prompt to production in under 60 seconds: streaming ingestion, materialized views, and real-time analytics with zero manual code.

AI coding agent streaming FX data into QuestDB and analyzing liquidity

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:

Connect to QuestDB

Interact with QuestDB and your data via the following interfaces:

Popular third-party tools

Popular tools that integrate with QuestDB include:

End-to-end code scaffolds

From streaming ingestion to visualization with Grafana, start with code scaffolds 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:

  • high availability and read replica(s)
  • multi-primary ingestion
  • 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

❓ Get support

🚢 Deploy QuestDB

Contribute

Contributions welcome!

We appreciate:

To get started with contributing:

✨ 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

Extension points exported contracts — how you extend this code

FuzzColumnType (Interface)
Describes one column type the fuzzer can generate. Each implementation lives in its own file so a new type can be added [31 …
core/src/test/java/io/questdb/test/griffin/fuzz/types/FuzzColumnType.java
QueryResult (Interface)
QueryResult interface abstracts query result operations [3 implementers]
compat/src/test/golang/drivers/dbdriver.go
FuzzExpr (Interface)
An expression node. Stateless after construction: #appendSql can be called multiple times so the same expression [10 implementers]
core/src/test/java/io/questdb/test/griffin/fuzz/expr/FuzzExpr.java
DatabaseDriver (Interface)
(no doc) [2 implementers]
compat/src/test/golang/drivers/dbdriver.go
HttpRequestProcessor (Interface)
Processes HTTP requests for a specific URL endpoint. Threading model Processors are not expected to [15 implementers]
core/src/main/java/io/questdb/cutlass/http/HttpRequestProcessor.java
Fragment (Interface)
Represents a fragment of data with low and high memory addresses. [6 implementers]
core/src/main/java/io/questdb/cutlass/http/client/Fragment.java
QwpColumnCursor (Interface)
Base interface for streaming column cursors in QWP v1. Column cursors provide zero-allocation access to column value [16 …
core/src/main/java/io/questdb/cutlass/qwp/protocol/QwpColumnCursor.java

Core symbols most depended-on inside this repo

execute
called by 16710
core/src/test/java/io/questdb/test/griffin/fuzz/FuzzTableFactory.java
$
called by 11693
core/src/main/java/io/questdb/log/LogRecord.java
val
called by 7862
core/src/main/java/io/questdb/griffin/PlanSink.java
put
called by 6878
core/src/main/java/io/questdb/cairo/map/MapKey.java
execute
called by 6743
core/src/test/java/io/questdb/test/cutlass/http/SendAndReceiveRequestBuilder.java
getQuick
called by 5497
core/src/main/java/io/questdb/std/LongVec.java
put
called by 3769
core/src/main/java/io/questdb/griffin/engine/window/WindowSortBuffer.java
size
called by 2831
core/src/main/java/io/questdb/cairo/map/Map.java

Shape

Method 94,643
Class 7,925
Interface 589
Enum 83
Function 73
Struct 12

Languages

Java100%
Python1%
Go1%
TypeScript1%

Modules by API surface

core/src/test/java/io/questdb/test/griffin/SqlParserTest.java1,092 symbols
core/src/main/java/io/questdb/griffin/engine/functions/window/LastValueDecimalWindowFunctionFactory.java1,052 symbols
core/src/main/java/io/questdb/PropServerConfiguration.java841 symbols
core/src/main/java/io/questdb/griffin/engine/functions/window/FirstValueDecimalWindowFunctionFactory.java772 symbols
core/src/main/java/io/questdb/griffin/engine/functions/window/NthValueDecimalWindowFunctionFactory.java741 symbols
core/src/main/java/io/questdb/griffin/engine/functions/window/AvgDecimalRescaleWindowFunctionFactory.java701 symbols
core/src/test/java/io/questdb/test/griffin/engine/window/WindowFunctionTest.java630 symbols
core/src/test/java/io/questdb/test/griffin/model/TickExprTest.java614 symbols
core/src/main/java/io/questdb/griffin/engine/functions/window/MaxDecimalWindowFunctionFactory.java614 symbols
core/src/main/java/io/questdb/griffin/engine/functions/window/SumDecimalWindowFunctionFactory.java599 symbols
core/src/main/java/io/questdb/griffin/engine/functions/window/AvgDecimalWindowFunctionFactory.java598 symbols
core/src/test/java/io/questdb/test/griffin/ExplainPlanTest.java566 symbols

Used by 1 indexed graphs manifest dependencies, hub-wide

Dependencies from manifests, versioned

symfony/yaml6.0 · 1×
github.com/jackc/pgpassfilev1.0.0 · 1×
github.com/jackc/pgservicefilev0.0.0-2024060612052 · 1×
github.com/jackc/pgx-shopspring-decimalv0.0.0-2022062402053 · 1×
github.com/kr/textv0.2.0 · 1×
github.com/lib/pqv1.10.9 · 1×
github.com/rogpeppe/go-internalv1.14.1 · 1×
golang.org/x/textv0.29.0 · 1×
gopkg.in/yaml.v3v3.0.1 · 1×
com.chrisnewland:jitwatch1.1.5 · 1×

Datastores touched

qdbDatabase · 1 repos

For agents

$ claude mcp add questdb \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact