QuestDB 10.0 介绍与选型指南

QuestDB 10.0 介绍与选型指南:官方资料溯源的时序数据库核心架构、QWP 统一二进制协议与 Live Views、快速上手与适用限制,以及与 InfluxDB、TimescaleDB、ClickHouse 的量化选型对比(数据查询日期 2026-10-19)。

QuestDBQuestDB时间序列OLAP2026/10/19

QuestDB 10.0 介绍与选型指南

一、信息基准

1.1 查询说明

  • 查询日期:2026-10-19。
  • 信息获取方式:纯官方资料溯源(QuestDB 官方站点 questdb.com、官方文档站、GitHub 官方仓库 questdb/questdb 发行页),本文不做本地安装与运行实测。
  • 版本结论:本次介绍的版本为 QuestDB 10.0 系列,最新补丁 10.0.1(2026-08-24 发布);10.0.0(2026-08-06 发布)为一个大版本,带来 QWP 统一协议、Live Views 与 Web Console 2.0 三项 GA/重要特性。

1.2 版本依据

项目实查结果(2026-10-19)来源
最新补丁10.0.1(2026-08-24)github.com/questdb/questdb/releases/tag/10.0.1
系列时间线10.0.0(2026-08-06)、10.0.1(2026-08-24)github.com/questdb/questdb/tags
上一稳定线9.4.0(2026-05-18)至 9.4.3(2026-06-15);9.3 线 2026 年内发 9.3.2 至 9.3.5github.com/questdb/questdb/tags
代码仓库questdb/questdbgithub.com/questdb/questdb
开发语言Java(GitHub 仓库语言标注)GitHub 仓库 API
开源许可Apache License 2.0仓库 LICENSE

1.3 官方来源清单

来源地址
官方站点https://questdb.com/
官方文档https://questdb.com/docs/
发布说明页https://questdb.com/release-notes/
源码仓库https://github.com/questdb/questdb
10.0.0 发行说明https://github.com/questdb/questdb/releases/tag/10.0.0
10.0.1 发行说明https://github.com/questdb/questdb/releases/tag/10.0.1

二、软件概述

本文介绍的是 QuestDB 10.0(开源社区版,最新补丁 10.0.1,2026-08-24 发布)。

QuestDB 是一款开源高性能时序数据库(TSDB),面向指标、事件与实时分析负载:官方站点口径为「每服务器每秒摄取数百万事件、毫秒级对活数据做计算、并可长期查询历史记录」,一个 SQL 引擎同时覆盖消息摄取、流处理与分层存储(来源:questdb.com,2026-10-19 查询)。它以列式存储按时间分区组织数据,支持标准 SQL 查询,项目由 QuestDB 公司主导,开源版以 Apache License 2.0 发布,同时提供商业版 QuestDB Enterprise。

QuestDB 在 GitHub 上拥有 17440 stars、1671 forks(2026-10-19 实查,questdb/questdb 仓库 API),官方定位场景以资本市场(行情/交易数据)、航空航天与能源基础设施等高吞吐低延迟时序负载为主。10.0 版本官方口号「one binary protocol, in and out」,即引入统一的 QuestDB Wire Protocol(QWP)承载读写两个方向(来源:10.0.0 发行说明)。

三、核心架构

3.1 列式存储与时间分区

  • 列式表引擎(Cairo):数据按列组织、按 designated timestamp(指定时间戳列)分区,天然适配时间范围扫描与保留策略;官方发行说明中可见分区(partition)压缩、TO REMOTE 存储策略分级等机制。
  • WAL 表:写路径经 WAL 保证持久化与一致性,10.0 的 Live Views 亦以 WAL 表为底座(10.0.0 发行说明)。
  • 开放格式:官方站点强调与 Apache Parquet、Iceberg、Arrow 的互通,历史数据可用开放格式长期保存(questdb.com,2026-10-19 查询)。

3.2 接口与协议

