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 tables/partitions.
The proposed stats are:
- 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