hive-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jesus Camacho Rodriguez (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (HIVE-17503) CBO: Add "Explain CBO" to print Calcite trees
Date Mon, 22 Oct 2018 03:01:00 GMT

     [ https://issues.apache.org/jira/browse/HIVE-17503?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Jesus Camacho Rodriguez resolved HIVE-17503.
--------------------------------------------
       Resolution: Fixed
    Fix Version/s: 4.0.0

Included in HIVE-20718.

> CBO: Add "Explain CBO" to print Calcite trees
> ---------------------------------------------
>
>                 Key: HIVE-17503
>                 URL: https://issues.apache.org/jira/browse/HIVE-17503
>             Project: Hive
>          Issue Type: Improvement
>          Components: CBO
>    Affects Versions: 3.0.0
>            Reporter: Gopal V
>            Assignee: Jesus Camacho Rodriguez
>            Priority: Major
>             Fix For: 4.0.0
>
>
> The calcite tree is only logged at debug level in Hive right now, which is inconvenient
to debug the CBO issues with selectivity and join rotations.
> The Calcite plans, before being sent to the rest of the optimizers end up looking like
> {code}
> HiveProject(s_store_name=[$0], s_company_id=[$1], s_street_number=[$2], s_street_name=[$3],
s_street_type=[$4], s_suite_number=[$5], s_city=[$6], s_county=[$7], s_state=[$8], s_zip=[$9],
30days=[$10], 3160days=[$11], 6190days=[$12], 91120days=[$13], 120days=[$14])
>     HiveAggregate(group=[{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}], agg#0=[sum($10)], agg#1=[sum($11)],
agg#2=[sum($12)], agg#3=[sum($13)], agg#4=[sum($14)])
>       HiveProject($f0=[$14], $f1=[$15], $f2=[$16], $f3=[$17], $f4=[$18], $f5=[$19], $f6=[$20],
$f7=[$21], $f8=[$22], $f9=[$23], $f10=[CASE(<=(-($8, $4), CAST(30):BIGINT), 1, 0)], $f11=[CASE(AND(>(-($8,
$4), CAST(30):BIGINT), <=(-($8, $4), CAST(60):BIGINT)), 1, 0)], $f12=[CASE(AND(>(-($8,
$4), CAST(60):BIGINT), <=(-($8, $4), CAST(90):BIGINT)), 1, 0)], $f13=[CASE(AND(>(-($8,
$4), CAST(90):BIGINT), <=(-($8, $4), CAST(120):BIGINT)), 1, 0)], $f14=[CASE(>(-($8,
$4), CAST(120):BIGINT), 1, 0)])
>         HiveJoin(condition=[=($2, $13)], joinType=[inner], algorithm=[none], cost=[not
available])
>           HiveJoin(condition=[=($4, $12)], joinType=[inner], algorithm=[none], cost=[not
available])
>             HiveJoin(condition=[AND(=($0, $5), =($1, $6), =($3, $7))], joinType=[inner],
algorithm=[none], cost=[not available])
>               HiveProject(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8],
ss_sold_date_sk=[$22])
>                 HiveFilter(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($8),
IS NOT NULL($6), IS NOT NULL($22))])
>                   HiveTableScan(table=[[tpcds_bin_partitioned_orc_10000.store_sales]],
table:alias=[store_sales])
>               HiveJoin(condition=[=($3, $4)], joinType=[inner], algorithm=[none], cost=[not
available])
>                 HiveProject(sr_item_sk=[$1], sr_customer_sk=[$2], sr_ticket_number=[$8],
sr_returned_date_sk=[$19])
>                   HiveFilter(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT
NULL($8), IS NOT NULL($19))])
>                     HiveTableScan(table=[[tpcds_bin_partitioned_orc_10000.store_returns]],
table:alias=[store_returns])
>                 HiveProject(d_date_sk=[$0], d_year=[CAST(2000):INTEGER], d_moy=[CAST(9):INTEGER])
>                   HiveFilter(condition=[AND(=($6, 2000), =($8, 9), IS NOT NULL($0))])
>                     HiveTableScan(table=[[tpcds_bin_partitioned_orc_10000.date_dim]],
table:alias=[d2])
>             HiveProject(d_date_sk=[$0])
>               HiveFilter(condition=[IS NOT NULL($0)])
>                 HiveTableScan(table=[[tpcds_bin_partitioned_orc_10000.date_dim]], table:alias=[d1])
>           HiveProject(s_store_sk=[$0], s_store_name=[$5], s_company_id=[$16], s_street_number=[$18],
s_street_name=[$19], s_street_type=[$20], s_suite_number=[$21], s_city=[$22], s_county=[$23],
s_state=[$24], s_zip=[$25])
>             HiveFilter(condition=[IS NOT NULL($0)])
>               HiveTableScan(table=[[tpcds_bin_partitioned_orc_10000.store]], table:alias=[store])
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message