GitHunt
BR

brandtg/questdb

An open source SQL database designed to process time series data, faster

QuestDB Logo

ย 

What is QuestDB

QuestDB is an open source database designed to make time series lightning fast
and easy.

It uses a column-oriented approach, vectorized execution, SIMD instructions, and
a whole array of low-latency techniques. The whole code base is built from
scratch and without dependencies, in the name of performance. We are 100% free
from garbage collection.

QuestDB implements SQL, and augments it for time-series. It exposes a Postgres
wire protocol, a high-performance REST API, and even supports ingestion with
InfluxDB line protocol. It supports both relational and time-series joins, which
makes it easy to correlate data over time. Writes are durably committed to disk,
meaning that the data is safe - yet instantly accessible.

Live demo

Query our demo dataset with 1.6 billion rows in
milliseconds.

Web Console

The interactive console to import data (drag and drop) and start querying right
away. Check our Web Console guide to get started:

Performance figures

Raw figures

Number operations per second per thread. Writes are durable and written to
disk.

Operation 64-bit double 32-bit int
Read 120 Million /s 240 Million /s
Write 240 Million /s 480 Million /s

On a CPU with 6 memory channels, QuestDB can scan through 117GB of data per
second
.

Queries

Execution time on a c5.metal instance using 16 of the 96 threads available.

Query Runtime
SELECT sum(double) FROM 1bn 0.061 secs
SELECT tag, sum(double) FROM 1bn 0.179 secs
SELECT tag, sum(double) FROM 1bn WHERE timestamp='2019' 0.05 secs

Getting Started

The easiest way to get started is with Docker:

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

You can more information about Docker usage on the
dedicated page.

Alternative methods

Connecting to QuestDB

You can interact with QuestDB using:

Both the HTTP and PostgreSQL servers reference the database in
<root_directory>/db.

You can connect to the Postgres server as follows. The default password is
quest:

psql -h localhost -p 8812 -U admin -W -d qdb

Building from source

(a) Prerequisites

  • Java 11 64-bit
  • Maven 3
  • Node.js 12 / NPM 6
java --version
mvn --version
node --version

(b) Clone the Repository

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

(c) Build the Code

Commands below will create JAR without assembling executable binaries nor
building web console.

cd questdb
mvn clean package -DskipTests

To package web console with the jar use the following command:

mvn clean package -DskipTests -P build-web-console

To build executable binaries use the following command:

mvn clean package -DskipTests -P build-web-console,build-binaries

To run tests it is not required to have binaries built nor web console. There
are over 4000 tests that should complete without 2-6 minutes depending on the
system.

mvn clean test

To release to Maven Central use the following command that activates deploy
profile. Ensure that your ~/.m2/settings.xml contains username/password for
server central and gnupg is on hand to sign the artefacts.

mvn -pl !benchmarks clean deploy -DskipTests -P build-web-console,maven-central-release

(d) Run QuestDB

# Create a database root directory and run QuestDB
mkdir <root_directory>
java -p core/target/questdb-5.0.5-SNAPSHOT.jar -m io.questdb/io.questdb.ServerMain -d <root_directory>

Resources

Complete references are available in the
Documentation.

Get started:

Develop:

Concepts:

Support / Contact

Slack Channel

Roadmap

Our roadmap is here

Contribution

Feel free to contribute to the project by forking the repository and submitting
pull requests. Please make sure you have read our
contributing guide.

Contributors โœจ

Thanks to these wonderful people
(emoji key):


clickingbuttons

๐Ÿ’ป ๐Ÿค” ๐Ÿ““

ideoma

๐Ÿ’ป ๐Ÿ““ โš ๏ธ

tonytamwk

๐Ÿ’ป ๐Ÿ““

sirinath

๐Ÿค”

igor-suhorukov

๐Ÿ’ป ๐Ÿค”

mick2004

๐Ÿ’ป ๐Ÿ“ฆ

rawkode

๐Ÿ’ป ๐Ÿš‡

solidnerd

๐Ÿ’ป ๐Ÿš‡

solanav

๐Ÿ’ป ๐Ÿ“–

shantanoo-desai

๐Ÿ“ ๐Ÿ’ก

alexprut

๐Ÿ’ป ๐Ÿšง

lbowman

๐Ÿ’ป โš ๏ธ

chankeypathak

๐Ÿ“

upsidedownsmile

๐Ÿ’ป

This project follows the
all-contributors
specification. Contributions of any kind welcome!