Time Series Benchmark Suite (TSBS) 使用教程
项目介绍
Time Series Benchmark Suite (TSBS) 是一个用于比较和评估时序数据处理(数据库)系统性能的基准测试平台。TSBS 由 Timescale 开源并负责维护,提供了 IoT 和 DevOps 两个典型应用场景。作为一个性能基准测试平台,TSBS 具有便捷、易用、扩展灵活等特点,涵盖了时序数据的生成、写入(加载)、多种类别的典型查询等功能,并能够自动汇总最终结果。
项目快速启动
安装
首先,克隆 TSBS 项目到本地:
git clone https://github.com/timescale/tsbs.git
cd tsbs
生成数据
使用以下命令生成测试数据:
go run cmd/generate/generate.go \
-format influx \
-use-case cpu-only \
-scale 10 \
-seed 123 \
-timestamp-start 2023-01-01T00:00:00Z \
-timestamp-end 2023-01-02T00:00:00Z \
> data.influx
加载数据
使用以下命令将生成的数据加载到数据库中(以 InfluxDB 为例):
go run cmd/load/load.go \
-db-name test \
-batch-size 10000 \
-workers 4 \
-file data.influx
应用案例和最佳实践
DevOps 场景
在 DevOps 场景中,TSBS 可以生成和加载来自 9 个系统的监控数据,包括 CPU、内存、磁盘等。以下是一个简单的示例:
go run cmd/generate/generate.go \
-format influx \
-use-case devops \
-scale 10 \
-seed 123 \
-timestamp-start 2023-01-01T00:00:00Z \
-timestamp-end 2023-01-02T00:00:00Z \
> devops_data.influx
go run cmd/load/load.go \
-db-name devops_test \
-batch-size 10000 \
-workers 4 \
-file devops_data.influx
IoT 场景
在 IoT 场景中,TSBS 可以生成和加载来自多个设备的传感器数据。以下是一个简单的示例:
go run cmd/generate/generate.go \
-format influx \
-use-case iot \
-scale 10 \
-seed 123 \
-timestamp-start 2023-01-01T00:00:00Z \
-timestamp-end 2023-01-02T00:00:00Z \
> iot_data.influx
go run cmd/load/load.go \
-db-name iot_test \
-batch-size 10000 \
-workers 4 \
-file iot_data.influx
典型生态项目
TimescaleDB
TimescaleDB 是一个为时序数据优化的开源数据库,支持 SQL 查询。TSBS 提供了针对 TimescaleDB 的专门加载器和查询生成器。
InfluxDB
InfluxDB 是一个流行的开源时序数据库,TSBS 提供了针对 InfluxDB 的专门加载器和查询生成器。
ClickHouse
ClickHouse 是一个高性能的列式数据库,适用于大规模数据分析。TSBS 提供了针对 ClickHouse 的专门加载器和查询生成器。
通过 TSBS,用户可以方便地比较和评估不同数据库在时序数据处理方面的性能,从而选择最适合自己需求的数据库。