miketwais

work up

Impala vs GreenPlum vs StarRocks 千万级数据场景下性能测试及比较

背景介绍:

近期研发大数据产品遇到一个需求,面对大数据平台中的巨量数据,用户需要对不同表的数据进行聚合查询,包括join,group,count等操作,需要快速的得到结果。目前主要面向离线数据,暂时不考虑实时数据。现行技术选型是基于CDH的大数据平台,通过Mapreduce或者spark引擎进行计算,实时计算效果不太理想。

分析和思考:

这种场景是一种典型的OLAP场景,在大数据底座上完成快速的数据分析工作。目前在市面上有很多种解决方案,通常有以下几种:

1.基于CDH的Parquet存储+Impala,实现对离线数据的快速查询(若有实时数据场景,考虑kudu+impala)

2.引入MPP(Massively Parallel Processing)引擎,例如:Greenplum和starrocks产品,可以独立于hadoop生态而存在。

接下来需要对上面三种工具parquet+impala,greenplum,starrocks进行验证比较。

方案比较:

测试数据:准备了两张表分别为SAD(700,0000条数据),ITEM(SAD的子表,通过SAD_ID关联,300,0000条数据)

测试场景:join+group+order操作

测试语句:

select a.B33_COMMODITY_CODE,round(a.cnt1/b.cnt2,10) as proportion from
(select I.B33_COMMODITY_CODE,count(*) as cnt1 from ura_demo.ods_sad_parquet S
left join ura_demo.ods_item_parquet I
on S.SAD_ID=I.SAD_ID
where S.VERSION >1
group by I.B33_COMMODITY_CODE) a
join 
(select count(*) as cnt2 from ura_demo.ods_sad_parquet) b
on 1=1
order by proportion DESC;
View Code

a.数据导入到hive数仓,以parquet格式存储,通过impala 查询

数据导入(oracle-->hive):

sqoop脚本+hive脚本

sqoop import --connect jdbc:oracle:thin:@*.*.*.*:1521:test --username system --password="system123" --table CLR.ITEM -m 1 --hive-import -delete-target-dir --hive-table demo.ods_item --map-column-java TARIFF_DESCRIPTION_GOODS=String --hive-drop-import-delims

sqoop import --connect jdbc:oracle:thin:@*.*.*.*:1521:test --username system --password="system123" --table CLR.SAD -m 1 --hive-import -delete-target-dir --hive-table demo.sad --hive-drop-import-delims

create table demo.ods_sad_parquet stored as parquet as select * from demo.sad;

create table demo.ods_item_parquet stored as parquet as select * from demo.ods_item;
View Code

b.   安装greenplum,数据导入到greenplum

主机规划:1master+2segment (暂时不建立standby主机)

主机配置:

master segment
cpu :8核 25GHZ
内存:DDR4 64G
硬盘:256G SSD
网卡:内部万兆网卡互联
cpu :8核 25GHZ
内存:DDR4 64G
硬盘:256G SSD
网卡:内部万兆网卡互联

集群安装:安装教程

安装注意:   1.三台主机都要修改系统内核信息,安装应用程序

      2.三台主机要实现免密登录

      3.数据存储目录(文中的/opt/)一定指定到相关数据盘目录,并且赋予gpadmin用户所有

      4.其他操作基本上在master上通过命令实现(提前配置了三台主机间的免密登录,master上直接操作其他segment主机)

附:greenplum是基于postgreqsql的,操作命令:

启动命令:切换到gpadmin用户,master主机上执行gpstart 

连接命令:psql -d gp_sydb -h mpp-cluster-master -p 5432 -U gpadmin

数据库列表: \l

切入demo库:\c demo

库中所有表:\d

退出:\q

查询:select count(1) from public."ITEM";

关闭green plum:gpstop

 

数据导入:oracle-->greenplum 在master主机上安装cloudcanal工具(可以配置两个节点,master上安装主程序,worker01上再安装一个sidcar节点,提升计算性能),提升数据迁移效率,注意调整任务的参数,如:fullbatchsize,可以手动调整查看效果,达到最佳效果

常见错误:Failed to flush data to StarRocks,解决方法

 

c.   安装starrocks,数据导入到starrocks

主机规划:1fe+3be (fe也作为一个be)

主机配置:

fe be
cpu :8核 25GHZ
内存:DDR4 64G
硬盘:256G SSD
网卡:内部万兆网卡互联
cpu :8核 25GHZ
内存:DDR4 64G
硬盘:256G SSD
网卡:内部万兆网卡互联

集群安装:安装教程

安装注意:   1.三台主机都要copy安装应用程序

      2.三台主机要实现免密登录,

      3.FE启动,必须切换到root

      master主机上/data/software/fe/bin
      在master下启动fe:bin/start_fe.sh --daemon
      启动mysql客户端:mysql -uroot -P 9030 -h52.130.81.91
      默认密码为空
      查看状态:
      show frontends \G

      4.BE启动,必须切换到root

      master主机上/data/software/be/bin
      worker01主机上/data/software/be/bin
      worker02主机上/data/software/fe/bin
      bin/start_be.sh --daemon
      查看BE状况:
      show backends \G

      5.starrocks基于mysql,操作命令和mysql相似:mysql -uroot -P 9030 -h*.*.*.*

数据导入:oracle-->starrocks, 使用cloudcanla实现oracle到starrocks的数据迁移

结论:


分类 parquet+impala greenplum starrocks(test1) starrocks(test2)
10次测试结果 第1次测试结果1960
第2次测试结果2184
第3次测试结果1771
第4次测试结果2049
第5次测试结果1824
第6次测试结果2055
第7次测试结果1791
第8次测试结果2177
第9次测试结果2046
第10次测试结果2176
第1次测试结果1607
第2次测试结果1445
第3次测试结果1441
第4次测试结果1517
第5次测试结果1493
第6次测试结果1406
第7次测试结果1473
第8次测试结果1584
第9次测试结果1569
第10次测试结果1468

第1次测试结果3867
第2次测试结果820
第3次测试结果959
第4次测试结果2324
第5次测试结果976
第6次测试结果1439
第7次测试结果1889
第8次测试结果1253
第9次测试结果1215
第10次测试结果1133

第1次测试结果1446
第2次测试结果980
第3次测试结果1112
第4次测试结果1362
第5次测试结果901
第6次测试结果1126
第7次测试结果1322
第8次测试结果1199
第9次测试结果1420
第10次测试结果1480
10次查询总时间 20040 15009 15880 12353

 

 从结果上看,引入MPP引擎的确可以提升查询性能,查询时间基本在1s~2s之间,而greenplum和starrocks之间的比较,在相同的测试环境下,每次测试的结果稍有不同,但整体上来说starrocks稍微优于greenplum,可以根据熟悉程度进行选择。

posted @ 2022-05-23 10:27  MasonZhang  阅读(2329)  评论(0编辑  收藏  举报