Introduction

QuestDB is a relational column-oriented database designed for time series and event data. It uses SQL with extensions for time series to assist with real-time analytics. These pages cover core concepts of QuestDB, including setup steps, usage guides, and reference documentation for syntax, APIs and configuration.

Get Started#

This section explains how to install and run QuestDB using one of the following methods:

  • Docker for repeatable, portable and scalable installations
  • Binaries for direct downloads to run on Linux, macOS or Windows
  • Homebrew for running QuestDB on macOS
  • Create your first database provides a guide once QuestDB is running
  • Learn more is a selection of useful concepts and guides for new QuestDB users

Develop#

This section describes how to connect to QuestDB using a variety of tools and programming languages through our various network endpoints.

  • Connect to the database through our various endpoints. Learn which protocol is best for different use cases

  • Insert data using the InfluxDB Line Protocol, PostgreSQL wire protocol or our HTTP REST API

  • Query data with SQL queries via the PostgreSQL Wire Protocol or exported to JSON or CSV via our HTTP REST API

  • Web Console for quick SQL queries, charting and CSV upload/export functionality

Guides#

Deployment#

Operations#

This section contains resources for managing QuestDB instances and has dedicated pages for the following topics:

Third-party tools#

This section describes how to integrate QuestDB with third-party tools and utilities for collecting metrics and visualizing data:

  • Prometheus monitoring and alerting.
  • Grafana instructions for connecting QuestDB as a datasource for building visualizations and dashboards
  • Kafka guide for ingesting data from Kafka topics into QuestDB
  • Telegraf guide for collecting system metrics, specifying QuestDB as an output and visualizing the results

Concepts#

This section describes the architecture of QuestDB, how it stores and queries data, and introduces features and capabilities unique to the system.

  • Storage model describes how QuestDB stores records and partitions within tables
  • Designated timestamp is a core feature that enables time-oriented language capabilities and partitioning
  • SQL extensions allow performant time series analysis with a concise syntax
  • JIT compiler to speed up WHERE clauses
  • Partitions can be used to perform time-based queries more efficiently
  • Symbol type makes storing and retrieving repetitive strings efficient
  • Indexes can be used for faster read access on specific columns
  • Geospatial data with geohashes
  • Root directory describes the directory contents of QuestDB for storage and configuration

Reference#

This section contains the reference documentation for the following categories:

APIs#

Command-line options#

The following resource provides info on options that may be passed to QuestDB when starting services:

Configuration#

The configuration page shows all the properties that can be used to customize QuestDB.

ILP Client libraries#

Data Types#

The data types page lists the datatypes that can be used in QuestDB.

Functions#

Operators#

SQL#

Support#

For hints on diagnosing common configuration issues, see the following resources:

We are happy to help with any question you may have, particularly to help you optimize the performance of your application. Feel free to reach out using the following channels: