首页 > 数据库 > 国内数据库 > 聊一聊TSBS:时序数据库跑分,为啥大家都用它?
行,今天咱就专门水一篇,聊聊TSBS这事。
有朋友问“TSBS是不是一个性能基准测试平台?”其实准确说,TSBS (Time Series Benchmark Suite)是 一套标准化测试工具/套件,不是那种登录网页点个按钮就能跑分的SaaS平台,得自己下载、配置、生成数据、执行查询、统计结果,姑且可以理解为“测时序数据库的瑞士刀”。
模拟一堆虚拟的设备,按时间不停地产生数据点。你想测10万个设备?没问题,它给你造。
./tsbs_generate_data \ --use-case="cpu-only" \ # 使用CPU监控数据模型 --scale=10000 \ # 模拟10,000台设备 --timestamp-start="2016-01-01T00:00:00Z" \ --timestamp-end="2016-02-01T00:00:00Z" \ # 整整一个月的数据 --log-interval="10s" \ # 每10秒生成一个数据点 --format="influx" # 生成InfluxDB格式数据
./tsbs_load_influx \ --urls=http://XX.XX.XX.XX:8086 \ --workers=10 \ # 10个并发写入线程 --db-name=test
./tsbs_generate_queries \ --use-case="cpu-only" \ --scale=10000 \ --queries=100000 \ # 生成10万个查询 --query-type="single-groupby-1-1-1" # 指定查询类型
./tsbs_run_queries_influx \ --urls=http://XX.XX.XX.XX:8086 \ --workers=320 \ # 320个并发查询线程 --print-interval 10000 # 每1万次查询打印进度
模拟数据中心里一堆服务器的CPU、内存、磁盘等监控数据。每台服务器每10秒上报一次,包含10个CPU相关指标。这是时序数据库最经典的使用场景——监控告警系统。
这个场景的特点是:
模拟一家物流公司的车队管理数据。每辆卡车会发两类数据:
这个场景比DevOps更复杂,因为:
TSBS不是只跑一种查询,而是设计了 十几类典型查询,覆盖时序数据库日常使用的各种模式:
|
查询类型 |
说明 |
实际场景举例 |
|
single-groupby-1-1-1 |
单设备、单指标、单小时聚合 |
看某台服务器的CPU使用率趋势 |
|
single-groupby-5-1-1 |
单设备、单指标、5分钟粒度聚合 |
运维大盘的粗粒度图表 |
|
double-groupby-1 |
多设备、多指标分组聚合 |
对比多个机房的资源使用情况 |
|
groupby-orderby-limit |
取最后N条聚合数据 |
最近5分钟各设备的峰值 |
|
lastpoint |
取每个设备的最新一条数据 |
设备状态监控首页 |
|
high-cpu-1 |
找出高CPU的异常设备 |
故障告警 |
|
time-bucket |
时间窗口聚合分析 |
按小时统计平均值 |
我说句大实话: 别信“总分第一”这种话。因为有的库写入飞起,但一跑多维度group by就拉胯;有的查询很快,但内存爆炸。TSBS会拆成十几个子项,你要看的是 哪个子项跟你的业务最像。比如你做车联网,天天查“最近100条数据”,那就重点看 lastpoint查询那一项。你做监控大盘,就看 时间范围聚合。
另外配置也很关键。开没开索引、分区、压缩、多节点……同样的数据库,配好了和没配好能差好几倍。所以看别人发的测评报告,一定扫一眼环境配置小节。
https://blog.csdn.net/Limxx_/article/details/160256271?spm=1001.2014.3001.5501
没有完美的工具,TSBS也有几个短板:
回到测试结果本身。基于TSBS标准测试,三家国内时序库的表现可以概括为:
TDengine:国内知名度较高的纯时序库,开源生态成熟。写入方面,分布式小规模场景下表现不错。查询方面,double-groupby类重聚合查询表现稳定,这是它的差异化优势。适合以复杂聚合计算为核心的业务场景,比如能耗管理、报表核算、负荷预测等。
KaiwuDB:浪潮自研的多模时序库。查询方面,lastpoint、high-cpu-all、single-groupby等短查询时延较低,且在大规模数据下可稳定跑完全部查询,但double-groupby类重聚合查询稍弱。适合高吞吐写入+高频简单查询业务,比如产线设备实时运行监控、光伏/风机状态采集。
Apache IoTDB:背靠清华团队的工业时序库。小规模、简单分组查询(如部分single-groupby)中时延较低,存在优势。但在处理大规模数据时,但凡涉及复杂聚合、lastpoint、排序分页类查询会存在问题。综合来看,更适合超小规模、低并发、仅简单查询的轻量场景。
TSBS这个东西,适合做 初筛工具。你想选时序数据库,先拿TSBS跑一遍,把明显不达标的筛掉。但 最终上生产之前,一定要用自己的真实业务数据和SQL再压一遍——这个谁也替代不了。
如果你本身就是时序数据库的开发或运维人员,花一周时间熟悉TSBS,这笔投资绝对值得。它能帮你省掉写压测脚本的时间,还能让你的评测结果更有说服力。
最后附上TSBS国内镜像链接>>
好了,今天就聊到这。下期想详细写写 “如何基于TSBS对KaiwuDB开源版本KWDB进行测试”,感兴趣的话点个赞告诉我。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70049832/viewspace-3117550/ ,如需转载,请注明出处,否则将追究法律责任。