数据库 | IotDB性能初步测试

数据库docker限制资源:CPU 4核,内存 8G。数据库版本:1.3.0
表结构如下,每个位号对应一张表:

create device template t2 aligned (
  id INT64 encoding=PLAIN
, ds_id INT64 encoding=PLAIN
, quality INT32 encoding=PLAIN
, app_time TEXT encoding=PLAIN
, tag_value TEXT encoding=PLAIN
, tag_time TEXT encoding=PLAIN
, create_time TEXT encoding=PLAIN
);

从本地机器读取csv文件数据调用JDBC批量写入测试数据库

1. 写入性能

  • insertRecords方式,2线程(cpu100%,内存90%)
    Total rows processed: 11832048
    Total time taken: 288.868 s
    Overall write speed: 40960.05095753077 rows/sec
  • insertRecords方式,3线程(cpu100%,内存90%)
    Total rows processed: 11103208
    Total time taken: 268.895 s
    Overall write speed: 41291.983859870954 rows/sec

2. 空间占用

在所有序列默认压缩算法SNAPPY的情况,总占用:3.3G

3. 查询性能

数据量72815929
全量count()

select count(id) from root.obp_data_hub_value.*  group by level = 3;

耗时:7.5s
count()一天

SELECT COUNT(id) FROM  root.obp_data_hub_value.* WHERE time >= 2024-06-02T00:00:00 AND time < 2024-06-03T00:00:00 group by level=3

耗时:2.5s
单个位号查询

SELECT count(id) from  root.obp_data_hub_value.dm_tag_value_TAG9972_ISYS7_1

耗时:8ms

SELECT * from  root.obp_data_hub_value.dm_tag_value_TAG9972_ISYS7_1

耗时:168ms

SELECT count(id) from  root.obp_data_hub_value.dm_tag_value_TAG9972_ISYS7_1 WHERE time >= 2024-06-02T00:00:00 AND time < 2024-06-03T00:00:00

耗时:9ms

SELECT * from  root.obp_data_hub_value.dm_tag_value_TAG9972_ISYS7_1 WHERE time >= 2024-06-02T00:00:00 AND time < 2024-06-03T00:00:00 limit 200

耗时:11ms
小时聚合

SELECT avg(cast(tag_value, 'type'='DOUBLE')) FROM root.obp_data_hub_value.dm_tag_value_TAG9972_ISYS7_1 
WHERE time >=  2024-06-02T00:00:00 AND time < 2024-06-03T00:00:00
GROUP BY ([ 2024-06-02T00:00:00,2024-06-03T00:00:00), 1h)

耗时:69ms

4. 总结

  • iotdb语法和关系数据库差异比较大,部分语法不支持(比如:子查询是group的场景),建表序列的时候需要提前考虑好数据使用场景。
  • 写入性能
    在4CPU,8G内存的情况下写入能到4W行/S,也就是4W位号的情况下可以做到秒级延时。更多位号的情况下会延时,如要减少延迟时间需要增加资源,单机的话可以提升cpu和内存,把机械硬盘改为SSD固态硬盘,非单机的话可以分布式部署提高吞吐。
  • 存储空间
    数据默认就会压缩,默认压缩算法的情况下存储空间是MariaDB的五分之一左右,有压缩率更高的算法,相应的插入会变慢。
  • 查询性能
    正常通过时间+加位号查询毫秒级返回(目前业务场景都是这种),不带位号的扫描查询秒级返回。
    附件:时序数据库选型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值