1. 程式人生 > >Hive 修改表新增分割槽(add partition)和 載入資料時新增分割槽 的區別

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/

' overwrite into table empl_inn   partition(logdate='2015-02-26');    
    執行載入資料新增分割槽時 vod_pb/     資料夾下的資料會被移動,並建立分割槽目錄logdate=2015-02-26,資料移動到此目錄下

        alter table empl_inn drop partition (logdate=‘2015-02-26’);     執行刪除分割槽目錄時,已經建立logdate=2015-02-26/

分割槽目錄會被刪除,其資料夾下的資料隨之會被刪除;、