StarRocks 3.0.0存算分离测试报告

测试目标
测试StarRocks 3.0.0版本存算分离在真实业务场景中的性能表现,主要包含以下测试场景:

  1. 测试存算分离架构下表的数据导入性能,包括routine load,stream load,以及sql insert/update/delete
  2. 测试存算分离架构下表的查询性能,包括开启本地缓存与为开启本地缓存的对比
  3. 测试be节点扩缩容时服务稳定性以及性能对比

硬件规格
FE

硬件 规格说明
实例规格 阿里云ecs.c6.2xlarge
Region 北京
节点数 1
CPU 8 vCPU
内存 16 GB
磁盘 100GB SSD

BE:

硬件 规格说明
实例规格 阿里云ecs.i3g.4xlarge
节点数 3
Region 北京
CPU 16 vCPU
内存 64GB
磁盘 900 GB nvme本地盘

软件版本
StarRocks 3.0.0

软件配置

BE参数

buffer_stream_reserve_size = 8192

routine_load_thread_pool_size=30

max_routine_load_task_concurrent_num=10

lake_gc_segment_expire_seconds=3600

lake_gc_segment_check_interval=1800

experimental_lake_enable_fast_gc=true

lake_gc_metadata_max_versions=1

starlet_fs_stream_buffer_size_bytes=1048576

compact_threads=16

max_consumer_num_per_group=100

tablet_max_pending_versions=10000

tablet_max_versions=10000

FE参数

max_routine_load_task_num_per_be=30

routine_load_task_consume_second=30

global变量

set global enable_query_cache =false;

set global new_planner_optimize_timeout=600000;

set global enable_profile=true;

set global query_timeout =1800;

测试结果

数据导入

使用数据导入方式为:stream Load / routine load / sql insert

导入性能如下:

Routine load导入峰值12万QPS,数据json格式,单条大小300B左右。

Stream load导入峰值15万QPS,数据json格式,单条大小100B左右。

Sql insert,使用hive catalog,将hive orc表数据insert到olap表,按照hive天分区导入,4000万数据导入耗时90S左右。

数据查询

sr-3.0-cloud-native Others
QUERY01 超过40亿数据表Count distinct,第一次查询耗时21s,后面每次耗时3s。 Presto+hive 耗时120S
QUERY02 多张表union all后的group by 耗时3S 耗时13S
QUERY03 多张表union all后的group by 耗时8S 耗时45S
QUERY04 join后group by 耗时0.5S 耗时10S
QUERY05 Select disctin from 子查询join后group by 耗时0.7s 耗时10S
QUERY06 多表join后count/sum 耗时1.5S 耗时16S
QUERY07 多表join后count/sum 1.8S 8S
8赞

楼主你好,请问一下这里的QPS具体每次的导入是多少条记录?有每秒导入数据记录或者数据容量的峰值么作为辅助参考么?