You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Vineet Garg (JIRA)" <ji...@apache.org> on 2017/09/29 04:11:00 UTC

[jira] [Comment Edited] (HIVE-17634) Use properties from HiveConf about "fetchColStats" and "fetchPartStats" in RelOptHiveTable#updateColStats

    [ https://issues.apache.org/jira/browse/HIVE-17634?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16185323#comment-16185323 ] 

Vineet Garg edited comment on HIVE-17634 at 9/29/17 4:10 AM:
-------------------------------------------------------------

[~kellyzly] We decided to estimate stats only if they don't exist in metastore. So if user has explicitly turned off {{hive.stats.fetch.column.stats}} we assume user is not interested in statistics (either from metastore or estimated) for physical planning. Estimate statistics is mostly for preventing falling back to non-cbo in case of missing statistics,it is better to always use stats from metastore if they exist. Hope that makes sense.
I am not convinced why would user not want to fetch stats from metastore and instead rely upon estimated statistics? 


was (Author: vgarg):
[~kellyzly] We decided to estimate stats only if they don't exist in metastore. So if user has explicitly turned off {{hive.stats.fetch.column.stats}} we assume user is not interested in statistics (either from metastore or estimated) for physical planning. Estimate statistics is mostly for preventing falling back to non-cbo in case of missing statistics,it is better to always use stats from metastore if they exist. 
I am not convinced why would user not want to fetch stats from metastore and instead rely upon estimated statistics? 

> Use properties from HiveConf about "fetchColStats" and "fetchPartStats" in RelOptHiveTable#updateColStats
> ---------------------------------------------------------------------------------------------------------
>
>                 Key: HIVE-17634
>                 URL: https://issues.apache.org/jira/browse/HIVE-17634
>             Project: Hive
>          Issue Type: Bug
>            Reporter: liyunzhang_intel
>            Assignee: liyunzhang_intel
>         Attachments: HIVE-17634.patch
>
>
> in [RelOptHiveTable#updateColStats|https://github.com/apache/hive/blob/master/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/RelOptHiveTable.java#L309], we set {{fetchColStats}},{{fetchPartStats}} as true when call {{StatsUtils.collectStatistics}}
> {code}
>    if (!hiveTblMetadata.isPartitioned()) {
>         // 2.1 Handle the case for unpartitioned table.
>         try {
>           Statistics stats = StatsUtils.collectStatistics(hiveConf, null,
>               hiveTblMetadata, hiveNonPartitionCols, nonPartColNamesThatRqrStats,
>               colStatsCached, nonPartColNamesThatRqrStats, true, true);
>       ...
> {code}
> This will cause querying columns statistic from metastore even we set  {{hive.stats.fetch.column.stats}} and {{hive.stats.fetch.partition.stats}} as false in HiveConf.  If we these two properties as false, we can not any column statistics from metastore.  Suggest to set the properties from HiveConf. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)