Ibisを使ってみた(3)

ImpalaとIbis

前回Ibisを実行してみましたが、実際のところImpalaではどのようなクエリが実行されるのかをWebUIから確認してみました。

ノートブックからチュートリアル7を実行してみます。

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)

   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

この時 Impala の WebUI から見えるクエリは下記のようになっています。

impala_ibis_queryその時の実行計画は以下のとおり。

ibis_impala_plan(Impala 2.2から実行計画がグラフィカルに表示されるようになりました)

Quickstart VMは1ノードでImpalaを実行していますが、Ibisを分散環境で実行すれば(Impalaを使って)容易に分散して実行されますね。

Pocket

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)