type
status
date
slug
summary
tags
category
icon
password
很久前就看到了这款数据库,但没有使用。今天再次看到,特记录一下,后续有机会研究。
官网链接:https://questdb.io/
Github仓库:https://github.com/questdb/questdb
QuestDB
QuestDB 是一个开源的时序数据库,支持高吞吐数据获取和快速 SQL 查询,操作简单。 它支持使用InfluxDB连接协议、PostgreSQL协议和REST API进行批量无模式导入和导出。
QuestDB非常适用于金融市场数据、应用程序指标、传感器数据、实时分析、仪表板和系统基础设施监控。
QuestDB使用原生时间序列SQL插件实现了ANSI SQL。这些 SQL 扩展语义能更简单的连接 (JOIN)多个来源的关系型数据以及时间序列数据。我们通过列导向的存储模型、大规模 并行的矢量执行、SIMD 指令和各种低延迟技术实现了高性能。整个代码库是用 Java 和 C++从头开始构建的,没有任何外部依赖,并且 100% 不受垃圾回收的影响。
尝试 QuestDB
我们提供了一个在线演示,其中包括最新的QuestDB版本和几个样本数据集:
- Trips:近10年的纽约市出租车行程轨迹数据集,含1.6亿行的数据。
- Trades:每月30M+的实时加密货币市场数据。
- Pos:含有25万艘船的时序地理数据集。
查询 | 运行时间 |
SELECT sum(double) FROM trips | |
SELECT sum(double), avg(double) FROM trips | |
SELECT avg(double) FROM trips WHERE time in '2019' | |
SELECT time, avg(double) FROM trips WHERE time in '2019-01-01' SAMPLE BY 1h | |
SELECT * FROM trades LATEST ON time PARTITION BY symbol |
我们的在线演示运行在
c5.metal
上且仅使用 96 个线程中的 24 个线程。如何开始
安裝 QuestDB
你可以使用 Docker 来快速启动一个 QuestDB 实例:
macOS 用户可以使用 Homebrew 来启动:
QuestDB 下载页面 提供运行文件的直接下载,并 提供其他安装和部署方式的详细信息。
连接到 QuestDB
你可以使用以下接口与 QuestDB 进行交互。
- web 控制台: 将会启动一个 web 控制台,默认运行在
9000
端口
- InfluxDB line protocol: 支 持高性能、高吞吐量单向数据插入,默认运行在
9009
端口
- REST API : 默认运行在
9000
端口
- PostgreSQL wire protocol: 默认运行在
8812
端口
写入数据
以下是我们官方开发的questdb客户端,支持多种编程语言:
QuestDB 与其他开源 TSDB 的对比
参考我们的文章, 其中在功能、性能和成熟度上比较了 QuestDB 和其他的开源时序数据库。
以下是 高维度时间序列基准测试套件 运行
cpu-only
用例的测试结果,基于使用 6 到 16 个工作线程在 32 个 CPU 和 64 GB RAM上测试对比得到:相关资源
📚 阅读文档
- QuestDB 文档: 描述了如何运行 和配置 QuestDB 的技术参考。
- 教程 逐步了解QuestDB的功能。
- 产品路线图 了解我们下个产品发布的计划。
❓ 寻求支持
- Community Slack: 加入技术讨论,提问问题,与其他用户见面!
- GitHub issues: 报告 QuestDB bugs与问题
- Stack Overflow: 寻找常见 问题的解决方法。
🚢 部署 QuestDB
- 作者:借力好风
- 链接:https://blog.jielihaofeng.online/article/questdb
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。