测试方法
TPC-H是业界常用的一套Benchmark,由TPC委员会制定发布,用于评测数据库的分析型查询能力。TPC-H查询包含8张数据表、22条复杂的SQL查询,大多数查询包含若干表Join、子查询和Group-by聚合等。
本次测试基于TPC-H 100G数据进行,其中主要表数据量如下:LINEITEM表约6亿行,ORDERS表1.5亿行,PARSUPP表8000万行。
测试环境
机器1台master阿里云主机3台core阿里云主机
CPU8Core32Core
内存32G128G
带宽2.5 Gbit/s10 Gbit/s
软件部署
节点类型Impala 3.4.0StarRocks 2.2
emr-header-1impala-catalog/impala-state-storeFE
emr-worker-1impala-serverBE
emr-worker-2impala-serverBE
emr-worker-3impala-serverBE
测试配置
Impala配置
EMR上默认Impala是访问local hive cluster, 为了跨网络访问HDFS,需要:
* 修改配置文件 # /etc/ecm/impala-conf <property> <name>hive.metastore.uris</name>
<!-- <value>thrift://emr-header-1.cluster-49146:9083</value> -->
<value>thrift://192.168.1.11:9083</value> </property>
* 将域名添加到所有机器的/etc/hosts下面
* 重启所有的impala组件
优化参数如下:
* num_remote_hdfs_io_threads = 48
* num_hdfs_worker_threads = 48
* coordinator_rpc_threads = 48
StarRocks配置
在StarRocks中按照如下方式创建外表,以外表形式访问Hive数据:
CREATE EXTERNAL TABLE `orders` ( `o_orderkey` int(11) NULL COMMENT "",
`o_custkey` int(11) NULL COMMENT "", `o_orderstatus` varchar(1) NULL COMMENT
"", `o_totalprice` double NULL COMMENT "", `o_orderdate` date NULL COMMENT "",
`o_orderpriority` varchar(15) NULL COMMENT "", `o_clerk` varchar(15) NULL
COMMENT "", `o_shippriority` int(11) NULL COMMENT "", `o_comment` varchar(79)
NULL COMMENT "" ) ENGINE=HIVE COMMENT "PARTITION BY ()" PROPERTIES ( "database"
= "tpch_100g_zlib", "table" = "orders", "resource" = "emr_test",
"hive.metastore.uris" = "thrift://192.168.1.11:9083" );
使用默认配置(下面都是默认值):
* cbo_max_reorder_node_use_dp = 10
* cbo_enable_dp_join_reorder = true
* cbo_max_reorder_node_use_exhaustive = 4
* enable_global_runtime_filter = true
* doris_scanner_thread_pool_thread_num = 48
测试结果
Impala在运行Q18的时候出现过OOM,Q11不支持Having子句,因此在统计总体时间时不将这两个查询计算在内。分别测试并发为4,8,16的情况。
C = 4
QueryimpalastarRocksImapa/StarRocks
Q0112615170200.741186839
Q02707515484.570413437
Q031954582242.376580739
Q041916381932.338947882
Q0533196208081.595347943
Q06752355171.363603408
Q075523382656.682758621
Q0824650101212.435530086
Q0943989236071.863387978
Q101504273212.054637345
Q11014100
Q121580074152.130815914
Q1328044142351.970073762
Q141109975941.461548591
Q1519330136871.412289033
Q16633424022.636969192
Q174614297584.728632917
Q180331760
Q191447275831.908479494
Q201895876672.472675101
Q2177373268972.876640518
Q22720936881.954718004
Total4827922115502.282164973
C = 8
QueryimpalaStarRocksImapa/StarRocks
Q0116664225430.739209511
Q02876623413.74455361
Q032547198692.58090992
Q0425564109662.331205544
Q0540461285651.416453702
Q0614471114831.260210746
Q0773645167384.399868563
Q0836240197431.835587297
Q0958073291321.993443636
Q1021039106021.984436899
Q11027090
Q1223967124661.922589443
Q1337570186112.018698619
Q1420287151131.342354265
Q1538694274511.409566136
Q16790327922.830587393
Q1754877194492.821584657
Q180398030
Q1924556161461.520872043
Q2025949169731.528839922
Q2199201393762.519326493
Q22964751281.88124025
Total6630453354871.976365701
C = 16
QueryimpalaStarRocksImapa/StarRocks
Q0133109430320.769404164
Q021408446753.012620321
Q0343767166522.628332933
Q0444760183092.444699328
Q0559935454991.317281698
Q0629002236641.225574713
Q07119317331333.601152929
Q0870404392551.793504012
Q0992872418682.218209611
Q1038625194631.984534758
Q11057310
Q1243914232691.887231939
Q1369355304712.276098586
Q1440873306781.332322837
Q1577504549671.410009642
Q161169638953.002824134
Q1779944394282.027594603
Q180570300
Q1946156310541.486314162
Q2047937304301.575320407
Q21163101780612.08940444
Q221463784471.732804546
Total11409926162501.851508316
测试结论
通过以上测试结果可以看到,不同并行度下,StarRocks的性能表现都优于Impala,有近2倍的性能优势。