当前位置:   article > 正文

2024年最全hive数据库delete删除部分数据 删除分区内的数据_hive 删除数据,2024必看-大数据开发高级面试题总结_hive删除分区和分区数据

hive删除分区和分区数据

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

DELETE FROM my_table WHERE condition;


其中,my\_table是要删除数据的表名,condition是一个表达式,用于指定哪些行应该被删除。例如,要删除my\_table表中age大于30的所有行,可以使用以下语句:



  • 1
  • 2
  • 3
  • 4
  • 5

DELETE FROM my_table WHERE age > 30;


这将删除所有age大于30的行。


### 1.3、删除表中的特定分区


如果表是分区的,可以使用DELETE语句删除特定的分区。分区是根据表中的某些列进行划分的,因此可以只删除特定的分区而不影响其他分区。下面是一个示例:



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

DELETE FROM my_table PARTITION (partition_column = partition_value);
或者
alter table my_table drop partition(partition_column = partition_value)


其中,my\_table是要删除数据的表名,partition\_column是分区列的名称,partition\_value是要删除的分区的值。例如,要删除my\_table表中date列为’2022-01-01’的分区,可以使用以下语句:



  • 1
  • 2
  • 3
  • 4
  • 5

DELETE FROM my_table PARTITION (date = ‘2022-01-01’);
或者
alter table my_table drop partition(date = ‘2022-01-01’)


这将删除所有date列为’2022-01-01’的分区。


### 1.4、删除分区内的部分数据


若我们只是想删除分区中的指定数据,可以通过以下命令删除



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

DELETE FROM my_table PARTITION (partition_column = partition_value) where conditon


例如:删除出生年份为2020年的男生



  • 1
  • 2
  • 3
  • 4
  • 5

DELETE FROM my_table PARTITION (year= ‘2020’) where sex = ‘男’


### 1.5、清空表中的所有数据


如果只需要删除表中的所有数据而不删除表本身,可以使用TRUNCATE语句。TRUNCATE语句用于删除表中的所有行,但保留表的元数据。下面是一个示例:



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

TRUNCATE TABLE my_table;


## 二、扩展


### 2.1、dynamic partition on Crud si not disabled, please set hive.crud.dynamic.partition=true to enable it


在hive数据库中,用delete删除分区内的数据报错,sql及报错内容如下:



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

user表根据year年份字段进行分区,删除2020年分区内的男生

sql: delete from user where year = ‘2020’ and sex = ‘男’

报错内容:dynamic partition on Crud si not disabled, please set hive.crud.dynamic.partition=true to enable it


**解决方法:**  
 将分区字段放到where前面,语法如下:


![img](https://img-blog.csdnimg.cn/img_convert/242f1f3cc8eacabe35de3a8689922812.png)
![img](https://img-blog.csdnimg.cn/img_convert/e16855e2202ee39c0182fa3fe90c5884.png)
![img](https://img-blog.csdnimg.cn/img_convert/307749339a7f096df294b042a04f34c9.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**

图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/981258
推荐阅读
相关标签
  

闽ICP备14008679号