之前,因为 Apache IoTDB 多项性能表现位居 benchANT 时序数据库排行榜(Time Series: DevOps)性能排行第一名,我们进行了基于 benchANT 榜单的背景介绍和基于它测试基准的环境复现。还没有看的友友们可以点此查看哦!
下面我们将继续介绍我们复现的写入、查询具体测试步骤,并分析对比 Apache IoTDB 及其它时序数据库的性能表现。
4
命令集脚本
本章节介绍 benchANT 测试流程使用的命令集脚本。
用户首先需要在AWS创建EC2实例来部署测试客户端与数据库服务端。客户端对应的EC2规格代码固定为c5.4xlarge,服务端根据测试负载不同对应两类规格代码m5.large与m5.xlarge。EC2实例操作系统选择ubuntu,存储类型选择GP2,存储容量为100GB。
创建完EC2实例后,用户需要在客户端部署tsbs,在服务端部署IoTDB Server(采用默认的 1ConfigNode + 1DataNode模式部署)。客户端安装好Golang编译环境后,通过链接https://github.com/benchANT/tsbs将代码下载至本地,在代码目录执行make命令即可一键生成可执行程序,以下4个步骤涉及的“数据生成”、“数据导入”、“生成查询”及“执行查询”程序均位于bin目录下。
本章节假设 IoTDB Server 部署在m5.xlarge实例上,部署的机器IP 为 172.31.8.255。
4.1
数据生成
nohup bin/tsbs_generate_data --use-case="devops" --seed=123 --scale=1000 \
--timestamp-start="2022-07-25T00:00:00Z" \
--timestamp-end="2022-07-28T00:00:00Z" \
--log-interval="10s" --format="iotdb" \
> iotdb-data-1000hosts-3days &
其中参数的含义如下:
-
use-case:测试场景,有"devops"与"iot"两种。benchANT 测试使用的是"devops"。该场景模拟了服务器运行时的监控数据。
-
seed:数据生成的随机数种子。
-
scale:devops 场景中 host/ 服务器的数量,等同于 IoTDB 里设备的数量。
-
timestamp-start:生成数据集的开始时间。
-
timestamp-end:生成数据集的结束时间。
-
log-interval:每条数据的时间间隔。
-
format:指定数据库。
生成的数据集格式如下所示,其中 0 开头的对应于 IoTDB 中的时间序列创建语句,1 开头的表示数据插入语句。
0,cpu,host_3,tag,'hostname'='host_3','region'='us-east-1','datacenter'='us-east-1a','rack'='7','os'='Ubuntu16.04LTS','arch'='x64','team'='NYC','service'='19','service_version'='0','service_environment'='test'
1,cpu,host_3,1677628800000,55,20,15,61,30,19,20,5,16,65
4.2
数据导入
nohup cat iotdb-data-1000hosts-3days | bin/tsbs_load_iotdb \
--host="172.31.8.255" --port="6667" --user="root" --password="root" --timeout=1000 \
--workers=100 --batch-size=1000 > output.log 2>&
ApacheIoTDB在BenchANT时序数据库测试中的卓越性能

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



