[
https://issues.apache.org/jira/browse/HIVE-25293?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18033408#comment-18033408
]
qinlihui commented on HIVE-25293:
---------------------------------
[~zhangbutao] Our company uses Hive to store 100,000 tables, and we are
currently facing performance bottlenecks when querying partitions. Through
analysis, we have identified the root cause: we use the "cascade" option when
adding partitions to tables. This causes the column information of each
partition to be stored separately in the columns_v2 table. For example, if a
table has 10 fields and 1,000 partitions, adding a new field to this table with
the "cascade" option will result in an additional 10,000 partition column
information records (1,000 * 10) being added to the columns_v2 table. We are
currently unsure whether this scenario is part of Hive's original design or if
it is a bug.
> Alter partitioned table with "cascade" option create too many columns records.
> ------------------------------------------------------------------------------
>
> Key: HIVE-25293
> URL: https://issues.apache.org/jira/browse/HIVE-25293
> Project: Hive
> Issue Type: Improvement
> Components: Metastore
> Affects Versions: 2.3.3, 3.1.2
> Reporter: yongtaoliao
> Assignee: yongtaoliao
> Priority: Major
> Labels: pull-request-available
> Time Spent: 1h 20m
> Remaining Estimate: 0h
>
> When alter partitioned table with "cascade" option, all partitions supports
> to be updated. Currently, a CD_ID will be created for each partition,
> associated with a set of Columns, which will cause a large amount of
> redundant data in the metadata database.
> The following DDL statements can reproduce this scenario:
>
> {code:java}
> create table test_table (f1 int) partitioned by (p string);
> alter table test_table add partition(p='a');
> alter table test_table add partition(p='b');
> alter table test_table add partition(p='c');
> alter table test_table add columns (f2 int) cascade;{code}
> All partitions use the table's `CD_ID` before adding columns, while each
> partition use their own `CD_ID` after adding columns.
>
> My proposal is all partitions should use the same `CD_ID` when table was
> altered with "cascade" option.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)