# QuestDB Documentation > QuestDB is a high-performance time-series database with SQL. This index links > every documentation page as markdown, covering SQL reference and time-series > extensions such as SAMPLE BY, ASOF JOIN and LATEST ON, ingestion over the > QuestDB Wire Protocol, InfluxDB Line Protocol and PostgreSQL wire protocol, > deployment, configuration and operations. Every page is also available as > markdown by appending .md to its URL, or by sending an > `Accept: text/markdown` request header. ## Getting Started - [QuestDB Documentation: SQL time-series guides](https://questdb.com/docs/index.md): Official QuestDB documentation covering installation, data ingestion, SQL reference, and operations for both open source and Enterprise editions. - [Schema design](https://questdb.com/docs/schema-design-essentials.md): Learn how to design efficient schemas in QuestDB. Covers timestamps, partitioning, data types, deduplication, and retention strategies. ## Getting Started - [Quick start](https://questdb.com/docs/getting-started/quick-start.md): Get started with QuestDB, as quickly as possible. Instructions for docker, homebrew, our binaries, and more. - [Using QuestDB with AI coding agents](https://questdb.com/docs/getting-started/ai-coding-agents.md): How AI coding agents like Claude Code, Codex, and Cursor work with QuestDB. The official QuestDB MCP server for the Web Console, the QuestDB skill for time-series SQL, and the REST API that works out of the box. - [Capacity planning](https://questdb.com/docs/getting-started/capacity-planning.md): How to plan and configure system resources, database configuration, and client application code available to QuestDB to ensure that server operation continues uninterrupted. - [Create a sample database](https://questdb.com/docs/getting-started/create-database.md): This guide demonstrates generating and managing sample time-series data in QuestDB, including table creation, data insertion, querying, and cleanup. - [Upgrade to QuestDB Enterprise](https://questdb.com/docs/getting-started/migrate-to-enterprise.md): Upgrade from QuestDB Open Source to QuestDB Enterprise in minutes by swapping binaries. - [QuestDB Enterprise Quick Start](https://questdb.com/docs/getting-started/enterprise-quick-start.md): Get started with QuestDB Enterprise, as quickly as possible. Instructions follow a happy path, and will get you running with all the latest and greatest features. - [Web Console overview](/docs/getting-started/web-console/overview/) ## Connect - [Overview](https://questdb.com/docs/connect/overview.md): How to send data to QuestDB and run queries. Choose between native client libraries, the REST API, compatibility protocols (ILP, PGWire), or the wire-protocol specifications. Client Libraries - [Connect string](https://questdb.com/docs/connect/clients/connect-string.md): Configuration knobs for QuestDB native clients (QWP over WebSocket). Drives ingress, egress, multi-host failover, and store-and-forward. - [Java](https://questdb.com/docs/connect/clients/java.md): QuestDB Java client for high-throughput data ingestion and streaming SQL queries over the QWP binary protocol. - [Python](https://questdb.com/docs/connect/clients/python.md): Use the QuestDB Python client's QuestDB pool for row, DataFrame, and Arrow ingestion plus SQL queries over QWP. - [Go](https://questdb.com/docs/connect/clients/go.md): QuestDB Go client for high-throughput data ingestion and streaming SQL queries over the QWP binary WebSocket protocol. - [Rust](https://questdb.com/docs/connect/clients/rust.md): Use the QuestDB Rust connection pool for Buffer, Chunk, Arrow, and Polars ingestion plus streaming SQL queries over QWP. - [Node.js](https://questdb.com/docs/connect/clients/nodejs.md): Get started with QuestDB using the Node.js client for efficient, high-performance insert operations. Achieve unparalleled time series data ingestion and query capabilities. - [C & C++](https://questdb.com/docs/connect/clients/c-and-cpp.md): QuestDB C and C++ client: the questdb_db / questdb::pool connection pool for row buffers, column chunks, Arrow ingestion, and SQL queries over QWP/WebSocket. - [.NET](https://questdb.com/docs/connect/clients/dotnet.md): QuestDB .NET client for high-throughput data ingestion and SQL querying over the QWP binary protocol (WebSocket). - [Date to Timestamp](https://questdb.com/docs/connect/clients/date-to-timestamp-conversion.md): How to convert language-native date/time values into QuestDB timestamp columns, for each supported client library. - [Agents](https://questdb.com/docs/connect/agents.md): How AI agents operate QuestDB — which protocols they use, what tooling exists, and how to give them safe access. Message Brokers - [Ingest data from Kafka](https://questdb.com/docs/connect/message-brokers/kafka.md): Stream data from Kafka to QuestDB. Set up the connector, map fields and timestamps, handle failed records, and prevent duplicates. - [Telegraf](https://questdb.com/docs/connect/message-brokers/telegraf.md): Learn how to use Telegraf to collect system metrics and send this data to QuestDB. - [Redpanda](https://questdb.com/docs/connect/message-brokers/redpanda.md): Guide for using Redpanda with QuestDB via the QuestDB Kafka connector. Also covers Redpanda Connect, a stream processing tool that can be used to build data pipelines. - [QuestDB Flink connector](https://questdb.com/docs/connect/message-brokers/flink.md): QuestDB ships a QuestDB Flink connector for ingesting messages from Apache Flink via the InfluxDB Line Protocol. REST API - [REST API](https://questdb.com/docs/connect/compatibility/rest-api.md): REST API reference documentation. - [CSV Import](https://questdb.com/docs/connect/compatibility/import-csv.md): This document describes how to load CSV data and specify text loader configuration for timestamp and date parsing. It demonstrates how to do it via COPY SQL or REST. - [Parquet Export](/docs/concepts/parquet/#export) Compatibility Protocols InfluxDB Line Protocol (ILP) - [Overview](https://questdb.com/docs/connect/compatibility/ilp/overview.md): InfluxDB line protocol reference documentation. - [Columnset Types](https://questdb.com/docs/connect/compatibility/ilp/columnset-types.md): Describes all supported value types in InfluxDB Line Protocol columnset. - [Advanced Settings](https://questdb.com/docs/connect/compatibility/ilp/advanced-settings.md): Syntax and guidance to create or alter your own InfluxDB Line Protocol clients. PostgreSQL Wire Protocol (PGWire) - [Overview](https://questdb.com/docs/connect/compatibility/pgwire/overview.md): QuestDB supports the PostgreSQL wire protocol (PGWire), allowing you to connect using standard PostgreSQL client libraries for querying data. - [Large Result Sets](https://questdb.com/docs/connect/compatibility/pgwire/large-result-sets.md): How to efficiently query large datasets over PGWire without running out of memory. Includes per-language examples for cursor-based fetching. - [Python](https://questdb.com/docs/connect/compatibility/pgwire/python.md): Python clients for QuestDB PGWire protocol. Learn how to use the PGWire protocol with Python for querying data. - [Go](https://questdb.com/docs/connect/compatibility/pgwire/go.md): Go clients for QuestDB PGWire protocol. Learn how to use the PGWire protocol with Go for querying data. - [Java](https://questdb.com/docs/connect/compatibility/pgwire/java.md): Java clients for QuestDB PGWire protocol. Learn how to use the PGWire protocol with Java for querying data. - [Rust](https://questdb.com/docs/connect/compatibility/pgwire/rust.md): Rust clients for QuestDB PGWire protocol. Learn how to use the PGWire protocol with Rust for querying data. - [Node.js](https://questdb.com/docs/connect/compatibility/pgwire/nodejs.md): JavaScript clients for QuestDB PGWire protocol. Learn how to use the PGWire protocol with JavaScript for querying data. - [.NET](https://questdb.com/docs/connect/compatibility/pgwire/dotnet.md): .NET/C# clients for QuestDB PGWire protocol. Learn how to use the PGWire protocol with C# for querying data. - [PHP](https://questdb.com/docs/connect/compatibility/pgwire/php.md): PHP clients for QuestDB PGWire protocol. Learn how to use the PGWire protocol with PHP for querying data. - [R](https://questdb.com/docs/connect/compatibility/pgwire/r.md): R clients for QuestDB PGWire protocol. Learn how to use the PGWire protocol with R for querying data. - [C/C++](https://questdb.com/docs/connect/compatibility/pgwire/c-and-cpp.md): C and C++ clients for QuestDB over the PostgreSQL wire protocol (PGWire). Learn how to connect and query time-series data from C and C++. - [Java Embedded](https://questdb.com/docs/connect/java-embedded.md): Java embedded API reference documentation. Wire Protocols - [Overview](https://questdb.com/docs/connect/wire-protocols/overview.md): QuestDB's wire-protocol specifications for client implementers. - [QWP Ingress (WebSocket)](https://questdb.com/docs/connect/wire-protocols/qwp-ingress-websocket.md): Wire-protocol specification for QuestDB's WebSocket-based columnar binary ingest protocol. - [QWP Egress (WebSocket)](https://questdb.com/docs/connect/wire-protocols/qwp-egress-websocket.md): Wire-protocol specification for QuestDB's WebSocket-based streaming query-result protocol. - [QWP Client Behaviour](https://questdb.com/docs/connect/wire-protocols/qwp-client-behavior.md): Normative specification for how QWP clients behave at startup, connection, failover, and store-and-forward — the contract all QuestDB language clients align to. ## SQL Reference - [Query & SQL overview](https://questdb.com/docs/query/overview.md): How to query QuestDB: run SQL in the Web Console, stream results with the QWP client libraries, connect with PostgreSQL clients, use the REST HTTP API, or read Parquet files, with time-series extensions like SAMPLE BY. - [SQL extensions and compatibility](https://questdb.com/docs/concepts/deep-dive/sql-extensions.md): QuestDB SQL extensions for time-series workloads, along with differences from standard SQL and PostgreSQL. Covers added clauses, query conveniences, unsupported features and their QuestDB equivalents. Data Types - [Overview](https://questdb.com/docs/query/datatypes/overview.md): Data types reference documentation. - [N-Dimensional array](https://questdb.com/docs/query/datatypes/array.md): Explains the technical design and syntax to use N-dimensional arrays. - [Decimal](https://questdb.com/docs/query/datatypes/decimal.md): This document describes how to work with the decimal data type in QuestDB, including precision and scale, literal syntax, arithmetic operations, and best practices for financial and scientific calculations. - [Geospatial data](https://questdb.com/docs/query/datatypes/geohashes.md): This document describes how to work with geohashes as geospatial types in QuestDB, including hints on converting back and forth from latitude and longitude, inserting via SQL, InfluxDB line protocol, CSV, and more. SQL Syntax - [ADD USER reference](https://questdb.com/docs/query/sql/acl/add-user.md): ADD USER SQL keywords reference documentation. Applies to RBAC in QuestDB Enterprise. ALTER - [ALTER SERVICE ACCOUNT reference](https://questdb.com/docs/query/sql/acl/alter-service-account.md): ALTER SERVICE ACCOUNT SQL keywords reference documentation. Applies to RBAC in QuestDB Enterprise. ALTER TABLE - [ALTER TABLE ADD COLUMN](https://questdb.com/docs/query/sql/alter-table-add-column.md): ALTER TABLE ADD COLUMN SQL keyword reference documentation. ALTER COLUMN - [ALTER TABLE COLUMN ADD INDEX](https://questdb.com/docs/query/sql/alter-table-alter-column-add-index.md): ADD INDEX SQL keyword. Table reference documentation. - [ALTER TABLE COLUMN CACHE | NOCACHE](https://questdb.com/docs/query/sql/alter-table-alter-column-cache.md) - [ALTER TABLE COLUMN TYPE](https://questdb.com/docs/query/sql/alter-table-change-column-type.md): ALTER TABLE COLUMN TYPE SQL keyword reference documentation. - [ALTER TABLE COLUMN DROP INDEX](https://questdb.com/docs/query/sql/alter-table-alter-column-drop-index.md): DROP INDEX SQL keyword. Table reference documentation. - [ALTER TABLE ALTER COLUMN SET PARQUET: encoding, compression, and bloom filter options](https://questdb.com/docs/query/sql/alter-table-alter-column-set-parquet.md): ALTER TABLE ALTER COLUMN SET PARQUET SQL keyword reference documentation. - [ALTER TABLE SYMBOL CAPACITY](https://questdb.com/docs/query/sql/alter-table-change-symbol-capacity.md): ALTER TABLE SYMBOL CAPACITY SQL keyword reference documentation. - [ALTER TABLE ATTACH PARTITION](https://questdb.com/docs/query/sql/alter-table-attach-partition.md): ATTACH PARTITION SQL keyword reference documentation. - [ALTER TABLE COLUMN TYPE](https://questdb.com/docs/query/sql/alter-table-change-column-type.md): ALTER TABLE COLUMN TYPE SQL keyword reference documentation. - [ALTER TABLE DEDUP DISABLE](https://questdb.com/docs/query/sql/alter-table-disable-deduplication.md): DISABLE DEDUPLICATION SQL command reference documentation. - [ALTER TABLE DEDUP ENABLE](https://questdb.com/docs/query/sql/alter-table-enable-deduplication.md): ENABLE DEDUPLICATION SQL command reference documentation. - [ALTER TABLE DETACH PARTITION](https://questdb.com/docs/query/sql/alter-table-detach-partition.md): DETACH PARTITION SQL keyword reference documentation. - [ALTER TABLE DROP COLUMN](https://questdb.com/docs/query/sql/alter-table-drop-column.md): DROP COLUMN SQL keyword reference documentation. - [ALTER TABLE DROP PARTITION](https://questdb.com/docs/query/sql/alter-table-drop-partition.md): DROP PARTITION SQL keyword reference documentation. - [ALTER TABLE REBASE WAL](https://questdb.com/docs/query/sql/alter-table-rebase-wal.md): ALTER TABLE REBASE WAL SQL keyword reference documentation. - [ALTER TABLE RENAME COLUMN](https://questdb.com/docs/query/sql/alter-table-rename-column.md): RENAME COLUMN SQL keyword reference documentation. - [ALTER TABLE RESUME WAL](https://questdb.com/docs/query/sql/alter-table-resume-wal.md): ALTER TABLE RESUME WAL SQL keyword reference documentation. - [ALTER TABLE SET FORMAT](https://questdb.com/docs/query/sql/alter-table-set-format.md): ALTER TABLE SET FORMAT SQL keyword reference documentation. - [ALTER TABLE SET PARAM](https://questdb.com/docs/query/sql/alter-table-set-param.md): SET PARAM SQL keyword reference documentation. - [ALTER TABLE SET STORAGE POLICY](https://questdb.com/docs/query/sql/alter-table-set-storage-policy.md): ALTER TABLE SET STORAGE POLICY SQL keyword reference documentation. - [ALTER TABLE SET TTL](https://questdb.com/docs/query/sql/alter-table-set-ttl.md): ALTER TABLE SET TTL SQL keyword reference documentation. - [ALTER TABLE SET TYPE](https://questdb.com/docs/query/sql/alter-table-set-type.md): ALTER TABLE SET TYPE SQL keyword reference documentation. - [ALTER TABLE SQUASH PARTITIONS](https://questdb.com/docs/query/sql/alter-table-squash-partitions.md): ALTER TABLE SQUASH PARTITIONS SQL keyword reference documentation. - [ALTER TABLE SUSPEND WAL](https://questdb.com/docs/query/sql/alter-table-suspend-wal.md): ALTER TABLE SUSPEND WAL SQL keyword reference documentation. - [ALTER TABLE SYMBOL CAPACITY](https://questdb.com/docs/query/sql/alter-table-change-symbol-capacity.md): ALTER TABLE SYMBOL CAPACITY SQL keyword reference documentation. ALTER MATERIALIZED VIEW ALTER COLUMN - [ALTER MATERIALIZED VIEW ADD INDEX](https://questdb.com/docs/query/sql/alter-mat-view-alter-column-add-index.md): ADD INDEX SQL keyword. Materialized Views reference documentation. - [ALTER MATERIALIZED VIEW DROP INDEX](https://questdb.com/docs/query/sql/alter-mat-view-alter-column-drop-index.md): DROP INDEX SQL keyword. Materialized View reference documentation. - [ALTER MATERIALIZED VIEW RESUME WAL](https://questdb.com/docs/query/sql/alter-mat-view-resume-wal.md): Documentation for the ALTER MATERIALIZED VIEW RESUME WAL SQL keyword in QuestDB. - [ALTER MATERIALIZED VIEW SET REFRESH](https://questdb.com/docs/query/sql/alter-mat-view-set-refresh.md): ALTER MATERIALIZED VIEW SET REFRESH SQL keyword reference documentation. - [ALTER MATERIALIZED VIEW SET REFRESH LIMIT](https://questdb.com/docs/query/sql/alter-mat-view-set-refresh-limit.md): ALTER MATERIALIZED VIEW SET REFRESH LIMIT SQL keyword reference documentation. - [ALTER MATERIALIZED VIEW SET TTL](https://questdb.com/docs/query/sql/alter-mat-view-set-ttl.md): ALTER MATERIALIZED VIEW SET TTL SQL keyword reference documentation. - [ALTER USER reference](https://questdb.com/docs/query/sql/acl/alter-user.md): ALTER USER SQL keywords reference documentation. Applies to RBAC in QuestDB Enterprise. - [ALTER VIEW](https://questdb.com/docs/query/sql/alter-view.md): Documentation for the ALTER VIEW SQL keyword in QuestDB. - [ASSUME SERVICE ACCOUNT reference](https://questdb.com/docs/query/sql/acl/assume-service-account.md): ASSUME SERVICE ACCOUNT SQL keywords reference documentation. Applies to RBAC in QuestDB Enterprise - [BACKUP keyword](https://questdb.com/docs/query/sql/backup.md): BACKUP SQL keyword reference documentation. Applies to QuestDB Enterprise. - [CANCEL QUERY](https://questdb.com/docs/query/sql/cancel-query.md): CANCEL QUERY keyword reference documentation. - [CHECKPOINT keyword](https://questdb.com/docs/query/sql/checkpoint.md): CHECKPOINT SQL keyword reference documentation. - [COMPILE VIEW](https://questdb.com/docs/query/sql/compile-view.md): Documentation for the COMPILE VIEW SQL keyword in QuestDB. - [COPY keyword](https://questdb.com/docs/query/sql/copy.md): COPY SQL keyword reference documentation. CREATE - [CREATE GROUP reference](https://questdb.com/docs/query/sql/acl/create-group.md): CREATE GROUP SQL keywords reference documentation. Applies to RBAC in QuestDB Enterprise. - [CREATE LIVE VIEW](https://questdb.com/docs/query/sql/create-live-view.md): Documentation for the CREATE LIVE VIEW SQL keyword in QuestDB. - [CREATE MATERIALIZED VIEW](https://questdb.com/docs/query/sql/create-mat-view.md): Documentation for the CREATE MATERIALIZED VIEW SQL keyword in QuestDB. - [CREATE SERVICE ACCOUNT reference](https://questdb.com/docs/query/sql/acl/create-service-account.md): CREATE SERVICE ACCOUNT SQL keywords reference documentation. Applies to RBAC in QuestDB Enterprise. - [CREATE TABLE reference](https://questdb.com/docs/query/sql/create-table.md): CREATE TABLE SQL keywords reference documentation. - [CREATE USER reference](https://questdb.com/docs/query/sql/acl/create-user.md): CREATE USER SQL keywords reference documentation. Applies to RBAC in QuestDB Enterprise. - [CREATE VIEW](https://questdb.com/docs/query/sql/create-view.md): Documentation for the CREATE VIEW SQL keyword in QuestDB. DROP - [DROP GROUP reference](https://questdb.com/docs/query/sql/acl/drop-group.md): DROP GROUP SQL keywords reference documentation. Applies to RBAC in QuestDB Enterprise. - [DROP LIVE VIEW](https://questdb.com/docs/query/sql/drop-live-view.md): Documentation for the DROP LIVE VIEW SQL keyword in QuestDB. - [DROP MATERIALIZED VIEW](https://questdb.com/docs/query/sql/drop-mat-view.md): Documentation for the DROP MATERIALIZED VIEW SQL keyword in QuestDB. - [DROP SERVICE ACCOUNT reference](https://questdb.com/docs/query/sql/acl/drop-service-account.md): DROP SERVICE ACCOUNT SQL keywords reference documentation. Applies to RBAC in QuestDB Enterprise. - [DROP TABLE keyword](https://questdb.com/docs/query/sql/drop.md): DROP TABLE SQL keyword reference documentation. - [DROP USER reference](https://questdb.com/docs/query/sql/acl/drop-user.md): DROP USER SQL keywords reference documentation. Applies to RBAC in QuestDB Enterprise. - [DROP VIEW](https://questdb.com/docs/query/sql/drop-view.md): Documentation for the DROP VIEW SQL keyword in QuestDB. - [EXIT SERVICE ACCOUNT reference](https://questdb.com/docs/query/sql/acl/exit-service-account.md): EXIT SERVICE ACCOUNT SQL keywords reference documentation. Applies to RBAC in QuestDB Enterprise. - [EXPLAIN keyword](https://questdb.com/docs/query/sql/explain.md): EXPLAIN SQL keyword reference documentation. GRANT - [GRANT reference](https://questdb.com/docs/query/sql/acl/grant.md): GRANT SQL keywords reference documentation. Applies to RBAC in QuestDB Enterprise. - [GRANT ASSUME SERVICE ACCOUNT reference](https://questdb.com/docs/query/sql/acl/grant-assume-service-account.md): GRANT ASSUME SERVICE ACCOUNT SQL keywords reference documentation. Applies to RBAC in QuestDB Enterprise. - [INSERT keyword](https://questdb.com/docs/query/sql/insert.md): INSERT SQL keyword reference documentation. - [REFRESH MATERIALIZED VIEW](https://questdb.com/docs/query/sql/refresh-mat-view.md): Documentation for the REFRESH MATERIALIZED VIEW SQL keyword in QuestDB. - [REINDEX](https://questdb.com/docs/query/sql/reindex.md): REINDEX SQL keyword reference documentation. - [REMOVE USER reference](https://questdb.com/docs/query/sql/acl/remove-user.md): REMOVE USER SQL keywords reference documentation. Applies to RBAC in QuestDB Enterprise. - [RENAME TABLE keyword](https://questdb.com/docs/query/sql/rename.md): RENAME TABLE SQL keyword reference documentation. REVOKE - [REVOKE reference](https://questdb.com/docs/query/sql/acl/revoke.md): REVOKE SQL keywords reference documentation. Applies to RBAC in QuestDB Enterprise. - [REVOKE ASSUME SERVICE ACCOUNT reference](https://questdb.com/docs/query/sql/acl/revoke-assume-service-account.md): REVOKE ASSUME SERVICE ACCOUNT SQL keywords reference documentation. Applies to RBAC in QuestDB Enterprise. SELECT - [SELECT keyword](https://questdb.com/docs/query/sql/select.md): SELECT SQL keyword reference documentation. - [ASOF JOIN keyword](https://questdb.com/docs/query/sql/asof-join.md): Learn how to use the powerful time-series ASOF JOIN SQL keyword from our concise and clear reference documentation. - [CASE keyword](https://questdb.com/docs/query/sql/case.md): CASE SQL keyword reference documentation. - [CAST keyword](https://questdb.com/docs/query/sql/cast.md): CAST SQL keyword reference documentation. - [DECLARE keyword](https://questdb.com/docs/query/sql/declare.md): DECLARE SQL keyword reference documentation. - [DISTINCT keyword](https://questdb.com/docs/query/sql/distinct.md): DISTINCT SQL keyword reference documentation. - [FILL keyword](https://questdb.com/docs/query/sql/fill.md): FILL SQL keyword reference documentation. - [GROUP BY keyword](https://questdb.com/docs/query/sql/group-by.md): GROUP BY SQL keyword reference documentation. - [HORIZON JOIN keyword](https://questdb.com/docs/query/sql/horizon-join.md): Reference documentation for HORIZON JOIN, a specialized time-series join for markout analysis and event impact studies in QuestDB. - [JOIN keyword](https://questdb.com/docs/query/sql/join.md): JOIN SQL keyword reference documentation. - [LATERAL JOIN keyword](https://questdb.com/docs/query/sql/lateral-join.md): Learn how to use LATERAL JOIN in QuestDB to run a subquery once per outer row, with examples for top-N per group, per-row aggregates, and dynamic filters. - [LATEST ON keyword](https://questdb.com/docs/query/sql/latest-on.md): Reference documentation for using LATEST ON keywords with examples for illustration. - [LIMIT keyword](https://questdb.com/docs/query/sql/limit.md): LIMIT SQL keyword reference documentation. - [ORDER BY keyword](https://questdb.com/docs/query/sql/order-by.md): ORDER BY SQL keyword reference documentation. - [PIVOT keyword](https://questdb.com/docs/query/sql/pivot.md): PIVOT SQL keyword reference documentation. - [SAMPLE BY keyword](https://questdb.com/docs/query/sql/sample-by.md): SAMPLE BY SQL keyword reference documentation. - [UNNEST keyword](https://questdb.com/docs/query/sql/unnest.md): Reference documentation for UNNEST, which expands arrays and JSON arrays into rows in QuestDB. - [WHERE keyword](https://questdb.com/docs/query/sql/where.md): WHERE SQL keyword reference documentation. - [WINDOW JOIN keyword](https://questdb.com/docs/query/sql/window-join.md): Learn how to use WINDOW JOIN for efficient time-based aggregation across related tables in QuestDB. - [WITH keyword](https://questdb.com/docs/query/sql/with.md): WITH SQL keyword reference documentation. - [SHOW keyword](https://questdb.com/docs/query/sql/show.md): SHOW SQL keyword reference documentation. - [SNAPSHOT keyword](https://questdb.com/docs/query/sql/snapshot.md): SNAPSHOT SQL keyword reference documentation. - [SWITCH COLD STORAGE ROLE](https://questdb.com/docs/query/sql/switch-cold-storage-role.md): SWITCH COLD STORAGE ROLE and SWITCH COLD STORAGE STATUS SQL keyword reference documentation. - [SWITCH ROLE](https://questdb.com/docs/query/sql/switch-role.md): SWITCH ROLE and SWITCH STATUS SQL keyword reference documentation. Moves a running QuestDB Enterprise instance between the primary and replica roles. - [TRUNCATE TABLE keyword](https://questdb.com/docs/query/sql/truncate.md): TRUNCATE SQL keyword reference documentation. - [UNION EXCEPT INTERSECT keywords](https://questdb.com/docs/query/sql/union-except-intersect.md): UNION, EXCEPT, and INTERSECT SQL keyword reference documentation. - [UPDATE keyword](https://questdb.com/docs/query/sql/update.md): UPDATE SQL keyword reference documentation. - [VACUUM TABLE](https://questdb.com/docs/query/sql/vacuum-table.md): VACUUM TABLE SQL keyword reference documentation - [SQL execution order](https://questdb.com/docs/query/sql-execution-order.md): Execution order for SQL clauses in QuestDB. This covers the SQL keywords you may already be familiar with as well as extensions to the language that are unique to QuestDB. Functions - [Aggregate functions](https://questdb.com/docs/query/functions/aggregation.md): SQL aggregate functions for summarizing data including count, sum, avg, min, max, statistical functions, and more. - [Array functions](https://questdb.com/docs/query/functions/array.md): Array functions reference documentation. - [Binary functions](https://questdb.com/docs/query/functions/binary.md): Binary function reference documentation. - [Boolean functions](https://questdb.com/docs/query/functions/boolean.md): Boolean function reference documentation. - [Conditional functions](https://questdb.com/docs/query/functions/conditional.md): Conditional functions reference documentation. - [Timestamp, date and time functions](https://questdb.com/docs/query/functions/date-time.md): Timestamp, date and time functions reference documentation. - [Finance functions](https://questdb.com/docs/query/functions/finance.md): Market data and financial functions including l2price, mid, spread_bps, TWAP, VWAP, and wmid for order book, execution benchmarking, and pricing analysis. - [Hash Functions](https://questdb.com/docs/query/functions/hash.md): Hash (md5, sha1 and sha256) SQL functions reference documentation and explanation. - [JSON functions](https://questdb.com/docs/query/functions/json.md): JSON functions reference documentation. - [Meta functions](https://questdb.com/docs/query/functions/meta.md): Database and table metadata function reference documentation. - [Numeric functions](https://questdb.com/docs/query/functions/numeric.md): Numeric function reference documentation. - [Parquet functions](https://questdb.com/docs/query/functions/parquet.md): QuestDB Apache Parquet functions reference documentation. - [Pattern matching operators](https://questdb.com/docs/query/functions/pattern-matching.md): Pattern matching operators reference documentation. - [Random value generator](https://questdb.com/docs/query/functions/random-value-generator.md): Random value generator function reference documentation. - [Sequence generators](https://questdb.com/docs/query/functions/row-generator.md): Sequence generator function reference documentation. - [Spatial functions](https://questdb.com/docs/query/functions/spatial.md): Spatial functions for LIDAR point clouds, robotics, physical AI, and geographic coordinate systems. Includes bounding box queries, radius searches, distance calculations, and geohash operations. - [Text functions](https://questdb.com/docs/query/functions/text.md): Text function reference documentation. - [Timestamp function](https://questdb.com/docs/query/functions/timestamp.md): Timestamp function reference documentation. - [Touch function](https://questdb.com/docs/query/functions/touch.md): Touch functions reference documentation. - [Trigonometric functions](https://questdb.com/docs/query/functions/trigonometric.md): Trigonometric function reference documentation. - [UUID functions](https://questdb.com/docs/query/functions/uuid.md): UUID functions reference documentation. - [Visualization functions](https://questdb.com/docs/query/functions/visualization.md): SQL functions for rendering inline charts in query results using Unicode block characters. Window Functions - [Window Functions Overview](https://questdb.com/docs/query/functions/window-functions/overview.md): Introduction to window functions in QuestDB - perform calculations across related rows without collapsing results. - [Window Functions Reference](https://questdb.com/docs/query/functions/window-functions/reference.md): Complete reference for all window functions in QuestDB including avg, sum, ksum, count, stddev, variance, covariance, correlation, rank, dense_rank, percent_rank, ntile, cume_dist, row_number, lag, lead, nth_value, EMA, VWEMA, and more. - [Window Function Syntax](https://questdb.com/docs/query/functions/window-functions/syntax.md): Complete syntax reference for window functions including the OVER clause, named windows with the WINDOW clause, and window inheritance. Operators - [Bitwise Operators](https://questdb.com/docs/query/operators/bitwise.md): Bitwise operators - [Comparison Operators](https://questdb.com/docs/query/operators/comparison.md): Comparison operators - [Date and Time Operators](https://questdb.com/docs/query/operators/date-time.md): Date and time operators for timestamp filtering in WHERE clauses - [Time Intervals (TICK)](https://questdb.com/docs/query/operators/tick.md): TICK (Temporal Interval Calendar Kit) - a powerful syntax for expressing complex temporal intervals in QuestDB queries. - [Exchange calendars](https://questdb.com/docs/query/operators/exchange-calendars.md): Exchange calendars filter TICK intervals to real exchange trading sessions, handling holidays, early closes, lunch breaks, and DST automatically. QuestDB Enterprise feature. - [IPv4 Operators](https://questdb.com/docs/query/operators/ipv4.md): IPv4 operators - [Logical Operators](https://questdb.com/docs/query/operators/logical.md): Logical operators - [Misc Operators](https://questdb.com/docs/query/operators/misc.md): Misc operators - [Numeric Operators](https://questdb.com/docs/query/operators/numeric.md): Numeric operators - [Operator Precedence Table](https://questdb.com/docs/query/operators/precedence.md): Operator precedence table - [Spatial Operators](https://questdb.com/docs/query/operators/spatial.md): Spatial operators - [Text Operators](https://questdb.com/docs/query/operators/text.md): Text operators ## Web Console - [Code Editor](https://questdb.com/docs/getting-started/web-console/code-editor.md): Write and execute SQL queries with the powerful Code Editor in QuestDB Web Console Notebooks - [Overview](https://questdb.com/docs/getting-started/web-console/notebooks/overview.md): SQL notebooks in the QuestDB Web Console combine queries, markdown notes, and live charts in one tab. Create a notebook, run a query, and draw your first chart. - [Notebook cells](https://questdb.com/docs/getting-started/web-console/notebooks/cells.md): Working with cells in QuestDB Web Console notebooks. SQL and markdown cells, running multi-statement queries, result tabs, naming, organizing, and resizing. - [Notebook charts](https://questdb.com/docs/getting-started/web-console/notebooks/charts.md): Draw charts from SQL in QuestDB Web Console notebooks. Nine chart types, chart settings, combining multiple queries on one canvas, and zooming. - [Notebook variables](https://questdb.com/docs/getting-started/web-console/notebooks/variables.md): Define notebook-wide variables in the QuestDB Web Console and reference them as @name in every cell. Built on QuestDB's DECLARE syntax. - [Live dashboards](https://questdb.com/docs/getting-started/web-console/notebooks/live-dashboards.md): Turn a QuestDB notebook into a live dashboard with the grid layout, auto-refreshing charts, and notebook variables. - [Managing and sharing notebooks](https://questdb.com/docs/getting-started/web-console/notebooks/manage-share.md): Rename, duplicate, export, and restore QuestDB Web Console notebooks, and understand where they are stored and their limits. - [QuestDB MCP Server](https://questdb.com/docs/getting-started/web-console/mcp-server.md): The official QuestDB MCP server connects AI coding agents like Claude Code, Codex, and Cursor to the QuestDB Web Console, where they explore schemas, run SQL, and build notebooks and live dashboards. Covers setup, pairing, permission levels, and the available tools. - [AI Assistant (Bring Your Own Key)](https://questdb.com/docs/getting-started/web-console/questdb-ai.md): The QuestDB Web Console includes a built-in, bring-your-own-key AI assistant. Generate, explain, and fix SQL and build notebooks with your own OpenAI or Anthropic key, or a local model. No coding agent needed. - [Metrics View](https://questdb.com/docs/getting-started/web-console/metrics-view.md): Monitor database performance and metrics with the Metrics View in QuestDB Web Console - [Schema Explorer](https://questdb.com/docs/getting-started/web-console/schema-explorer.md): Browse and explore your database structure with the Schema Explorer in QuestDB Web Console - [Table Details](https://questdb.com/docs/getting-started/web-console/table-details.md): Monitor real-time ingestion metrics and health status, and view metadata for tables and materialized views in QuestDB Web Console - [Result Grid](https://questdb.com/docs/getting-started/web-console/result-grid.md): View, analyze, and export query results with the interactive Result Grid in QuestDB Web Console - [Query Log](https://questdb.com/docs/getting-started/web-console/query-log.md): Monitor query execution status and performance with the Query Log in QuestDB Web Console - [Import CSV Using Web Console](https://questdb.com/docs/getting-started/web-console/import-csv.md): Import CSV files into QuestDB using the Web Console's intuitive import interface ## Concepts Core Concepts - [Designated timestamp](https://questdb.com/docs/concepts/designated-timestamp.md): Complete guide to designated timestamp in QuestDB - why it exists, how it works, what it enables, limitations, best practices, and troubleshooting. - [Out-of-order data](https://questdb.com/docs/concepts/out-of-order-data.md): How QuestDB handles out-of-order and late-arriving data. Behavior per ingestion method, engine mechanics, write amplification, and tuning. - [Working with time zones](https://questdb.com/docs/concepts/timestamps-timezones.md): How to filter and convert timestamps by time zone in QuestDB using TICK syntax and conversion functions. - [Time Partitions](https://questdb.com/docs/concepts/partitions.md): Overview of QuestDB's partition system for time-series. This is an important feature that will help you craft more efficient queries. - [Parquet](https://questdb.com/docs/concepts/parquet.md): How QuestDB stores and exports data in Apache Parquet format. Covers creating tables directly as Parquet, converting partitions in place manually or automatically, and exporting query results as external Parquet files. - [Symbol](https://questdb.com/docs/concepts/symbol.md): The SYMBOL data type in QuestDB stores repetitive strings efficiently, enabling fast filtering and grouping operations. - [Views](https://questdb.com/docs/concepts/views.md): Views are virtual tables defined by SQL SELECT statements. Learn how to create, query, and manage views in QuestDB for query reusability and abstraction. - [Materialized Views](https://questdb.com/docs/concepts/materialized-views.md): Materialized views are designed to maintain the speed of your queries as you scale your data. Understand how to structure your queries to take advantage of this feature. - [Live Views](https://questdb.com/docs/concepts/live-views.md): Live views incrementally maintain window-function results over a base table so that running totals, moving averages, and rankings can be read like a regular table without recomputing on every query. - [Deduplication](https://questdb.com/docs/concepts/deduplication.md): Deduplication prevents duplicate rows and reduces write amplification when reloading data. - [Delivery semantics](https://questdb.com/docs/concepts/delivery-semantics.md): How QuestDB clients deliver data (at-least-once), where duplicate rows can arise, and how to combine designated timestamps with deduplication for exactly-once outcomes. - [Time To Live (TTL)](https://questdb.com/docs/concepts/ttl.md): Automatic data retention in QuestDB - configure TTL to automatically drop old partitions. - [Storage Policy](https://questdb.com/docs/concepts/storage-policy.md): Automate partition lifecycle in QuestDB Enterprise - convert to Parquet locally and drop old data on a schedule. - [Cold Storage](https://questdb.com/docs/concepts/cold-storage.md): Move historical partitions to S3, Google Cloud Storage, Azure Blob Storage or a filesystem store as Parquet, and keep querying them with normal SQL. - [Write-Ahead Log (WAL)](https://questdb.com/docs/concepts/write-ahead-log.md): WAL enables concurrent writes, crash recovery, and replication for high availability. Deep Dive - [Indexes](https://questdb.com/docs/concepts/deep-dive/indexes.md): Explanation on how indexes work as well as the pros and cons that you need to be aware of when using them. - [Posting index and covering index](https://questdb.com/docs/concepts/deep-dive/posting-index.md): The posting index is a compact, high-performance index for symbol columns that supports covering queries. Learn how it works, when to use it, and how to optimize queries with INCLUDE columns. - [Interval Scan](https://questdb.com/docs/concepts/deep-dive/interval-scan.md): Deep dive into interval scans - how to verify they're being used and edge cases to be aware of. - [JIT compiler](https://questdb.com/docs/concepts/deep-dive/jit-compiler.md): Documentation for usage of the just-in-time (JIT) SQL compiler in QuestDB. JIT compilation enhances the performance of the system to run SQL queries which contain filters with arithmetical expressions. - [Query tracing](https://questdb.com/docs/concepts/deep-dive/query-tracing.md): Query tracing is a feature that helps you diagnose performance issues with queries by recording each query's execution time in a system table. - [SQL optimizer hints](https://questdb.com/docs/concepts/deep-dive/sql-optimizer-hints.md): SQL Hints allow expert users to guide the query optimizer in QuestDB when default optimization strategies are not optimal. This document describes available hints and when to use them. - [Root directory structure](https://questdb.com/docs/concepts/deep-dive/root-directory-structure.md): Contents of the folder explained. ## Architecture - [Architecture Overview](https://questdb.com/docs/architecture/questdb-architecture.md): A deep technical dive into the internal architecture, storage engine, query processing, and native integrations of QuestDB. - [QuestDB Storage Engine](https://questdb.com/docs/architecture/storage-engine.md): The QuestDB Storage Engine uses a column-oriented design to ensure high I/O performance and low latency. - [Memory Management](https://questdb.com/docs/architecture/memory-management.md): QuestDB leverages both memory mapping and explicit memory management techniques, and integrates native code for performance-critical tasks. - [Query Engine](https://questdb.com/docs/architecture/query-engine.md): The QuestDB Query Engine includes A custom SQL parser, a just-in-time (JIT) compiler, and a vectorized execution engine to process data in table page frames for better CPU use. - [Time Series Optimizations](https://questdb.com/docs/architecture/time-series-optimizations.md): QuestDB is specifically designed for time series, and it provides several optimizations such as a designated timestamp, sequential reads, materialized views, and in-memory processing. - [Observability](https://questdb.com/docs/architecture/observability.md): QuestDB provides real-time metrics, a health check endpoint, and logging to monitor performance and simplify troubleshooting. ## Configuration - [Overview](https://questdb.com/docs/configuration/overview.md): Server configuration keys reference documentation. - [Cairo engine](https://questdb.com/docs/configuration/cairo-engine.md): Configuration settings for the Cairo SQL engine in QuestDB. - [Cold storage](https://questdb.com/docs/configuration/cold-storage.md): Configuration settings for QuestDB Enterprise cold storage, covering the object store connection, roles, upload, read path, and garbage collection. - [COPY settings](https://questdb.com/docs/configuration/copy-settings.md): Configuration settings for CSV import and Parquet export in QuestDB. - [HTTP server](https://questdb.com/docs/configuration/http-server.md): Configuration settings for the Web Console and REST API in QuestDB. - [Identity and Access Management (IAM)](https://questdb.com/docs/configuration/iam.md): Configuration settings for Identity and Access Management in QuestDB Enterprise. - [Ingestion (ILP/HTTP)](https://questdb.com/docs/configuration/ingestion.md): Configuration settings for InfluxDB Line Protocol ingestion in QuestDB. - [Live views](https://questdb.com/docs/configuration/live-views.md): Configuration settings for live views in QuestDB. - [Logging & Metrics](https://questdb.com/docs/configuration/logging-metrics.md): Configuration settings for logging and metrics in QuestDB. - [Materialized views](https://questdb.com/docs/configuration/materialized-views.md): Configuration settings for materialized views in QuestDB. - [Minimal HTTP server](https://questdb.com/docs/configuration/http-min-server.md): Configuration settings for the minimal HTTP server in QuestDB. - [OpenID Connect (OIDC)](https://questdb.com/docs/configuration/oidc.md): Configuration settings for OpenID Connect integration in QuestDB Enterprise. - [Parallel SQL execution](https://questdb.com/docs/configuration/parallel-sql-execution.md): Configuration settings for parallel SQL execution in QuestDB. - [Postgres wire protocol](https://questdb.com/docs/configuration/postgres-wire-protocol.md): Configuration settings for PostgreSQL wire protocol connections in QuestDB. - [QuestDB Wire Protocol (QWP)](https://questdb.com/docs/configuration/qwp.md): Server-side configuration for QWP ingestion and query endpoints. - [Replication](https://questdb.com/docs/configuration/database-replication.md): Configuration settings for database replication in QuestDB Enterprise. - [Shared workers](https://questdb.com/docs/configuration/shared-workers.md): Configuration settings for QuestDB worker thread pools. - [Storage policy](https://questdb.com/docs/configuration/storage-policy.md): Configuration settings for storage policies in QuestDB Enterprise. - [Telemetry](https://questdb.com/docs/configuration/telemetry.md): Configuration settings for anonymous telemetry in QuestDB. - [TLS encryption](https://questdb.com/docs/configuration/tls.md): Configuration settings for TLS encryption across QuestDB interfaces. - [WAL table configurations](https://questdb.com/docs/configuration/wal.md): Configuration settings for WAL tables in QuestDB. ## Security - [Role-Based Access Control (RBAC)](https://questdb.com/docs/security/rbac.md): Granular access control from database level down to individual columns and rows. Learn how to secure your QuestDB instance with users, groups, and fine-grained permissions. - [OpenID Connect (OIDC)](https://questdb.com/docs/security/oidc.md): Configure OpenID Connect (OIDC) integration with external Identity Providers for SSO authentication in QuestDB Enterprise Web Console. - [TLS Encryption](https://questdb.com/docs/security/tls.md): Details and resources which describe how to configure TLS encryption for available network interfaces. ## High Availability - [Overview](https://questdb.com/docs/high-availability/overview.md): How QuestDB delivers high availability — server-side primary-replica replication, plus client-side failover and store-and-forward. Replication - [Replication setup guide](https://questdb.com/docs/high-availability/setup.md): Step-by-step guide to setting up QuestDB Enterprise replication with object storage, primary and replica nodes. - [Failover and role switch](https://questdb.com/docs/high-availability/failover.md): Switch a QuestDB Enterprise node between the primary and replica roles in place, promote a replica after a primary loss, and recover from a refused switch. - [Replication tuning](https://questdb.com/docs/high-availability/tuning.md): Tune QuestDB replication for lower latency or reduced network costs. - [WAL cleanup](https://questdb.com/docs/high-availability/wal-cleanup.md): Configure automatic cleanup of replicated WAL data in object storage to control storage costs. Client Failover - [Client failover concepts](https://questdb.com/docs/high-availability/client-failover/concepts.md): How QuestDB clients detect a failed primary and transparently switch to a healthy peer using multi-host addr lists, host-health classification, role filtering, and zone-aware selection. - [Client failover configuration](https://questdb.com/docs/high-availability/client-failover/configuration.md): Connect-string keys that configure multi-host failover for QuestDB clients, including addr lists, zone preference, role filtering, and the ingress and egress retry budgets. Store-and-Forward - [Store-and-forward concepts](https://questdb.com/docs/high-availability/store-and-forward/concepts.md): How the QuestDB store-and-forward client substrate decouples the producer from the wire, masks network outages and server restarts, and replays unacknowledged frames against a fresh connection. - [When to use store-and-forward](https://questdb.com/docs/high-availability/store-and-forward/when-to-use.md): Decision guide for choosing between memory mode and disk-backed store-and-forward, when to opt into durable-ack trim, and when to enable orphan adoption. - [Operating and tuning store-and-forward](https://questdb.com/docs/high-availability/store-and-forward/operating-and-tuning.md): Operational guidance for QuestDB store-and-forward producers — slot directory layout, locks, capacity sizing, recovery, backpressure, observability, and orphan adoption. - [Store-and-forward configuration](https://questdb.com/docs/high-availability/store-and-forward/configuration.md): Connect-string keys that configure the QuestDB store-and-forward client substrate — storage, reconnect, durable-ack, and error-handling. ## Operations - [Upgrade QuestDB](https://questdb.com/docs/operations/upgrade.md): How to upgrade QuestDB to a newer version using Docker or binaries, for both open source and enterprise editions. - [Backup and restore](https://questdb.com/docs/operations/backup.md): Instructions and advice on performing backup/restore operations on QuestDB - [Cold storage](https://questdb.com/docs/operations/cold-storage.md): Set up, monitor, and operate QuestDB Enterprise cold storage, including object store preparation, manager handoff, garbage collection, and troubleshooting. - [Logging and metrics](https://questdb.com/docs/operations/logging-metrics.md): Configure and understand QuestDB logging and metrics, including log levels, configuration options, and Prometheus integration. - [Monitoring and alerting](https://questdb.com/docs/operations/monitoring-alerting.md): Monitor QuestDB health and detect table issues like suspended WAL, memory pressure, and slow queries. - [Data retention](https://questdb.com/docs/operations/data-retention.md): How to employ a data retention strategy to delete old data and save disk space - [How UPDATE works](https://questdb.com/docs/operations/updating-data.md): How the UPDATE statement is implemented in QuestDB. - [Alternatives to UPDATE](https://questdb.com/docs/operations/modifying-data.md): Append-oriented patterns for modifying data in QuestDB without using UPDATE. - [Automating QuestDB Tasks](https://questdb.com/docs/operations/task-automation.md): Learn how to automate QuestDB tasks using the REST HTTP API, or one of our recommended workflow orchestrators. ## Deployment - [Using Docker with QuestDB](https://questdb.com/docs/deployment/docker.md): Guide showing how to use QuestDB with Docker. This also covers how to import and persist QuestDB data in a docker container. - [Run QuestDB on Kubernetes](https://questdb.com/docs/deployment/kubernetes.md): This document describes how to deploy QuestDB using a Kubernetes cluster by means of official Helm charts maintained by the QuestDB project Enterprise Kubernetes Operator - [Overview](https://questdb.com/docs/enterprise-kubernetes-operator.md): Deploy and operate QuestDB Enterprise clusters on Kubernetes. - [Install the Kubernetes Operator](https://questdb.com/docs/enterprise-kubernetes-operator/installation.md): Install the QuestDB Enterprise Kubernetes Operator from its supported OCI Helm chart. Getting Started - [Amazon EKS](https://questdb.com/docs/enterprise-kubernetes-operator/getting-started/aws.md): Prepare Amazon EKS and deploy QuestDB Enterprise with the Kubernetes Operator. - [Azure AKS](https://questdb.com/docs/enterprise-kubernetes-operator/getting-started/azure.md): Prepare Azure AKS and deploy QuestDB Enterprise with the Kubernetes Operator. - [Migrate existing QuestDB](https://questdb.com/docs/enterprise-kubernetes-operator/getting-started/migrate.md): Migrate an existing QuestDB Enterprise deployment onto the Kubernetes Operator with a replica-first cutover. - [Configure the Kubernetes Operator](https://questdb.com/docs/enterprise-kubernetes-operator/configuration.md): Configure QuestDB clusters, object storage, backup, replication, storage, and scheduling. Day 2 operations - [Operator operations](https://questdb.com/docs/enterprise-kubernetes-operator/operations/operator.md): Monitor, upgrade, roll back, and safely remove the Kubernetes Operator. - [Database operations](https://questdb.com/docs/enterprise-kubernetes-operator/operations/database.md): Operate, scale, resize, maintain, and delete Operator-managed QuestDB clusters. - [Backup and restore](https://questdb.com/docs/enterprise-kubernetes-operator/operations/backup-restore.md): Configure backups and restore Operator-managed QuestDB clusters, including point-in-time recovery. - [High availability](https://questdb.com/docs/enterprise-kubernetes-operator/high-availability.md): Operate replication, planned promotion, emergency failover, and migration with the Kubernetes Operator. - [Troubleshoot the Kubernetes Operator](https://questdb.com/docs/enterprise-kubernetes-operator/troubleshooting.md): Diagnose Operator and QuestDB cluster conditions, events, logs, and object-store configuration. Reference - [Kubernetes Operator known limitations](https://questdb.com/docs/enterprise-kubernetes-operator/known-limitations.md): Review supported platforms, versions, lifecycle constraints, and current Kubernetes Operator limitations. - [Kubernetes Operator support](https://questdb.com/docs/enterprise-kubernetes-operator/support.md): Understand support expectations and collect a safe support bundle. - [Kubernetes Operator releases](https://questdb.com/docs/enterprise-kubernetes-operator/releases.md): Release history for the QuestDB Enterprise Kubernetes Operator. - [Kubernetes Operator API reference](https://questdb.com/docs/enterprise-kubernetes-operator/reference/api.md): Custom resources provided by the QuestDB Enterprise Kubernetes Operator. - [Launch QuestDB with systemd](https://questdb.com/docs/deployment/systemd.md): This document describes how to launch QuestDB using systemd. - [Deploying QuestDB on AWS](https://questdb.com/docs/deployment/aws.md): Deploy QuestDB on Amazon Web Services using EC2, with instance sizing, storage, and networking recommendations. - [Deploying QuestDB on Azure](https://questdb.com/docs/deployment/azure.md): Deploy QuestDB on Microsoft Azure using Virtual Machines, with instance sizing, storage, and networking recommendations. - [Deploying QuestDB on GCP](https://questdb.com/docs/deployment/gcp.md): Deploy QuestDB on Google Cloud Platform using Compute Engine, with instance sizing, storage, and networking recommendations. - [Deploying to Digital Ocean](https://questdb.com/docs/deployment/digital-ocean.md): This document describes how to launch the official AWS Marketplace AMI with QuestDB installed and how to access and secure the instance on Amazon Web Services - [Deploying to Hetzner Cloud](https://questdb.com/docs/deployment/hetzner.md): This document explains what hardware to use, and how to provision QuestDB on Hetzner Cloud with storage volumes and automated backups. - [ZFS Compression](https://questdb.com/docs/deployment/compression-zfs.md): How to install ZFS and enable system-level compression for QuestDB. ## Integrations - [Third-Party Tools Overview](https://questdb.com/docs/integrations/overview.md): QuestDB integrates well with a number of third-party tools. This page lists some of the most popular integrations. Visualization - [Grafana](https://questdb.com/docs/integrations/visualization/grafana.md): Guide for fastest, high performance time-series data visualizations with QuestDB and Grafana. - [qStudio](https://questdb.com/docs/integrations/visualization/qstudio.md): Guide for querying QuestDB using qStudio - [Superset](https://questdb.com/docs/integrations/visualization/superset.md): Guide for using Superset with QuestDB - [PowerBI](https://questdb.com/docs/integrations/visualization/powerbi.md): Guide for using PowerBI with QuestDB. Use the top performing QuestDB database to build your PowerBI dashboards. - [Embeddable](https://questdb.com/docs/integrations/visualization/embeddable.md): Embeddable is a developer toolkit for building fast, interactive, fully-custom analytics experiences directly into your app. - [Data Ingestion](/docs/integrations/overview/#data-ingestion-and-streaming) Data Processing - [Pandas](https://questdb.com/docs/integrations/data-processing/pandas.md): Query QuestDB into pandas DataFrames and ingest DataFrames natively with the QuestDB Python client over QWP. - [Polars](https://questdb.com/docs/integrations/data-processing/polars.md): Query QuestDB into Polars DataFrames and ingest them natively from Python and Rust over QWP. - [Apache Spark and Time-Series Analytics](https://questdb.com/docs/integrations/data-processing/spark.md): This document describes how to load data from QuestDB to Apache Spark for large-scale data engineering. Orchestration - [Apache Airflow](https://questdb.com/docs/integrations/orchestration/airflow.md): Learn how to use Apache Airflow to automate QuestDB workflows. - [Dagster](https://questdb.com/docs/integrations/orchestration/dagster.md): Learn how to use Dagster to automate QuestDB workflows. Other Tools - [Prometheus monitoring and alerting](https://questdb.com/docs/integrations/other/prometheus.md): This document describes how to monitor QuestDB metrics such as memory consumption using the Prometheus metrics endpoint, and how to log alerts to Prometheus Alertmanager. - [SQLAlchemy](https://questdb.com/docs/integrations/other/sqlalchemy.md): Guide for using SQLAlchemy with QuestDB - [MindsDB](https://questdb.com/docs/integrations/other/mindsdb.md): Guide for getting started in Machine Learning with MindsDB and QuestDB - [Databento](https://questdb.com/docs/integrations/other/databento.md): Guide to ingest and analyze live multi-stream market data from Databento using QuestDB and Grafana. - [Cube](https://questdb.com/docs/integrations/other/cube.md): Guide for QuestDB and Cube integration. - [Ignition 8.3](https://questdb.com/docs/integrations/other/ignition.md): Guide for using Ignition 8.3 with QuestDB - [Integrating Airbyte with QuestDB](https://questdb.com/docs/integrations/other/airbyte.md): Learn how to use Airbyte to collect data from various sources and send it to QuestDB for efficient time-series data storage and analysis. ## Tutorials & Cookbook Post-Trade Analysis - [Overview](https://questdb.com/docs/cookbook/sql/finance/post-trade-overview.md): Post-trade and transaction cost analysis (TCA) recipes for FX and equities in QuestDB — slippage, markout curves, implementation shortfall, venue scoring, and VPIN using ASOF JOIN, HORIZON JOIN, PIVOT, and window functions. - [Slippage per fill](https://questdb.com/docs/cookbook/sql/finance/slippage.md): Measure execution slippage against the prevailing mid price and top-of-book for every trade fill - [Aggregated slippage by venue and counterparty](https://questdb.com/docs/cookbook/sql/finance/slippage-aggregated.md): Aggregate execution slippage by ECN, counterparty, and passive/aggressive to compare venue and counterparty quality - [Post-trade markout analysis](https://questdb.com/docs/cookbook/sql/finance/markout.md): Measure post-trade price reversion using HORIZON JOIN to evaluate execution quality and detect adverse selection - [Last look detection](https://questdb.com/docs/cookbook/sql/finance/last-look.md): Detect last-look behavior using millisecond-granularity markout analysis with HORIZON JOIN - [Implementation shortfall decomposition](https://questdb.com/docs/cookbook/sql/finance/implementation-shortfall.md): Decompose total execution cost into effective spread, permanent impact, and temporary impact using HORIZON JOIN and PIVOT - [Order-level implementation shortfall](https://questdb.com/docs/cookbook/sql/finance/implementation-shortfall-order.md): Calculate total implementation shortfall per order by comparing volume-weighted execution price against arrival mid - [ECN scorecard](https://questdb.com/docs/cookbook/sql/finance/ecn-scorecard.md): Compare venue fill quality with a single dashboard query combining spread, slippage, fill size, and passive ratio - [VPIN (Volume-synchronized Probability of Informed Trading)](https://questdb.com/docs/cookbook/sql/finance/vpin.md): Estimate the probability of informed trading using volume-bucketed order flow imbalance Cookbook - [Cookbook overview](https://questdb.com/docs/cookbook.md): Quick recipes and practical examples for common QuestDB tasks and queries - [Demo data schema](https://questdb.com/docs/cookbook/demo-data-schema.md): Schema and structure of the FX market data and cryptocurrency trades available on demo.questdb.io SQL Recipes Capital Markets Price-Based Indicators - [OHLC bars](https://questdb.com/docs/cookbook/sql/finance/ohlc.md): Generate OHLC (Open, High, Low, Close) bars from tick data using SAMPLE BY - [Volume weighted average price (VWAP)](https://questdb.com/docs/cookbook/sql/finance/vwap.md): Calculate cumulative volume weighted average price using window functions for intraday trading analysis - [Time-weighted average price (TWAP)](https://questdb.com/docs/cookbook/sql/finance/twap.md): Calculate the time-weighted average price using the native twap() aggregate function for execution benchmarking, fair value reference, and algorithmic trading analysis. - [Bollinger bands](https://questdb.com/docs/cookbook/sql/finance/bollinger-bands.md): Calculate Bollinger Bands using window functions for volatility analysis and mean reversion trading strategies - [Bollinger BandWidth](https://questdb.com/docs/cookbook/sql/finance/bollinger-bandwidth.md): Calculate Bollinger BandWidth to measure volatility and identify squeeze setups for potential breakouts Momentum Indicators - [RSI (Relative Strength Index)](https://questdb.com/docs/cookbook/sql/finance/rsi.md): Calculate the Relative Strength Index momentum oscillator to identify overbought and oversold conditions - [MACD (Moving Average Convergence Divergence)](https://questdb.com/docs/cookbook/sql/finance/macd.md): Calculate MACD indicator with signal line and histogram for trend-following momentum analysis - [Stochastic Oscillator](https://questdb.com/docs/cookbook/sql/finance/stochastic.md): Calculate the Stochastic Oscillator to identify overbought and oversold conditions based on price position within recent range - [Rate of Change (ROC)](https://questdb.com/docs/cookbook/sql/finance/rate-of-change.md): Calculate Rate of Change momentum indicator to measure percentage price change over a period Volatility Indicators - [ATR (Average True Range)](https://questdb.com/docs/cookbook/sql/finance/atr.md): Calculate Average True Range to measure market volatility for position sizing and stop-loss placement - [Rolling standard deviation](https://questdb.com/docs/cookbook/sql/finance/rolling-stddev.md): Calculate rolling standard deviation using window functions - [Donchian Channels](https://questdb.com/docs/cookbook/sql/finance/donchian-channels.md): Calculate Donchian Channels to identify breakouts and trading ranges using highest high and lowest low - [Keltner Channels](https://questdb.com/docs/cookbook/sql/finance/keltner-channels.md): Calculate Keltner Channels using EMA and ATR for volatility-based support and resistance levels - [Realized volatility](https://questdb.com/docs/cookbook/sql/finance/realized-volatility.md): Calculate realized volatility from historical returns for risk measurement and comparison to implied volatility Volume & Order Flow - [OBV (On-Balance Volume)](https://questdb.com/docs/cookbook/sql/finance/obv.md): Calculate On-Balance Volume to track cumulative buying and selling pressure using volume flow - [Volume profile](https://questdb.com/docs/cookbook/sql/finance/volume-profile.md): Calculate volume profile by grouping trades into price bins - [Volume spike detection](https://questdb.com/docs/cookbook/sql/finance/volume-spike.md): Detect volume spikes by comparing current volume against previous volume using LAG - [Aggressor volume imbalance](https://questdb.com/docs/cookbook/sql/finance/aggressor-volume-imbalance.md): Calculate buy vs sell aggressor volume imbalance for order flow analysis - [Order Flow Imbalance (OFI)](https://questdb.com/docs/cookbook/sql/finance/order-flow-imbalance.md): Measure top-of-book buying and selling pressure from L1 quote updates using the Cont-Kukanov-Stoikov definition. - [VPIN (Volume-synchronized Probability of Informed Trading)](https://questdb.com/docs/cookbook/sql/finance/vpin.md): Estimate the probability of informed trading using volume-bucketed order flow imbalance Risk Metrics - [Maximum drawdown](https://questdb.com/docs/cookbook/sql/finance/maximum-drawdown.md): Calculate maximum drawdown to measure the largest peak-to-trough decline for risk assessment Market Microstructure - [Bid-ask spread](https://questdb.com/docs/cookbook/sql/finance/bid-ask-spread.md): Calculate bid-ask spread metrics for transaction cost analysis and liquidity measurement - [Gamma scalping signal](https://questdb.com/docs/cookbook/sql/finance/gamma-scalping-signal.md): Assess gamma scalping conditions by comparing realized volatility against bid-ask spread cost - [Liquidity comparison across instruments](https://questdb.com/docs/cookbook/sql/finance/liquidity-comparison.md): Compare liquidity across multiple instruments using L2Price to calculate effective spreads at different order sizes Market Breadth - [TICK and TRIN indicators](https://questdb.com/docs/cookbook/sql/finance/tick-trin.md): Calculate TICK and TRIN (ARMS Index) for market breadth analysis Math Utilities - [Calculate compound interest](https://questdb.com/docs/cookbook/sql/finance/compound-interest.md): Calculate compound interest over time using POWER and window functions - [Cumulative product for random walk](https://questdb.com/docs/cookbook/sql/finance/cumulative-product.md): Calculate cumulative product to simulate stock price paths from daily returns - [Log returns](https://questdb.com/docs/cookbook/sql/finance/log-returns.md): Compute log returns between consecutive price observations for financial analysis Time-Series Patterns - [Elapsed time between rows](https://questdb.com/docs/cookbook/sql/time-series/elapsed-time.md): Calculate the time elapsed between consecutive rows using lag() and datediff() - [Force a designated timestamp](https://questdb.com/docs/cookbook/sql/time-series/force-designated-timestamp.md): Learn how to explicitly set a designated timestamp column in QuestDB queries using the TIMESTAMP keyword - [Check whether data is sorted by timestamp](https://questdb.com/docs/cookbook/sql/time-series/check-timestamp-order.md): Detect out-of-order timestamps in QuestDB tables, CSV imports and external Parquet files by comparing each row against the previous one with lag(). - [Get latest N records per partition](https://questdb.com/docs/cookbook/sql/time-series/latest-n-per-partition.md): Retrieve the most recent N rows for each distinct value using window functions and filtering - [Calculate sessions and elapsed time](https://questdb.com/docs/cookbook/sql/time-series/session-windows.md): Identify sessions by detecting state changes and calculate elapsed time between events using window functions - [Query last N minutes of activity](https://questdb.com/docs/cookbook/sql/time-series/latest-activity-window.md): Get rows from the last N minutes of recorded activity using subqueries with LIMIT -1 - [Filter data by week number](https://questdb.com/docs/cookbook/sql/time-series/filter-by-week.md): Query data by ISO week number using week_of_year() or dateadd() for better performance - [Distribute discrete values across time intervals](https://questdb.com/docs/cookbook/sql/time-series/distribute-discrete-values.md): Spread cumulative measurements across time intervals using sessions and window functions - [Query with epoch timestamps](https://questdb.com/docs/cookbook/sql/time-series/epoch-timestamps.md): Use epoch timestamps for timestamp filtering in QuestDB - [Right interval bound with SAMPLE BY](https://questdb.com/docs/cookbook/sql/time-series/sample-by-interval-bounds.md): Shift SAMPLE BY timestamps to use right interval bound instead of left bound - [Remove outliers from candle data](https://questdb.com/docs/cookbook/sql/time-series/remove-outliers.md): Filter outliers in OHLC candles using window functions to compare against moving averages - [Fill missing intervals with value from another column](https://questdb.com/docs/cookbook/sql/time-series/fill-from-one-column.md): Use window functions to propagate values from one column to fill multiple columns in SAMPLE BY queries - [FILL PREV with historical values](https://questdb.com/docs/cookbook/sql/time-series/fill-prev-with-history.md): Use FILL(PREV) with a filler row to carry historical values into a filtered time interval - [FILL on keyed queries with arbitrary intervals](https://questdb.com/docs/cookbook/sql/time-series/fill-keyed-arbitrary-interval.md): Use FILL with keyed queries and any FILL strategy across arbitrary time intervals by sandwiching data with null boundary rows - [Join strategies for sparse sensor data](https://questdb.com/docs/cookbook/sql/time-series/sparse-sensor-data.md): Compare CROSS JOIN, LEFT JOIN, and ASOF JOIN strategies for combining data from sensors stored in separate tables Advanced SQL - [Access rows before and after current row](https://questdb.com/docs/cookbook/sql/advanced/rows-before-after-value-match.md): Use LAG and LEAD window functions to access values from surrounding rows - [Find local minimum and maximum](https://questdb.com/docs/cookbook/sql/advanced/local-min-max.md): Find the minimum and maximum values within a time range around each row - [Check whether a column is sorted by another column](https://questdb.com/docs/cookbook/sql/advanced/check-column-sort-order.md): Use lag() with an explicit ORDER BY to test whether one column ever decreases as another column increases. - [Top N plus others row](https://questdb.com/docs/cookbook/sql/advanced/top-n-plus-others.md): Group query results into top N rows plus an aggregated "Others" row using rank() and CASE expressions - [Pivot with "Others" column](https://questdb.com/docs/cookbook/sql/advanced/pivot-with-others.md): Pivot specific values into columns while aggregating remaining values into an "Others" column using CASE statements - [Unpivoting query results](https://questdb.com/docs/cookbook/sql/advanced/unpivot-table.md): Convert wide-format data to long format using UNION ALL - [Sankey and funnel diagrams](https://questdb.com/docs/cookbook/sql/advanced/sankey-funnel.md): Create session-based analytics for Sankey diagrams and conversion funnels - [Multiple conditional aggregates](https://questdb.com/docs/cookbook/sql/advanced/conditional-aggregates.md): Calculate multiple conditional aggregates in a single query using CASE expressions - [General and sampled aggregates](https://questdb.com/docs/cookbook/sql/advanced/general-and-sampled-aggregates.md): Combine overall statistics with time-bucketed aggregates using CROSS JOIN - [Consistent histogram buckets](https://questdb.com/docs/cookbook/sql/advanced/consistent-histogram-buckets.md): Generate histogram data with fixed bucket boundaries for consistent distribution analysis - [Create arrays from string literals](https://questdb.com/docs/cookbook/sql/advanced/array-from-string.md): Cast string literals to array types in QuestDB - [Row-level security with views and RBAC](https://questdb.com/docs/cookbook/sql/advanced/row-level-security.md): Restrict which rows each group, user, or service account can read by combining filtered views with GRANT in QuestDB Enterprise. Integrations - [Collect OPC-UA data with Telegraf in dense format](https://questdb.com/docs/cookbook/integrations/opcua-dense-format.md): Configure Telegraf to merge sparse OPC-UA metrics into dense rows for efficient storage and querying in QuestDB Grafana - [Use Grafana time range in DECLARE variables](https://questdb.com/docs/cookbook/integrations/grafana/declare-time-range.md): Pass Grafana's dashboard time range into QuestDB DECLARE variables for parameterized queries - [Query multiple tables dynamically in Grafana](https://questdb.com/docs/cookbook/integrations/grafana/dynamic-table-queries.md): Use Grafana variables to dynamically query multiple tables with the same schema for time-series visualization - [Configure read-only user for Grafana](https://questdb.com/docs/cookbook/integrations/grafana/read-only-user.md): Set up a read-only PostgreSQL user for Grafana dashboards while maintaining admin access for DDL operations - [Grafana variable dropdown with name and value](https://questdb.com/docs/cookbook/integrations/grafana/variable-dropdown.md): Create Grafana variable dropdowns that display one value but use another in queries using regex filters - [Overlay two time series with time shift](https://questdb.com/docs/cookbook/integrations/grafana/overlay-timeshift.md): Overlay yesterday's and today's data on the same Grafana chart using time shift Programmatic - [Configure TLS certificate authorities](https://questdb.com/docs/cookbook/programmatic/tls-ca-configuration.md): Configure TLS certificate authority validation for QuestDB clients PHP - [Insert data from PHP using ILP](https://questdb.com/docs/cookbook/programmatic/php/inserting-ilp.md): Send time-series data from PHP to QuestDB using the InfluxDB Line Protocol Ruby - [Insert data from Ruby using ILP](https://questdb.com/docs/cookbook/programmatic/ruby/inserting-ilp.md): Send time-series data from Ruby to QuestDB using the InfluxDB Line Protocol over HTTP C++ - [Handle missing columns in C++ client](https://questdb.com/docs/cookbook/programmatic/cpp/missing-columns.md): Send rows with optional columns using the QuestDB C++ client by conditionally calling column methods Operations - [Configure QuestDB with Docker Compose](https://questdb.com/docs/cookbook/operations/docker-compose-config.md): Override QuestDB configuration parameters using environment variables in Docker Compose - [Store QuestDB metrics in QuestDB](https://questdb.com/docs/cookbook/operations/store-questdb-metrics.md): Scrape QuestDB Prometheus metrics using Telegraf and store them in QuestDB - [Import CSV with millisecond timestamps](https://questdb.com/docs/cookbook/operations/csv-import-milliseconds.md): Import CSV files with epoch millisecond timestamps into QuestDB - [TLS with PgBouncer for QuestDB](https://questdb.com/docs/cookbook/operations/tls-pgbouncer.md): Configure PgBouncer to provide TLS termination for QuestDB PostgreSQL connections - [Copy data between QuestDB instances](https://questdb.com/docs/cookbook/operations/copy-data-between-instances.md): Copy a subset of data from production to development QuestDB instances - [Copy a schema to another instance](https://questdb.com/docs/cookbook/operations/copy-schema-between-instances.md): Use SHOW CREATE DATABASE and the REST API to dump a QuestDB schema to a .sql file or recreate it directly on another instance. - [Query performance histogram](https://questdb.com/docs/cookbook/operations/query-times-histogram.md): Create histogram of query execution times using _query_trace table - [Optimize disk and memory usage with many tables](https://questdb.com/docs/cookbook/operations/optimize-many-tables.md): Reduce memory and disk usage when running QuestDB with many tables by adjusting memory allocation and disk chunk sizes - [Check transaction applied after ingestion](https://questdb.com/docs/cookbook/operations/check-transaction-applied.md): Verify that all ingested rows to a WAL table are visible for queries in QuestDB - [Show parameters with non-default values](https://questdb.com/docs/cookbook/operations/show-non-default-params.md): List all QuestDB configuration parameters that have been modified from their default values - [Order Book Analytics](https://questdb.com/docs/tutorials/order-book.md): Learn how to store and analyze order book data using 2D arrays in QuestDB, including mid-price calculation, spread analysis, and volume-weighted metrics. - [QuestDB to Iceberg](https://questdb.com/docs/tutorials/questdb-to-iceberg.md): Expose QuestDB's Parquet partitions as Apache Iceberg tables and query them in place from Spark, Trino, DuckDB, or PyIceberg, with no copy and no rewrite. - [Ingest L2 order book data](https://questdb.com/blog/level-2-order-book-data-into-questdb-arrays/) - [OHLC with materialized views](https://questdb.com/blog/how-to-create-a-materialized-view/) - [Migrate from InfluxDB](https://questdb.com/docs/tutorials/influxdb-migration.md): This document describes how to migrate to QuestDB from InfluxDB using your existing InfluxDB clients. - [Blog Tutorials](https://questdb.com/blog/?tag=tutorial) ## Troubleshooting - [FAQ](https://questdb.com/docs/troubleshooting/faq.md): FAQ for QuestDB troubleshooting. - [Profiling](https://questdb.com/docs/troubleshooting/profiling.md): How to profile QuestDB using async-profiler to diagnose performance issues and analyze CPU usage, memory allocation, and other runtime behaviors. - [List of OS error codes](https://questdb.com/docs/troubleshooting/os-error-codes.md): List of OS error codes that may be reported by QuestDB running on Linux and Windows. - [List of QuestDB Error Codes](https://questdb.com/docs/troubleshooting/error-codes.md): A list of error codes that QuestDB may generate, with explanations and suggested actions. - [Documentation changelog](https://questdb.com/docs/changelog.md): Recent updates and improvements to the QuestDB documentation. - [Release Notes](https://questdb.com/release-notes)