db2表分区删除
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了db2表分区删除相关的知识,希望对你有一定的参考价值。
参考技术A 1.常规方法delete 查询条件
1.1.删除效率较慢
1.2.经常确认归档日志是否占满
1.3.大的事务长期没有提交容易导致活动日志压力过大
2.detach效率较高
2.1.detach到临时表
db2 "alter table T_PERFORM detach partition PART221 into table perform_PART221";
2.2.删除临时表
db2 drop tableperform_PART221;
hive中怎么删除表中的部分数据
工具:(1)HIVE;
(2)电脑;
(3)Xshell;
采用hdfs命令进行删除表中的部分数据:
1、先使用hdfs查看该表实际分区以及数据目录位置
hdfs dfs -ls /user/hive/warehouse/tbdata.db/表名小写/;
2、例如:使用hdfs命令删除该分区20161124目录
hdfs dfs -rm -r -f /user/hive/warehouse/tbdata.db/表名小写/etl_dt=20161124;
3、最后查看是否有分区目录;
4、最查看进hive命令行查看此表是否还有数据。
参考技术A Hive是不支持更新操作的,你可以这样子做,从Hive表中查询出你想保留的数据,并且输入到原来的表中。 参考技术B 在我实际的开发经验中,可以这样做。1、如果hive表在hdfs上有多个part,可以删除部分part。
2、如果hive表有多个分区,可以删除分区文件夹。
3、可以根据where条件删除符合条件的。
4、骚操作:
drop table if exists tmp_srcTable;
create table tmp_srcTable as SELECT * from srcTable limit 120000;
insert overwrite table srcTable select * from tmp_srcTable;
drop table tmp_srcTable; 参考技术C insert overwrite table t_table1 select * from t_table1 where XXXX;
其中xxx是你需要保留的数据的查询条件。
如果清空表,如下:
insert overwrite table t_table1 select * from t_table1 where 1=0;本回答被提问者和网友采纳 参考技术D insert overwrite table t_table1 select * from t_table1 where XXXX; 其中xxx是你需要保留的数据的查询条件。 如果清空表,如下: insert overwrite table t_table1 select * from t_table1 where 1=0;
以上是关于db2表分区删除的主要内容,如果未能解决你的问题,请参考以下文章