接口说明
QWP(QuestDB Wire Protocol)10.0 新增:WebSocket 上的二进制列式协议,读写同连接双向承载,复用 HTTP 端口 9000,无需新增端口;Java/C++/Rust/Python 客户端完整支持,Go/.NET 为 Beta
ILP(InfluxDB Line Protocol)TCP/HTTP 高吞吐文本摄取协议,保留向后兼容
PostgreSQL Wire8812 端口,兼容 PG 协议的查询入口,保留兼容
REST API / Web ConsoleHTTP 端口 9000:/exec、/imp、/write、/ping 等;Web Console 2.0 内置 Notebooks 与 MCP 编码代理集成

3.3 高可用与容错

  • QWP 客户端内置 store-and-forward 缓冲与多地址自动故障转移:断网期间数据本地留存、恢复后重放,配合 request_durable_ack 端到端持久确认,官方称在 Enterprise 部署下可实现约 0 秒 RPO(10.0.0 发行说明)。
  • 主副本复制与高可用拓扑由商业版 Enterprise 提供,开源版聚焦单机极致性能。

四、功能特性

4.1 10.0 三大主线特性(GA)

  • QWP 统一线路协议:全类型化列式帧 + 压缩,官方基准称同一行数据较 ILP 节省 3-4 倍空间、单连接摄取可达千万行/秒量级;查询方向可达 2 亿行/秒以上的 Arrow 流式出口(10.0.0 发行说明与官方基准博客)。
  • Live Views(Beta):对窗口函数结果集做增量维护与缓存,毫秒级刷新延迟,补齐 Materialized Views(聚合类物化视图)之外的仪表盘/指标计算场景;CREATE LIVE VIEW ... FLUSH EVERY 1s IN MEMORY 5s 语法支持锚定窗口(如按日重置的累计聚合)。
  • Web Console 2.0:Jupyter 风格 Notebooks(SQL 单元格 + 图表 + 自动刷新,可当活动仪表盘用)、与编码代理(coding agent)的 MCP 集成。

4.2 SQL 与性能

  • 时序 SQL 能力:LATEST ON 最新行检索、SAMPLE BY 降采样、ASOF/LT/SPLICE 时间连接、窗口函数与物化视图等(官方 SQL 文档目录)。
  • 10.0.1 持续优化:高基数窗口查询与 Live View 刷新(官方基准称 380 万账户场景批次刷新从 4.43s 降至 0.48s)、有序 UNION ALL 流式合并免排序(PR 基准 8-9 倍)、DECIMAL 类型全链路补强(10.0.1 发行说明)。

4.3 运维特性

  • 去重与乱序修正:官方站点强调 deduplication 与 out-of-order correction 内建,适配行情类乱序数据。
  • 分层存储:TO REMOTE 存储策略可将历史分区转存对象存储(Parquet/Iceberg 开放格式),本地引擎与远端历史统一查询。
  • 配置体系完整(server.conf 参数化),社区版单二进制/Docker 交付;本站有 《QuestDB 10.0.1 配置参数详解》 可供展开参考。

五、快速上手

