679. 【数据库评测】揭秘 Cloudwave 4.0 版本多表联合join零耗时

一、评测结果

  • 64核256g内存的机器上,在ssb100g数据集下,Cloudwave4.0 单机版在维度表与事实表之间做多表联合join时,查询耗时几乎为零(10ms),CPU占用几乎为零;2张表的join到3张表的join耗时增加几乎都可以忽略不计,CPU占用增加也几乎可以忽略不计。
  • 64核256g内存的机器上,在ssb100g数据集下,Starrocks3.0 单机版在维度表与事实表之间做多表联合join时,查询耗时在亚秒级别,CPU占用达到70%以上;2张表的join到3张表的join耗时增加50%,CPU占用变化不大(因为耗时增加了,单位时间内的CPU负载变化不大)。
    备注:Cloduwave4.0是类snowflake的新一代云原生数据仓库;同时和starrocks一样配备mpp框架和多维向量化引擎;此外,独创的多维分析算法,尤其擅长雪花模型,星型模型等,多表联合join查询资源损耗几乎为零。
数据库数据集SQL1响应时间(ms)SQL2响应时间(ms)SQL1 CPU 最大占用率SQL2 CPU 最大占用率
Cloudwave4.0ssb10010100.275%(17.6%/6400%)0.28%(17.9%/6400%)
Starrocks3.0ssb10059089071%(4546%/6400%)79.5%(5093%/6400%)

二、评测环境

  • 硬件环境:1台 64核256g 云服务器,essd pl1 高效云盘
  • 软件环境:jdk19(Cloudwave4.0官方推荐版本,官方基于jdk19版本里头的的vector api,实现全面向量化引擎)、jdk8(starrocks安装推荐jdk版本,主要用于fe,亦可少踩坑)、mysql8(作为starrocks的客户端)
  • 软件版本:Cloudwave 4.0,Starrocks 3.0
  • 评测数据集:ssb100

三、评测SQL

  • 评测SQL1:select count(*) from lineorder,customer where lo_custkey = c_custkey;
  • 评测SQL2:select count(*) from lineorder,customer,supplier where lo_custkey = c_custkey and lo_suppkey = s_suppkey;

第1条SQL是将lineorder这张事实表与customer这张维度表join,加count()是迫使数据库必须把所有的记录都join上。
第2条SQL是将lineorder这张事实表与customer、supplier 这两张维度join,加count(
)同样是迫使数据库必须把所有的记录都join上。

三、评测方法

  • 执行19轮SQL1测试脚本,每轮执行1条测试sql,去除第1轮的测试数据(由于IO原因,第1次查询两边的性能均受IO影响,本测试主要测数据库引擎的算法在同等计算资源的条件下的优劣,因此去除第一轮测试数据),将余下的18轮测试数据做平均,获得sql的平均耗时
  • 观察最大CPU占用

四、开始评测[cloudwave]

  1. 启动并导入ssb100数据 到cloudwave
  2. 执行cloudwave SQL1测试
./test_ex.sh 
  • 可以看到cloudwave CPU最大占用是17.6%
  1. 分析SQL1结果
./analysis.sh cloudwave "$(ls n*txt)" +
  • 可以看到cloudwave SQL1的耗时0.01秒左右。(截图里的0.04是第一轮查询,IO影响比较大)(天呐!lineorder(数据量6亿),join customer(数据量300万),竟然只需要0.01秒)
  1. 执行SQL2测试
./test_ex.sh 
  • 可以看到cloudwave CPU最大占用是17.9%
  1. 分析SQL2结果
./analysis.sh cloudwave "$(ls n*txt)" +
  • 可以看到cloudwave SQL2 的耗时也是0.01秒左右。(天呐!!!lineorder(数据量6亿),join customer(数据量300万),再join supplier(数据量20万)竟然也只需要0.01秒。简直像开了挂——官方说:我们对于事实表与维度表多表联合join的时间应该为零

五、对比评测[starrocks]

  1. 启动并导入ssb100 到 starrocks
./fe/bin/start_fe.sh --daemon
./be/bin/start_be.sh --daemon
./create_db_table.sh ddl_100

  1. 执行SQL1测试
  • 可以看到starrocks CPU 最大占用率为 4546%。
  1. 分析SQL1 结果
  • 可以看到starrocks SQL1 的耗时是0.59s左右。
  1. 执行SQL2测试
  • 可以看到starrocks CPU最大占用率为 5093%。
  1. 分析SQL2结果
  • 可以看到 starrocks SQL2 耗时 0.89s 左右。

七镜还将带来Cloudwave 4.0 集群版 VS Starrocks 3.0 集群版 在 1T SSB数据集上的评测。


请添加图片描述

附加:想要体验 Cloudwave 4.0 的话(或者遇到安装使用问题),可以在公众号回复:【翰云数据库,4.0】或者【cloudwave4.0】;

想要体验Starrocks3.0的话(或者遇到安装使用问题),可以在公众号回复:【starrocks3.0】

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值