Dhi*_*raj 5 hive external-tables hive-partitions hiveddl
HIVE 中的外部表按年、月和日进行分区。
那么以下查询是否会从此查询中引用的特定分区的外部表中删除数据?:-
ALTER TABLE MyTable DROP IF EXISTS PARTITION(year=2016,month=7,day=11);
Run Code Online (Sandbox Code Playgroud)
分区方案不是数据。分区方案是存储在元数据中的表 DDL 的一部分(简单地说:分区键值 + 存储数据文件的位置)。
数据本身存储在分区位置(文件夹)中的文件中。如果删除外部表的分区,该位置保持不变,但作为分区卸载(删除有关此分区的元数据)。您可以卸载几个版本的分区位置(例如以前的版本)。
您可以删除分区并将另一个位置挂载为分区(alter table add partition)或更改现有分区位置。同时删除外部表不要删除其中包含文件的表/分区文件夹。稍后您可以在此位置的顶部创建表。
查看此答案以更好地理解外部表/分区概念:可以在 HDFS 的同一位置上创建多个表(同时管理和外部)。