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

Once QuestDB is running, a guide is provided to create your first database.

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:

  • Capacity planning for configuring server settings and system resources for common scenarios and edge cases
  • Data retention strategy to delete old data and save disk space
  • Health monitoring endpoint for determining the status of the instance
  • Backup and restore using filesystem and point-in-time backup functionality. Notes for cloud providers.

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 topics into QuestDB by means of Kafka Connect
  • 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 queries
  • Partitions can be used for significant performance benefits on calculations and queries
  • 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: