Hive 修改表新增分割槽(add partition)和 載入資料時新增分割槽 的區別
假定有hive中有兩個表empl_inn(管理表)和empl_ext(外部表),他們都有分割槽(logdate string);
1.對於外部表 empl_ext
alter table empl_ext add partition (logdate=‘2015-02-26’) location ‘hdfs://nameservice1/vod_pb/’; 執行新增分割槽時 vod_pb/ 資料夾下的資料不會被移動。並且沒有分割槽目錄logdate=2015-02-26
alter table empl_ext drop partition (logdate=‘2015-02-26’); 執行刪除分割槽目錄時vod_pb/ 下的資料不會被刪除
load data inpath 'hdfs://nameservice1/vod_pb/' overwrite into table empl_ext partition(logdate='2015-02-26');
執行載入資料新增分割槽時 vod_pb/ 資料夾下的資料會被移動,並建立分割槽目錄logdate=2015-02-26,資料移動到此目錄下
alter table empl_ext drop partition (logdate=‘2015-02-26’); 執行刪除分割槽目錄時,已經建立logdate=2015-02-26
分割槽目錄不會被刪除,其資料夾下的資料也不會被刪除;、
2.對於內部表 empl_inn
alter table empl_inn add partition (logdate=‘2015-02-26’) location ‘hdfs://nameservice1/vod_pb/’; 執行新增分割槽時 vod_pb/ 資料夾下的資料不會被移動。並且沒有分割槽目錄logdate=2015-02-26
alter table empl_inn drop partition (logdate=‘2015-02-26’); 執行刪除分割槽時vod_pb/ 下的資料會被刪除並且連同vod_pb/資料夾也會被刪除
load data inpath 'hdfs://nameservice1/vod_pb/
執行載入資料新增分割槽時 vod_pb/ 資料夾下的資料會被移動,並建立分割槽目錄logdate=2015-02-26,資料移動到此目錄下
alter table empl_inn drop partition (logdate=‘2015-02-26’); 執行刪除分割槽目錄時,已經建立logdate=2015-02-26/
分割槽目錄會被刪除,其資料夾下的資料隨之會被刪除;、