Hive 修改表添加分区和 加载数据时添加分区 的区别
发布网友
发布时间:2022-04-07 16:47
我来回答
共1个回答
热心网友
时间:2022-04-07 18:16
假定有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/
分区目录会被删除,其文件夹下的数据随之会被删除;