littlebot
Published on 2025-04-16 / 2 Visits
0

【源码】基于Go语言的时序数据库基准测试系统

项目简介

本项目是一个基于Go语言开发的时序数据库基准测试系统,可对多种时序数据库进行性能测试,支持多种用例和查询类型,具备良好的可扩展性。

项目的主要特性和功能

  1. 支持对CnosDB、InfluxDB、TimescaleDB进行基准测试。
  2. 具备可扩展性,能纳入不同用例(如物联网、金融等)、查询类型和数据库进行测试。
  3. 数据和查询完全确定,通过相同的PRNG种子可确保每个数据库装载相同数据并使用相同查询进行查询。
  4. 可对批量写入性能、磁盘压缩率和查询执行性能进行基准测试。
  5. 针对物联网用例提供多种查询类型,如获取卡车实时位置、低油耗卡车等。

安装使用步骤

安装

bash $ cd tsdb-comparisons $ go install ./...

使用

数据和查询生成

数据生成

bash $ generate_data --use-case="iot" --seed=123 --scale=4000 \ --timestamp-start="2022-01-01T00:00:00Z" \ --timestamp-end="2022-01-04T00:00:00Z" \ --log-interval="10s" --format="cnosdb" \ | gzip > /tmp/cnosdb-data.gz

查询生成

bash $ generate_queries --use-case="iot" --seed=123 --scale=4000 \ --timestamp-start="2022-01-01T00:00:00Z" \ --timestamp-end="2022-01-04T00:00:01Z" \ --queries=1000 --query-type="avg-daily-driving-duration" --format="cnosdb" \ | gzip > /tmp/cnodsb-queries-avg-daily-driving-duration.gz

基准测试插入/写性能

bash cat /tmp/cnosdb-data.gz | gunzip | load_cnosdb 或使用脚本: bash $ NUM_WORKERS=2 BATCH_SIZE=10000 BULK_DATA_DIR=/tmp \ scripts/load/load_cnosdb.sh

查询执行性能的基准测试

bash $ cat /tmp/cnodsb-queries-avg-daily-driving-duration.gz | \ gunzip | run_queries_cnosdb --workers=8

查询验证(可选)

使用-print-responses标志返回实际查询结果进行比较。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】