SuperAPI AI 工具集

questdb-tsbs-benchmark

数据与分析

查看项目

更新于 10-16 04:55

技能介绍

用途:对 Docker 中运行的 QuestDB 执行完整的 TSBS(Time Series Benchmark Suite)时序基准测试,覆盖前置依赖检查、TSBS 构建、数据生成、加载和查询基准全流程。

主要能力与用法: 前置检查:用 docker --version && docker info --format '{{.ServerVersion}}' 检查 Docker,用 go version 检查 Go(需用于构建 TSBS),并安装 make、gcc、gzip 等构建工具;资料给出 Ubuntu/Debian 上安装 Docker 与 Go 1.22.5 的命令。 启动 QuestDB:先删除已有容器 sudo docker rm -f questdb,拉取 questdb/questdb:latest 并映射 9000(Web Console HTTP)、9009(ILP 行协议)、8812(PostgreSQL 协议)、9003 端口。 构建 TSBS:git clone https://github.com/questdb/tsbs.git 后,用 make tsbs_generate_data tsbs_generate_queries tsbs_load_questdb tsbs_run_queries_questdb 只构建 QuestDB 基准所需的四个二进制文件。 生成数据:使用 tsbs_generate_data,示例为 --use-case=cpu-only --seed=123 --scale=4000,时间窗口 2016-01-01T00:00:00Z 至 2016-01-02T00:00:00Z,--log-interval=10s,--format=questdb;资料称约生成 12GB 未压缩数据(34.5M 行,345.6M 指标)。注意不要 gzip,压缩解压的 CPU 开销会干扰基准结果。 加载数据:使用 tsbs_load_questdb 加载文件,--workers 取 CPU 核数且上限 32,并从 TSBS 汇总中报告行/秒与指标/秒的摄取吞吐。 生成查询:用 tsbs_generate_queries 为全部 16 种 cpu-only 查询类型各生成 1000 条查询,查询文件保持未压缩。 运行查询基准:用 tsbs_run_queries_questdb,--workers=1 --print-interval=0;因 QuestDB 内部多线程执行查询,多客户端 worker 会超订 CPU 导致结果失真。 清理:测试完成后删除 questdb 容器并删除 /tmp 下的数据与查询文件。

适用的场景与限制:资料建议 cpu-only、scale=4000、1 天窗口作为通用基准,也可尝试 devops 或 iot 用例(各自查询类型不同),并可用 tsbs_generate_queries --help 查看完整组合。数据加载走 ILP(9009),查询走 PostgreSQL 协议(8812)。除上述内容外,性能数字、硬件要求、收费与平台支持等暂未提供。