admin
2025-12-15 18:33:15
StarRocks TPC-DS 基准测试深度解析
【免费下载链接】starrocks StarRocks是一个开源的分布式数据分析引擎,用于处理大规模数据查询和分析。 - 功能:分布式数据分析;大规模数据查询;数据分析;数据仓库。 - 特点:高性能;可扩展;易于使用;支持多种数据源。 项目地址: https://gitcode.com/GitHub_Trending/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_sales1.44亿store_sales2.88亿inventory3.99亿catalog_returns1440万store_returns2880万
四、性能对比结果
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外表TrinoQ4(复杂聚合)16,18013,22948,176Q23(大表连接)24,50024,746145,850Q67(复杂分析)15,48623,74358,091Q72(多表关联)1,7642,73313,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本地表测试
创建表结构:
sh bin/create_db_table.sh ddl_100
导入数据:
sh bin/stream_load.sh data_100
执行测试:
sh bin/benchmark.sh -p -d tpcds
5.3 Hive外表测试
创建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';
从CSV导入数据:
INSERT INTO tpcds_100g_parquet_lz4.call_center
SELECT * FROM tpcds_100g_csv.call_center
ORDER BY cc_call_center_sk;
六、性能优化建议
Data Cache使用:测试显示开启Data Cache后,Hive外表查询性能提升35%,接近本地存储性能
聚合下推:通过设置cbo_push_down_aggregate_mode参数优化聚合操作
数据组织:对常用查询条件列进行排序存储可提升查询效率
资源配置:适当增加BE节点内存可提升复杂查询性能
七、结论分析
StarRocks在TPC-DS测试中展现出显著优势:
向量化执行引擎高效处理复杂分析查询CBO优化器智能选择最优执行计划本地存储格式针对分析场景深度优化外表查询通过Data Cache减少IO开销
这些特性使StarRocks成为实时分析场景的理想选择,特别适合需要快速响应复杂查询的大数据环境。
【免费下载链接】starrocks StarRocks是一个开源的分布式数据分析引擎,用于处理大规模数据查询和分析。 - 功能:分布式数据分析;大规模数据查询;数据分析;数据仓库。 - 特点:高性能;可扩展;易于使用;支持多种数据源。 项目地址: https://gitcode.com/GitHub_Trending/st/starrocks