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/

分区目录会被删除,其文件夹下的数据随之会被删除;、


你可能感兴趣的:(Hive)