项目简介
本项目是一个基于Go语言开发的时序数据库基准测试系统,可对多种时序数据库进行性能测试,支持多种用例和查询类型,具备良好的可扩展性。
项目的主要特性和功能
- 支持对CnosDB、InfluxDB、TimescaleDB进行基准测试。
- 具备可扩展性,能纳入不同用例(如物联网、金融等)、查询类型和数据库进行测试。
- 数据和查询完全确定,通过相同的PRNG种子可确保每个数据库装载相同数据并使用相同查询进行查询。
- 可对批量写入性能、磁盘压缩率和查询执行性能进行基准测试。
- 针对物联网用例提供多种查询类型,如获取卡车实时位置、低油耗卡车等。
安装使用步骤
安装
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】