测试方法使用自定义脚本,依次执行TPC-H测试集。

测试优化

为保证顺利完成测试,在对个产品进行测试之前,进行了必要的配置优化。

  • AnalyticDB for MySQL

    缺失配置,未进行配置优化。

  • MySQL
    • 数据库参数取自阿里云默认模板。
    • 数据结构在原有基础上,增加了部分索引,请参见MySQL
  • Presto

    部分执行参数做了以下调整。

    task.concurrency=128
    exchange.max-reponse-size=16MB
    query.max-memory-per-node=2GB
    task.max-partial-aggregation-memory=32MB
    exchange.max-buffer-size=128MB
    query.max-total-memory-per-node=4GB
    sink.max-buffer-size=64MB
  • Spark

    部分执行参数做了以下调整。

    spark-sql --num-executors 12 
    --executor-cores 3 
    --executor-memory 16G
  • Impala

    配置EMR,关闭内存限制即disable_pool_mem_limits值为true

测试方法

说明
  • 测试前,均执行两轮测试集作为预热环节。
  • 连续执行三轮测试,取三次测试结果的平均值。

您可以参照MySQL测试脚本示例,编写其他测试脚本。

while [ $n -lt 23 ]
do
 echo "query ${n} starting"
 time mysql -f tpch <tpch_${n}.sql
 echo "query $n ended!"
 n=`expr ${n} + 1`
done