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表分区删除的主要内容,如果未能解决你的问题,请参考以下文章

在 DB2 for Z/OS 中创建表分区

Hive内部表、外部表、分区表、桶表概述

如何彻底删除分区表数据文件

分离和附加分区 db2 版本 10.5 给出 sqlstate 55007 错误

HIVE 表分区

快速找出DB2分区键设置不正确的表