-- 清空分区表 清空hive表 hive分区表清空 清空hive分区表

为什么着重强调分区表,因为分区表清空可能会因为分区过多导致清理速度特别慢.

方式1 truncate table tb1(分区表注意)

注意事项:

truncate table不会删除hdfs 分区文件夹,只会删除parquet文件,所以结果就是一堆分区目录还在,但是下面的parquet文件都被删除了.

truncate table 不止不会删除分区文件夹,而且不会删除hive元数据中存储的分区信息,即hive认为之前的分区还在,spark读取到就会扫描该分区下的文件,没有不报错,但是目录不存在就报错了,这就是为什么手动删除分区文件夹会导致spark2.x报错. spark3变成了警告信息.

通过 show partitions 表名; 来检测hive元数据是否被清空.

使用场景: 分区表的分区不是特别多的场景,比如几百个分区.如果分区太多,那么删除将会分成缓慢.

方式2 复制表结构 删除原表 修改表名(推荐)

有些公司不允许代码新建hive表. eg:sb大华

create table tbnew like tbold;
drop table if exists tbold;
alter table tbnew rename to tbold;

方式3 hadoop删除分区目录 msck修复 (版本号注意)

The MSCK REPAIR TABLE command was designed to manually add partitions that are added to or removed from the file system, such as HDFS or S3, but are not present in the metastore.

可以看文档中写到 msck用来修复你新增或者删除了分区文件,但是没有同步到hive元数据的情况.

坑:

  • hive2的msck只能修复新增的分区,手动删除的分区并不会修复到元数据. msck repair table tableName;
  • hive3.0.0 (https://issues.apache.org/jira/browse/HIVE-17824)可以: msck repair table tableName sync partitions ; 等效于: ALTER TABLE tableName RECOVER PARTITIONS;

msck官方语法:

MSCK [REPAIR] TABLE table_name [ADD/DROP/SYNC PARTITIONS];

文档: LanguageManual DDL - Apache Hive - Apache Software Foundation

如果你是hive2+spark2 那么方式3会导致你spark任务报错.

如果你是hive3+spark3 那么没问题,但是记得使用 msck的sync模式.

如果我就是用hive2 spark2 但是分区已经被我删除了怎么解决

show partitions partitionedtb1; -- 查看hive元数据里面存储了哪些分区
alter table partitionedtb1 set TBLPROPERTIES('EXTERNAL'='TRUE'); -- 修改为外部表是为了保证删除分区后,数据不会被删除
alter table partitionedtb1 drop if exists partition (dt <> 'null'); -- 注意: 这里虽然文件夹没有,但是他是根据元数据走的,所以你的元数据会被删除.
alter table partitionedtb1 set TBLPROPERTIES('EXTERNAL'='FALSE'); 

清空hive表 姿势大全相关推荐

  1. Hive Sql 大全(hive函数,hive表)

    Hive Sql 大全 本节基本涵盖了Hive日常使用的所有SQL,因为SQL太多,所以将SQL进行了如下分类: 一.DDL语句(数据定义语句): 对数据库的操作:包含创建.修改数据库 对数据表的操作 ...

  2. <Zhuuu_ZZ>HIVE(终)总结大全:是兄弟就来三连我

    HIVE总结大全 一 Hive入门 1 什么是Hive 2 Hive的优缺点 2.1 优点 2.2 缺点 3 Hive架构原理 4 Hive和数据库比较 4.1 查询语言 4.2 数据存储位置 4.3 ...

  3. arcengine遍历属性表_记录一次Hive表清理过程

    记录一次Hive表清理过程 背景 时间:2020-07-17 在用spark+hive做数仓的过程中往往会产生很多表,过多历史表会很快消耗掉有限的hdfs资源,并且时间过于久远的表一般不会具有利用价值 ...

  4. hbase映射为hive表(转载+整理+自己验证)

    本文是对[1][2]的整理以及在新版本上的验证 ---------------------------------------------------------------------------- ...

  5. 史上很全的注册表修改大全

    史上很全的注册表修改大全 请使用 Ctrl+F 键来查找你想要的 不想别人使用你电脑的某些功能,或是在网吧想使用某些功能,或是让自己的电脑速度更快 怎么办 如果你有点注册表的知识就OK拉 没有多深奥 ...

  6. hive表中的数据导出

    将hive表中的数据导出到其他任意目录,例如linux本地磁盘,例如hdfs,例如mysql等等 一.insert导出 将查询的结果导出到本地 insert overwrite local direc ...

  7. SparkSQL overwrite插入Hive表数据重复问题

    问题描述: 使用Spark SQL采用overwrite写法写入Hive(非分区表,),全量覆盖,因为人为原因脚本定时设置重复,SparkSql计算任务被短时间内调起两次,结果发现任务正常运行,造成写 ...

  8. Hive总结 --hive表的创建,删除和修改

    一.创建表 官网创建HIVE表定义如下: CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name -- (No ...

  9. hive表中的数据导出:表数据的导出7种方式

    将hive表中的数据导出到其他任意目录,例如linux本地磁盘,例如hdfs,例如mysql等等 insert导出 1)将查询的结果导出到本地 :第一种 insert overwrite local ...

最新文章

  1. [转自脚本之家] Javascript cookie 详解
  2. 如何在tomcat下应用部署日志_如何在kubernete集群上部署springboot应用
  3. 手机进不了recovery模式了 怎么办
  4. mysql报错:Deadlock found when trying to get lock;
  5. weblogic 用的人还多吗_2020年劳务工越来越多,出现这种“怪现状”,是发展的需求吗?...
  6. 二叉树层次遍历c语言_每日一道 LeetCode (23):二叉树的层次遍历 II
  7. Xcode 真机 iPhone is not available 及 is busy 解决
  8. Win32屏幕保护程序
  9. 安全合规/法案--33--《APP违法违规收集使用个人信息自评估指南》原文及解读
  10. 学计算机拼音不好怎么办,新学期拼音学不会怎么办?送你10个妙招攻克拼音难关...
  11. 数量积与向量积(点积与叉积)
  12. 明略科技吴明辉:每一次新数据都会带来商业模式的迭代 | 会员专栏
  13. Python 爬虫实战:分析豆瓣中最新电影的影评
  14. Coinversation 的选择!一文了解 Polkadot 生态中的智能合约
  15. 王道OS-磁盘存储器管理
  16. StringUtil工具类详解
  17. 内核中的gfp_t类型
  18. MC7812BTG详细参数介绍
  19. 麻烦攻克食材串味难题!保姆级除味妙招请查收
  20. Spring MVC的转发和重定向

热门文章

  1. 项目没有亮点,如何应对面试官的提问?
  2. 常用的css特效(一)
  3. 教你用python在excel中“画画”
  4. Python谷歌小恐龙--Pygame
  5. 易语言 不支持html5,微凉模块可穿透框架,解决网页点击不了的问题
  6. jQuery实现日期选择器
  7. 人生没有太晚的开始,只有不开始
  8. 下周发布三维声呐Coda EchoScope的第四部视频
  9. android混合开发!带你一起探究Android事件分发机制,终获offer
  10. 夜神模拟器设置与PC同一网段,单IP