StarRocks TPC-DS 基准测试深度解析

StarRocks TPC-DS 基准测试深度解析

starrocks StarRocks是一个开源的分布式数据分析引擎,用于处理大规模数据查询和分析。 - 功能:分布式数据分析;大规模数据查询;数据分析;数据仓库。 - 特点:高性能;可扩展;易于使用;支持多种数据源。 starrocks 项目地址: https://gitcode.com/gh_mirrors/st/starrocks

一、TPC-DS基准测试概述

TPC-DS是由美国交易处理效能委员会(TPC)制定的决策支持系统基准测试标准,相比TPC-H,它提供了更复杂、更全面的测试场景。该测试模拟了零售企业的三种销售渠道(实体店、互联网、目录)的业务场景,包含24张表结构和99个复杂查询,数据规模可从1GB扩展到3TB不等。

二、测试环境配置

2.1 硬件环境

测试采用4台阿里云主机,配置如下:

  • CPU:8核 Intel Xeon Platinum 8269CY @ 2.50GHz
  • 内存:32GB
  • 网络:5Gbps带宽
  • 存储:ESSD云盘

2.2 软件环境

对比测试了StarRocks 3.0社区版和Trino-419:

  • StarRocks部署:1个FE节点 + 3个BE节点
  • Trino部署:1个Coordinator + 3个Worker
  • 操作系统:CentOS 7.8
  • 数据存储:Hive 3.1.2管理,Parquet格式+LZ4压缩

三、测试数据规模

测试采用100GB规模的TPC-DS数据集,主要表数据量如下:

| 表名 | 数据量(行) | |------|-----------| | catalog_sales | 1.44亿 | | store_sales | 2.88亿 | | inventory | 3.99亿 | | catalog_returns | 1440万 | | store_returns | 2880万 |

四、性能对比结果

4.1 总体性能

在99个查询的总耗时对比中:

  • StarRocks本地存储:174秒
  • StarRocks Hive外表:239秒
  • StarRocks Hive外表(开启Data Cache):176秒
  • Trino:892秒

性能倍数关系

  • 本地存储是Trino的5.1倍
  • Hive外表是Trino的3.7倍
  • Hive外表+Data Cache是Trino的5倍

4.2 典型查询性能

选取几个典型查询的耗时对比(单位:ms):

| 查询 | StarRocks本地 | StarRocks外表 | Trino | |------|--------------|--------------|-------| | Q4(复杂聚合) | 16,180 | 13,229 | 48,176 | | Q23(大表连接) | 24,500 | 24,746 | 145,850 | | Q67(复杂分析) | 15,486 | 23,743 | 58,091 | | Q72(多表关联) | 1,764 | 2,733 | 13,973 |

五、测试方法详解

5.1 数据生成

使用tpcds-poc工具生成100GB测试数据:

wget https://starrocks-public.oss-cn-zhangjiakou.aliyuncs.com/tpcds-poc-1.0.zip
unzip tpcds-poc-1.0
cd tpcds-poc-1.0
sh bin/gen_data/gen-tpcds.sh 100 data_100

5.2 StarRocks本地表测试

  1. 创建表结构:
sh bin/create_db_table.sh ddl_100
  1. 导入数据:
sh bin/stream_load.sh data_100
  1. 执行测试:
sh bin/benchmark.sh -p -d tpcds

5.3 Hive外表测试

  1. 创建Parquet格式外表:
CREATE EXTERNAL TABLE call_center (
  cc_call_center_sk int,
  cc_call_center_id string,
  ...
) STORED AS PARQUET LOCATION '/user/tmp/parquet/call_center';
  1. 从CSV导入数据:
INSERT INTO tpcds_100g_parquet_lz4.call_center 
SELECT * FROM tpcds_100g_csv.call_center 
ORDER BY cc_call_center_sk;

六、性能优化建议

  1. Data Cache使用:测试显示开启Data Cache后,Hive外表查询性能提升35%,接近本地存储性能

  2. 聚合下推:通过设置cbo_push_down_aggregate_mode参数优化聚合操作

  3. 数据组织:对常用查询条件列进行排序存储可提升查询效率

  4. 资源配置:适当增加BE节点内存可提升复杂查询性能

七、结论分析

StarRocks在TPC-DS测试中展现出显著优势:

  1. 向量化执行引擎高效处理复杂分析查询
  2. CBO优化器智能选择最优执行计划
  3. 本地存储格式针对分析场景深度优化
  4. 外表查询通过Data Cache减少IO开销

这些特性使StarRocks成为实时分析场景的理想选择,特别适合需要快速响应复杂查询的大数据环境。

starrocks StarRocks是一个开源的分布式数据分析引擎,用于处理大规模数据查询和分析。 - 功能:分布式数据分析;大规模数据查询;数据分析;数据仓库。 - 特点:高性能;可扩展;易于使用;支持多种数据源。 starrocks 项目地址: https://gitcode.com/gh_mirrors/st/starrocks

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谢忻含Norma

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值