hive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ning Zhang (JIRA)" <>
Subject [jira] Updated: (HIVE-1361) table/partition level statistics
Date Thu, 16 Sep 2010 22:05:34 GMT


Ning Zhang updated HIVE-1361:

    Attachment: HIVE-1361.patch

Uploading a full version (HIVE-1361.patch) and a Java code only version (HIVE-1361.java_only.patch).

This patch is based on Ahmed's previous patch and implements the following feature:
  1) automatically gather stats (number of rows currently) whenever an INSERT OVERWRITE TABLE
is issued. Each mapper/reducer push their partial stats to either MySQL/Derby through JDBC
or HBase. The INSERT OVERWRITE statement could be anything include dynamic partition insert,
multi-table inserts and inserting to bucketized partitions. A StatsTask is responsible for
aggregating partial stats at the end of the query and update the metastore.
  2) The stats of a table/partition can be exposed to the user by 'DESC EXTENDED' to the table/partition.
They are stored as the storage parameters (numRows, nuFiles, numPartitions). 
to scan the table/partition and gather stats in a similar fashion as INSERT OVERWRITE command
except that the plan has only 1 MR job consisting a TableScanOperator and a StatsTask. Partition
spec could be full partition spec or partial partition spec similar to what dynamic partition
insert uses. This allows the user to analyze a subset/all partitions of a table. The resulting
stats are stored in the same parameter in the meatstore.

Tested locally (unit tests) for JDBC:derby, hbase and on a cluster with JDBC:MySQL. 

Will run the full unit tests again. 

> table/partition level statistics
> --------------------------------
>                 Key: HIVE-1361
>                 URL:
>             Project: Hadoop Hive
>          Issue Type: Sub-task
>    Affects Versions: 0.6.0
>            Reporter: Ning Zhang
>            Assignee: Ahmed M Aly
>         Attachments: HIVE-1361.java_only.patch, HIVE-1361.patch, stats0.patch
> At the first step, we gather table-level stats for non-partitioned table and partition-level
stats for partitioned table. Future work could extend the table level stats to partitioned
table as well. 
> There are 3 major milestones in this subtask: 
>  1) extend the insert statement to gather table/partition level stats on-the-fly.
>  2) extend metastore API to support storing and retrieving stats for a particular table/partition.

>  3) add an ANALYZE TABLE [PARTITION] statement in Hive QL to gather stats for existing
> The proposed stats are:
> Partition-level stats: 
>   - number of rows
>   - total size in bytes
>   - number of files
>   - max, min, average row sizes
>   - max, min, average file sizes
> Table-level stats in addition to partition level stats:
>   - number of partitions

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message