牛骨文教育服务平台(让学习变的简单)
博文笔记

Hive 修改表添加分区(add partition)和 加载数据时添加分区 的区别

创建时间:2015-02-26 投稿人: 浏览次数:17802

假定有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/

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


声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。