测试方法
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阿里云主机 |
CPU | 8Core | 32Core |
内存 | 32G | 128G |
带宽 | 2.5 Gbit/s | 10 Gbit/s |
软件部署
节点类型 | Impala 3.4.0 | StarRocks 2.2 |
emr-header-1 | impala-catalog/impala-state-store | FE |
emr-worker-1 | impala-server | BE |
emr-worker-2 | impala-server | BE |
emr-worker-3 | impala-server | BE |
测试配置
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
Query | impala | starRocks | Imapa/StarRocks |
Q01 | 12615 | 17020 | 0.741186839 |
Q02 | 7075 | 1548 | 4.570413437 |
Q03 | 19545 | 8224 | 2.376580739 |
Q04 | 19163 | 8193 | 2.338947882 |
Q05 | 33196 | 20808 | 1.595347943 |
Q06 | 7523 |