Ibisを使ってみた(3)

ImpalaとIbis

前回Ibisを実行してみましたが、実際のところImpalaではどのようなクエリが実行されるのかをWebUIから確認してみました。
ノートブックからチュートリアル7を実行してみます。
[code]
region = con.table(‘tpch_region’)
nation = con.table(‘tpch_nation’)
customer = con.table(‘tpch_customer’)
orders = con.table(‘tpch_orders’)
fields_of_interest = [customer,
                      region.r_name.name(‘region’),
                      orders.o_totalprice,
                      orders.o_orderdate.cast(‘timestamp’).name(‘odate’)]
tpch = (region.join(nation, region.r_regionkey == nation.n_regionkey)
        .join(customer, customer.c_nationkey == nation.n_nationkey)
        .join(orders, orders.o_custkey == customer.c_custkey)
        [fields_of_interest])
tpch.limit(5)
[/code]
[code]
c_custkey c_name c_address c_nationkey \
0 149909 Customer#000149909 D0WBgaCvitADwGzti,6S9D 16
1 149909 Customer#000149909 D0WBgaCvitADwGzti,6S9D 16
2 149909 Customer#000149909 D0WBgaCvitADwGzti,6S9D 16
3 149909 Customer#000149909 D0WBgaCvitADwGzti,6S9D 16
4 149909 Customer#000149909 D0WBgaCvitADwGzti,6S9D 16
c_phone c_acctbal c_mktsegment \
0 26-258-626-2381 9401.92 MACHINERY
1 26-258-626-2381 9401.92 MACHINERY
2 26-258-626-2381 9401.92 MACHINERY
3 26-258-626-2381 9401.92 MACHINERY
4 26-258-626-2381 9401.92 MACHINERY
c_comment region o_totalprice \
0 lyly pending platelets sleep quickly above the… AFRICA 275266.73
1 lyly pending platelets sleep quickly above the… AFRICA 137016.47
2 lyly pending platelets sleep quickly above the… AFRICA 267222.99
3 lyly pending platelets sleep quickly above the… AFRICA 222958.49
4 lyly pending platelets sleep quickly above the… AFRICA 85184.71
odate
0 1996-05-17
1 1997-07-04
2 1997-10-05
3 1994-12-01
4 1992-11-25
[/code]
この時 Impala の WebUI から見えるクエリは下記のようになっています。
impala_ibis_queryその時の実行計画は以下のとおり。
ibis_impala_plan(Impala 2.2から実行計画がグラフィカルに表示されるようになりました)
Quickstart VMは1ノードでImpalaを実行していますが、Ibisを分散環境で実行すれば(Impalaを使って)容易に分散して実行されますね。

コメント