如果只想删除某一分区的数据,请使用以下命令:
> alter table t_bz drop partition (dt='2014-07-23');
如何保证t_bz表里面的数据每天都是新增,可以使用以下命令:
t_bz 是目标数据表,t_bz_tmp 是一张临时表,后者的用来存放每天新增的数据。
每天产生的数据放入临时表中使用load:
LOAD DATA LOCAL INPATH '/home/test/log.csv' OVERWRITE INTO TABLE t_bz_tmp;
insert into table t_bz partition(dt) select LogId,UserId,ClientVersion, ActionTime,dt from t_bz_tmp where (dt = DATE_FORMAT(actiontime,' yyyy-MM-dd' ));
dt的内容是"2014-08-05" 这样的,actiontime的 “2014-08-05 02:23:11”
通过hive的动态分区功能,保证t_bz的数据每天产生一个新的分区,已经存在的分区数据都是不会发生变化的。