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 StartedThis 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
#
DevelopThis 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- Large CSV import (COPY SQL)
- Small CSV import (REST API)
- Modifying Data
- Timestamps and time zones
- Out-of-order commit lag
#
Deployment#
OperationsThis section contains resources for managing QuestDB instances and has dedicated pages for the following topics:
- Design for performance for configuring table settings to improve performance
- Capacity planning for configuring server settings and system resources
- 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 toolsThis 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
#
ConceptsThis 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
#
ReferenceThis section contains the reference documentation for the following categories:
#
APIs#
Command-line optionsThe following resource provides info on options that may be passed to QuestDB when starting services:
- Command-line options for starting and running QuestDB from an executable
#
ConfigurationThe configuration page shows all the properties that can be used to customize QuestDB.
#
ILP Client libraries#
Data TypesThe data types page lists the datatypes that can be used in QuestDB.
#
Functions- Aggregate
- Analytic
- Binary
- Boolean
- Conditional
- Date and time
- Meta
- Numeric
- Random value generator
- Row generator
- Spatial
- Text
- Timestamp generator
- Timestamp
#
Operators#
SQL- SQL Execution order
- Data types
- ALTER TABLE ADD COLUMN
- ALTER TABLE RENAME COLUMN
- ALTER TABLE DROP COLUMN
- ALTER TABLE ATTACH PARTITION
- ALTER TABLE DETACH PARTITION
- ALTER TABLE DROP PARTITION
- ALTER TABLE SET PARAM
- ALTER TABLE ALTER COLUMN ADD INDEX
- ALTER TABLE ALTER COLUMN DROP INDEX
- ALTER TABLE ALTER COLUMN CACHE | NOCACHE
- BACKUP
- CASE
- CAST
- COPY
- CREATE TABLE
- DISTINCT
- FILL
- DROP TABLE
- GROUP BY
- INSERT
- JOIN
- LATEST ON
- LIMIT
- ORDER BY
- REINDEX
- RENAME TABLE
- SAMPLE BY
- SELECT
- SHOW
- SNAPSHOT
- TRUNCATE TABLE
- UNION EXCEPT INTERSECT
- VACUUM TABLE
- WHERE
- WITH
#
SupportFor hints on diagnosing common configuration issues, see the following resources:
- Troubleshooting FAQ guide with solutions for various HW & SW configuration issues
- List of OS error codes page with the list of Operating System error codes
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: