# TS-Benchmark **Repository Path**: geek_tao/TS-Benchmark ## Basic Information - **Project Name**: TS-Benchmark - **Description**: 为现今流行的时序数据库提供一套可兼容扩展的测试基准 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 7 - **Created**: 2019-09-24 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TSBM ## 项目相关介绍 时序数据广泛用于供应链,库存数据分析和智能制造等场景中。专门为来存储,管理和查询大量时间序列数据而设计的时序数据库系统应运而生。可是对于确定具体场景下数据库性能测试基准尚未形成。团队针对该需求开发设计TSBM。 TSBM是TimeSerials BenchMark的简称,是我们团队为现今流行的如InfluxDB、IotDB、TaosDB(TDengine)等时序数据库专门设计开发的大数据基准测试项目。 我们使用TS基准测试五个时间序列数据库的性能,包括InfluxDB,TimescaleDB,Druid,OpenTSDB,TaosDB。相关工作如下: 1)TSBM能够在数据加载,数据注入和数据获取的各种工作负载下系统地测试时间序列数据库的性能。 2)TSBM是基于实际物联网应用的场景,其中按照风力涡轮机设备的不同传感器之间的物理模型,设计了时间序列之间的相关性。 3)TSBM测试了一些典型时间序列数据库的性能,并通过分析性能结果获得了对基础技术的一些见解。 ## 环境准备 1. 操作系统建议为Linux 环境,如Centos 7; 2. 由于项目采用Java8的一些新特性,所以为了测试完美进行,Java版本应不低于1.8; 3. 需要协同maven对项目进行编译打包故Maven的版本应为3.0 以上的版本; 4. 另外,如果想要对涛思数据库TD-engine进行测试,由于涛思官方未提供相关Maven依赖,需要将其提供的jar文件形成maven依赖添加至项目根目录的pom中。 ## 快速部署 1. ### 配置 需要对数据库配置文件进行基本配置 ```vim conf/db.properties``` to config ```DB_TYPE=dbname in lowcase``` ```DB_IP=the database ip address``` ```DB_PORT=the database port``` ```DB_USER=the database login username ``` ```DB_PASSWD=the database login password ``` 2. ### * 对测试数据进行导入(这一步骤是运行整个项目前提,重要) 于编译后的项目根目录下运行```./import.sh``` 3. ### 进行数据库写性能测试 于编译后的项目根目录下运行```./write_test.sh``` 4. ### 进行数据库读性能测试 ```./read_test.sh``` 5. ### 进行数据库读写混合性能测试 ```./write_test_mix.sh``` 6. ### Start read_test_mix.sh ```./read_test_mix.sh``` ## 关于测试结果的报告的形成 测试结果将会形成文件路径为 ```result/result.csv ``` ## 如何对一个未提供测试支持的数据库添加支持(二次开发) 如果您想对一个新的时序数据进行性能测试,没有在我们的开源版本中找到相应支持,我们提供了可扩展支持 具体可以参考这个开发文档 [this md](/doc/development.md)