title | description |
---|---|
Introduction | QuestDB is a relational column-oriented database designed for real-time analytics on time series data. |
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.
Concepts
This section describes the architecture of QuestDB, how it stores and queries data, and introduces features and capabilities unique to the system.
- Designated timestamp is a core feature that enables time-oriented language capabilities and partitioning
- Symbol type makes storing and retrieving repetitive strings efficient
- Storage model describes how QuestDB stores records and partitions within tables
- Indexes can be used for faster read access on specific columns
- Partitions can be used for significant performance benefits on calculations and queries
- SQL extensions allow performant time series analysis with a concise syntax
- Root directory describes the directory contents of QuestDB for storage 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.
- Connect using Postgres or InfluxDB clients in a variety of languages
- Insert data from popular languages using Postgres clients or InfluxDB line protocol, or in bulk via REST API
- Query data using Postgres clients, REST API, or the Web Console
- Authenticate via an additional step before inserting records using InfluxDB line protocol
Guides
- Configuring commit lag of out-of-order (O3.md) data
- InfluxDB line protocol
- Importing data in bulk via CSV
- Version 6.0 migration
Deployment
Third-party tools
This section describes how to integrate QuestDB with third-party tools and utilities for collecting metrics and visualizing data:
- 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
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
Reference
This section contains the reference documentation for the following categories:
APIs
Configuration
The configuration page shows all the properties that can be used to customize QuestDB.
Command-line options
The 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
Functions
- Aggregation
- Conditional
- Date time
- Meta
- Numeric
- Random value generator
- Row generator
- Text
- Timestamp generator
- Timestamp
Operators
SQL
- SQL Execution order
- Data types
- ALTER TABLE ADD COLUMN
- ALTER TABLE ALTER COLUMN ADD INDEX
- ALTER TABLE RENAME COLUMN
- ALTER TABLE DROP COLUMN
- ALTER TABLE ATTACH PARTITION
- ALTER TABLE DROP PARTITION
- ALTER TABLE SET PARAM
- BACKUP
- CASE
- CAST
- COPY
- CREATE TABLE
- DISTINCT
- EXCEPT INTERSECT
- FILL
- DROP TABLE
- GROUP BY
- INSERT
- JOIN
- LATEST BY
- LIMIT
- ORDER BY
- RENAME TABLE
- SAMPLE BY
- SELECT
- SHOW
- TRUNCATE TABLE
- UNION
- WHERE
- WITH
Web console
QuestDB is bundled with a user interface which runs by default on port 9000. The following is reference documentation which describes how to use this UI:
- Web console reference for using the bundled UI
Support
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:
- Raise an issue on GitHub
- Join the Community Slack
- QuestDB on Stack Overflow
- or send us an email at hello@questdb.io