ImpalaでTPC-Hを動かしてみた

Cloudera Impalaを使って,TPC-Hを動かしてみました.
HIVE-600で既にTPC-H on Hiveが公開されているので,こいつをImpalaで動くようにちょこっと書き換えています.
ついでに,同じクエリをHiveでも流してみました.

結果

- Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10
Impala 6.96 4.14 7.97 12.67 6.12 3.57 14.52 6.86 35.90 5.97
Hive 78.87 147.08 125.23 104.61 191.85 31.33 263.26 217.80 363.12 126.32
- Q12 Q13 Q14 Q15 Q16 Q17 Q18 Q19 Q20 Q21
Impala 4.71 4.86 4.72 5.74 5.92 13.08 22.50 36.35 11.08 42.25
Hive 81.77 105.35 47.37 108.96 121.23 144.42 179.55 96.94 168.62 272.62

※単位は秒です.Query11と22はImpalaでは実行できなくて挫折しました...


実行時間の比を取ると,平均16倍高速に動作しています.

Min.   : 2.667
1st Qu.: 9.721
Median :15.466
Mean   :16.200
3rd Qu.:20.648
Max.   :35.527


同じデータをHiveとImpalaの実行時間をそれぞれ軸にした散布図にするとこうです.
Query19以外は,まあこんなもんか〜という感じですかね.

その他

  • 計測した範囲はselect部分のみになります.(ImpalaはDDLがサポートされていないので)
  • データサイズは1GB.
  • 実行環境はただのPCです.しかも1台...
  • CPU: Phenom II X4 945 (3.0GHz 4core),Mem: 8GB (仮想マシンには6GB割当て)
  • Clouderaが公開しているImpala用仮想マシンイメージをそのまま使わせていただきました.


クエリの具体的な書き換えについては,別エントリで書こうかと思います.