技术分享
💻QuestDB
00 分钟
2023-12-13
2023-12-29
type
status
date
slug
summary
tags
category
icon
password
😀
很久前就看到了这款数据库,但没有使用。今天再次看到,特记录一下,后续有机会研究。
官网链接:https://questdb.io/

QuestDB

QuestDB 是一个开源的时序数据库,支持高吞吐数据获取和快速 SQL 查询,操作简单。 它支持使用InfluxDB连接协议、PostgreSQL协议和REST API进行批量无模式导入和导出。
QuestDB非常适用于金融市场数据、应用程序指标、传感器数据、实时分析、仪表板和系统基础设施监控。
QuestDB使用原生时间序列SQL插件实现了ANSI SQL。这些 SQL 扩展语义能更简单的连接 (JOIN)多个来源的关系型数据以及时间序列数据。我们通过列导向的存储模型、大规模 并行的矢量执行、SIMD 指令和各种低延迟技术实现了高性能。整个代码库是用 Java 和 C++从头开始构建的,没有任何外部依赖,并且 100% 不受垃圾回收的影响。
notion image

尝试 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 端口
  • REST API : 默认运行在 9000 端口

写入数据

以下是我们官方开发的questdb客户端,支持多种编程语言:

QuestDB 与其他开源 TSDB 的对比

参考我们的文章, 其中在功能、性能和成熟度上比较了 QuestDB 和其他的开源时序数据库。
以下是 高维度时间序列基准测试套件 运行 cpu-only 用例的测试结果,基于使用 6 到 16 个工作线程在 32 个 CPU 和 64 GB RAM上测试对比得到:
notion image

相关资源

📚 阅读文档

  • QuestDB 文档: 描述了如何运行 和配置 QuestDB 的技术参考。
  • 教程 逐步了解QuestDB的功能。

❓ 寻求支持

🚢 部署 QuestDB