华为云gaussdb(for influx)揭密第八期:gaussdb(for influx)与开源企业版性能对比-4008云顶国际网站

gaussdb 数据库 发表于 2022/05/11 09:27:59 2022/05/11
【摘要】 gaussdb(for influx)较企业版influxdb集群能提供更高的写入性能、更低的访问延迟以及更高的数据压缩率
“你们的数据库性能怎么样?”
“能不能满足我们的业务?”
“和其他数据库对比性能有优势么?”
......
客户在使用数据库时常有这样的担心和疑问。

本文从测试方案、测试工具、测试场景、测试结果等方面详细介绍了gaussdb(for influx)和开源influxdb集群在x86架构下的性能测试情况。测试结果显示,gaussdb(for influx)较企业版influxdb集群能提供更高的写入性能、更低的访问延迟以及更高的数据压缩率。

1.1 资源配置

服务端配置

产品名称
规格
存储
架构
gaussdb(for influx)
4u16g 2节点
100g
集群架构
开源企业版influxdb
4u16g 3节点
100g
集群架构

1.2 测试工具

测试工具为开源性能工具ts-benchmark。

2.1  测试模型

本次测试采用风力发电数据模型,每个风场50个设备,每个设备50个传感器,1个风场1个线程,通过load数据的线程数来控制时间线的大小,通过收集时间的长短来控制数据量。

模型每条数据大小约为24字节,具体的类型如下:

timestamp | farm | device |sensor | value

2.2  测试数据量

测试数据分为两个场景,大数据量和小数据量,具体数据量如下:

场景
时间线
数据量
小数据量
5000
4亿
大数据量
250万
gaussdb(for influx) 150亿
企业版influxdb 47亿
注:企业版influxdb在插入到47亿数据时oom,以下性能对比都基于此数据量。

2.3  测试场景

2.3.1  数据写入场景

  • batch_size(每个批次写入的数据量) 固定为50,线程数分别从1、2、4、8、16、32、64、128、256、512 递增;

  • 线程数(客户端并发请求的连接数)固定为8, batch_size分别从50、100、150、200、250、300 递增。

2.3.2  数据查询场景

单线程进行不同语句的查询,并统计其时延信息。

第一类查询:所有tag查询

select * 
from sensor 
where f='f1' and d='d2' and s='s1' and time>=1514768400000000000 and time<=1514772000000000000

第二类查询:tag value查询

select * 
from sensor 
where f='f1' and s='d2' and value>=3.0 and time>=1514768400000000000 and time<1514854800000000000

第三类查询:聚合查询

select mean(value) 
from sensor 
where f='f1' and s='s1' and time>=1514768400000000000 and time<=1514854800000000000 group by f,d,s,time(1h)

第四类查询:或条件查询

select * 
from sensor 
where f='f1' and (s='s1' or s='s2' or s='s3' or s='s4' or s='s5') and time>=1514768400000000000 and time<=1514769150000000000

第五类查询:单个tag查询

select * 
from sensor 
where f='f1' and time>=1514768400000000000 and time<=1514769150000000000

3.1  写入吞性能比对

在小数据量场景下,gaussdb(for influx)的写入性能是企业版influxdb的13倍左右,在大数据量的场景下可以达到1.8倍左右。

3.2 查询性能对比

1) 第一类查询(所有tag查询):无论是大数据量还是小数据量场景下,gaussdb(for influx)的吞吐量是开源influxdb企业版的2倍左右。

2) 第二类查询(tag value查询):在小数据量场景下,开源influxdb企业版性能高于gaussdb(for influx),gaussdb(for influx)在大数据量和小数据量场景下性能基本持平。

3)第三类查询(聚合查询):gaussdb(for influx)查询性能明显优于开源influxdb企业版,在小数据量场景下是开源版本的14倍,大数据量下也是开源版本的8倍左右。

4)第四类查询(或条件查询):gaussdb(for influx)查询性能在两种场景下比较稳定,开源企业版influxdb在两种场景下差异较大;gaussdb(for influx)在小数据量场景下表现优于开源版,在大数据量场景下低于开源版。

5)第五类查询(单个tag查询):gaussdb(for influx)查询性能在两种场景下比较稳定,在大数据量场景下低于开源版。

3.3  数据压缩率对比

在250万时间线场景下,gaussdb(for influx)导入了151亿条数据,导入前数据大小为337.5g,导入后为49.8g,压缩率为6.8;开源企业版导入了47亿条数据,导入前105g,导入后21.3g,压缩率为4.9。gaussdb(for influx)压缩率是开源企业版的1.4倍左右。

influx引擎采用lsm tree架构,随着后台compaction的进行,压缩率会进一步提升,当前数据对比是数据刚导入时的结果。

在gaussdb(for influx)2节点对比开源版3节点场景下,gaussdb(for influx)给客户带来了更高的写入能力、更稳定的查询能力、更高的压缩率。gaussdb(for influx)写入能力在小数据量场景下是开源企业版的13倍,在大数据量场景下是开源企业版的1.8倍;查询能力在两种场景下表现稳定,在大部分查询场景下优于开源企业版;在压缩率方面,同样数据模型下,高出开源版本40%。

除了以上优势外,gaussdb(for influx)还在集群化、冷热分级存储、高可用方面也做了深度优化,能更好地满足时序应用的各种场景。

本文作者:华为云数据库创新lab & 华为云时空数据库团队
欢迎加入4008云顶国际集团!
云数据库创新lab(成都、北京)简历投递邮箱:xiangyu9@huawei.com
华为云时空数据库团队(西安、深圳)简历投递邮箱:yujiandong@huawei.com
【4008云顶国际集团的版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。