以下示例转述自官方发行说明与官方文档(https://questdb.com/docs/ ),本文不做本地实测。

5.1 获取与启动

官方文档提供的 Docker 最小启动方式(镜像 questdb/questdb,映射 HTTP 9000、ILP TCP 9009、PG wire 8812 三个默认端口):

docker run -p 9000:9000 -p 9009:9009 -p 8812:8812 \
  -v "$(pwd)/questdb_root:/var/lib/questdb" \
  questdb/questdb

启动后 Web Console(10.0 为 2.0 版)位于 http://localhost:9000,可直接执行 SQL 与查看数据。

5.2 QWP 写入与查询(Java 客户端)

10.0.0 发行说明给出的 QWP 最小示例:写方向建 Sender 逐行发数,读方向建 Query 绑定参数查询,同一连接句柄复用:

try (QuestDB db = QuestDB.connect("ws::addr=localhost:9000;")) {
    try (Sender sender = db.borrowSender()) {
        sender.table("trades").symbol("symbol", "ETH-USD")
              .doubleColumn("price", 2615.54).atNow();
    }
    try (Query q = db.borrowQuery()) {
        q.sql("SELECT price FROM trades WHERE symbol = $1")
                .binds(b -> b.setVarchar(0, "BTC-USD"))
                .handler(handler).submit().await();
    }
}

5.3 SQL 与验证

完成写入后可在 Web Console 执行 SELECT ... FROM trades LATEST ON timestamp PARTITION BY symbol 验证数据;REST API、ILP HTTP(/write)与 PG wire(8812)三条旧路径在 10.0 中全部保留。完整步骤见官方文档 https://questdb.com/docs/ ;本站的实操命令速查可参考 《QuestDB 10.0.1 常用命令与 API 详解》。

六、适用场景与限制

6.1 适用场景

  • 交易与行情系统:极高吞吐摄取 + 乱序修正 + 逐笔历史留存,官方重点打磨的资本市场场景。
  • 实时监控与仪表盘:Live Views + 物化视图毫秒级刷新,替代外部流处理层做窗口/聚合计算。
  • IoT/工业遥测:ILP 兼容 InfluxDB 生态写入习惯,开放格式(Parquet/Iceberg)长期归档。
  • 低延迟分析查询:SQL + 列式 + 时间分区,适合以时间为第一维度的即席分析。

6.2 限制与注意事项

  • 通用性弱于 PostgreSQL/MySQL:无二级通用索引生态与事务型 OLTP 语义,业务主数据仍需主库承载。
  • 高可用主副本与部分企业能力在商业版 Enterprise,开源版以单机为主,跨机横向扩展需求需评估 Enterprise 或外部分片。
  • QWP 客户端矩阵仍在铺开:Go/.NET 为 Beta,Node.js 尚未支持(10.0.0 发行说明客户端状态表),存量语言接入前需核对。
  • 10.0 刚完成大版本切换(协议/控制台/类型体系均有 Breaking Changes 清单),从 9.x 升级应逐项核对官方破坏性变更说明。

七、同类选型对比

7.1 候选概览

产品定位开源许可
QuestDB 10.0Java 高性能时序数据库,SQL + 统一二进制协议Apache-2.0
InfluxDB 3Rust 重构时序平台,Parquet + 对象存储架构Apache-2.0 / MIT(Core 开源版)
TimescaleDB 2.30PostgreSQL 时序扩展,复用 PG 生态Apache-2.0 + Timescale License 双许可
ClickHouse 26.9通用列式 OLAP,时序是其中一类负载Apache-2.0

7.2 量化对比(2026-10-19 实查)

维度QuestDB 10.0InfluxDB 3TimescaleDBClickHouse
GitHub stars17440(questdb/questdb)≈32k(influxdata/influxdb,shields.io 徽标,2026-10-19)23690(timescale/timescaledb)50k(ClickHouse/ClickHouse,shields.io 徽标,2026-10-19)
最近发版10.0.1(2026-08-24)v3.12.1(2026-10-14/15,官方发布说明「v3.12.110-14-26」)2.30.2(2026-09-29)
版本节奏大版本一年一档,补丁月级3.x 每月级小版本,Core/Enterprise 同流发布minor 约月度、补丁周级每日多构建、四版本线并行(stable/LTS)
技术栈JavaRust(Arrow/DataFusion 生态)C(PostgreSQL 扩展)C++
部署形态单二进制/Docker,单机极致 + 商业版 HACore 单节点 / Enterprise 集群依附 PostgreSQL 实例(云/自建均可)分布式集群(重型)
查询语言SQL(+PG wire 兼容)SQL + InfluxQL全量 PostgreSQL SQLSQL 方言

(stars 与发版时间取自各项目 GitHub Releases/Tags 页面、官方发布说明与 shields.io 徽标实查;许可见各自仓库 LICENSE 说明。)

7.3 选型建议

以行情、逐笔、遥测类「写多读快」为主、追求单机极简运维与毫秒级窗口计算的,QuestDB 的单二进制 + QWP 组合投入产出比高;已绑定 InfluxDB 生态(Telegraf/InfluxQL)或需要对象存储上的 Parquet 原生架构,可选 InfluxDB 3(本站有 《InfluxDB 3.12.1 介绍与选型指南》);希望完全复用 PostgreSQL 的运维、备份与 SQL 生态、时序只是一部分负载的,TimescaleDB 是最低迁移成本的选择;而负载本质是通用 OLAP 分析、时序只是其中一类查询时,ClickHouse(本站有 《ClickHouse 26.9 介绍与选型指南》)的生态与算力纵深更合适——但要注意其集群运维复杂度显著高于单机时序库。

八、参考链接