English | 简体中文 | 繁體中文 | العربية | Italiano | Українська | Español | Português | Français | Deutsch | 日本語 | 한국어 | עברית | Nederlands | Türkçe | हिंदी | Tiếng Việt | Bahasa Melayu
QuestDB 是一个高性能开源时序数据库,提供低延迟、高吞吐的数据写入和低延迟 SQL 查询服务。
在存储上,QuestDB 提供多层引擎架构(WAL → 原生 → 对象存储上的 Parquet)。核心引擎基于零 GC 的 Java 和 C++ 实现;企业版还包含采用 Rust 编写的高性能组件。
在查询上,QuestDB 通过列式存储模型、并行化向量执行、SIMD 指令及多种低延迟技术,实现了卓越地查询性能表现。此外,QuestDB 还具备出色的硬件效率,支持快速部署与高效运维。
准备好了吗?立即前往 快速开始 部分。
核心功能亮点:
- 低延迟、高吞吐数据写入 — 支持从单条数据到每秒百万条的处理能力
- 具备时序扩展功能的高效 SQL 查询方言(ASOF JOIN、SAMPLE BY、LATEST ON)
- SIMD 指令加速的并行执行引擎,在普通硬件上也能实现亚毫秒级查询响应时间
- 多层存储架构:WAL → 原生列式存储 → Parquet(支持时间分区与时间排序)
- Postgres 协议(PGwire)和 REST API 接入
- 物化视图和 n 维数组(含适用于订单簿的二维数组)
- 用于查询与数据管理的 Web 控制台
- Apache 2.0 开源协议与开放格式——杜绝供应商绑定
- 支持多种 金融函数 和 订单簿分析
QuestDB 尤其擅长处理:
- 金融市场数据(Tick 数据、交易、订单簿、OHLC 数据)
- 具有高基数特征的传感器/遥测数据
- 实时仪表盘与监控场景
为什么要使用时序数据库?
除了优秀的性能与效率之外,专业的时序数据库能让您无需担忧以下问题:
- 乱序数据的写入处理
- 幂等与 exactly-once 保障
- 高并发查询下的持续流式数据写入
- 流式数据低延迟查询
- 高波动与突发型数据写入负载变化
- 动态添加新列——在数据持续写入时实时变更表结构
我们提供了 实时公共演示, 该环境基于最新版 QuestDB 并预置了以下示例数据集:
- 交易数据:实时加密货币交易记录,每月新增超3000万条(OKX交易所数据)
- 外汇订单簿:带有外汇交易对订单簿的实时图表
- 出行数据:纽约市 10 年出租车行程记录,共 16 亿行数据
我们还通过 原生 Grafana 插件构建了一些公开的实时演示看板:
- 实时加密货币交易看板:实时展示OKX交易所20余种资产的成交情况
- 外汇订单簿看板:主流外汇交易对的实时深度/不平衡图表
在多项性能基准测试中,QuestDB 相比其他替代方案表现优异。
如需深入了解内部机制与性能表现,请参阅以下技术博客:
我们推荐您亲自运行基准测试以获得最直观的性能体验。
使用 Docker 快速启动:
docker run -p 9000:9000 -p 9009:9009 -p 8812:8812 questdb/questdbmacOS 用户可以使用 Homebrew:
brew install questdb
brew services start questdbquestdb start
questdb stop若需完整入门指引,建议从我们的简洁版 快速入门指南开始。
支持通过 InfluxDB Line Protocol(以下简称 ILP 协议) 进行数据写入的 QuestDB 客户端:
提供多种方式与 QuestDB 交互:
- Web 控制台 提供交互式 SQL 编辑器和 CSV 导入功能
- InfluxDB Line Protocol 支持 ILP 协议格式的流式数据写入
- PostgreSQL Wire Protocol 兼容 PG 协议,可使用任意 PG 的客户端对 QuestDB 进行连接
- REST API 支持通过 HTTP(S) 进行 CSV 导入和运行 SQL 查询
可与 QuestDB 集成的流行工具包括:
从流式数据写入到 Grafana 可视化,请从我们的 快速入门代码 获取脚手架代码。
查阅我们的容量规划推荐 针对生产环境负载优化 QuestDB 配置。
为大规模部署或大型组织生产环境提供安全增强版。
额外功能包括:
- 高可用性与只读副本查询
- 多主节点数据写入
- 冷存储集成
- 基于角色的访问控制(RBAC)
- TLS 加密
- 通过对象存储直接查询 Parquet 文件
- 服务等级协议(SLA)保障、监控增强等
访问企业版页面获取详细信息与联系方式。
- QuestDB 文档:开始您的探索之旅
- 产品路线图:了解未来版本规划
- 教程:通过步骤化教学掌握 QuestDB 的各种应用场景
- 社区论坛:参与技术讨论、提问交流、结识其他用户!
- 公开 Slack:与 QuestDB 团队和社区成员实时沟通
- GitHub issues:报告 QuestDB 使用中遇到的问题
- Stack Overflow:查找常见问题解决方案
欢迎贡献您的力量!
我们珍视以下形式的参与:
- 源代码
- 文档优化(参见 文档代码库)
- Issue 报告
- 功能建议或反馈
贡献指南:
- 查看标有 "Good first issue" 的 GitHub issues
- Hacktoberfest 期间请关注 标记 issues
- 阅读贡献指南
- 构建说明请参见 构建说明
- Fork QuestDB 并提交包含改进方案的 PR
- 遇到困难?加入我们的公开 Slack 获取帮助
✨ 为表谢意,我们将向贡献者赠送 QuestDB 专属纪念品!
特别感谢以下为 QuestDB 做出贡献的优秀人员 emoji:
该项目遵循 all-contributors 规范。欢迎任何形式的贡献!
