前言

  • 语法:DROP TABLE [IF EXISTS] table_name [PURGE]; -- (Note: PURGE available in Hive 0.14.0 and later)
    • 删除此表的元数据和数据。如果配置了Trash (没有指定 PURGE),数据实际上会移动到 .Trash/Current 目录。元数据完全丢失。
  • 删除外部表时,表中的数据不会从文件系统中删除。
  • 当删除视图引用的表时,不会给出警告(视图关联表被删除视为无效,必须由用户删除或重新创建)。
  • 除此之外.当删除表时,将从元数据存储中删除表信息,并像通过hadoop dfs -rm那样删除原始数据。在许多情况下,这会导致表数据被移动到用户主目录中的.Trash文件夹中;因此,错误删除表的用户可以通过使用相同的模式重新创建表、重新创建任何必要的分区,然后使用Hadoop手动将数据移回原位,从而恢复丢失的数据。此解决方案依赖于底层实现,因此可能随时间或跨安装发生更改;强烈建议用户不要随意删除表。
Version information: PURGEThe PURGE option is added in version 0.14.0 by HIVE-7100.

如果指定了 PURGE,则表数据不会转到. trash /Current目录,因此在出现错误的删除时无法恢复。清洗选项也可以通过表属性 auto.purge 指定。清除(参见上面的TBLPROPERTIES)。

Hive 0.7.0或更高版本中,如果表不存在,DROP返回一个错误,除非指定了 IF EXISTS,或者配置变量 hive.exec.drop.ignorenonexistent 设置为true

删除表或分区中的所有行。如果启用了文件系统Trash ,这些行将被丢弃在指定目录,否则它们将被删除(从Hive 2.2.0 with Hive-14626开始)。当前目标表应该是本地/管理表,否则将引发异常。用户可以指定部分 partition_spec来一次 TRUNCATE 多个分区,省略partition_spec将 TRUNCATE 表中的所有分区。

HIVE 2.3.0 (HIVE-15880)开始,如果表属性auto.purge(参见上面的TBLPROPERTIES)设置为true,当对表发出 TRUNCATE TABLE 命令时,表的数据不会被移动到Trash,并且数据无法恢复。这只适用于管理表。如果管理表没有设置auto.purge属性或者设置为false这个功能被关闭。

了解下dorp命令在hdfs中的操作:

  • dorp命令在HDFS中的操作,其实也是hdfs dfs -rm删除到hdfs中的文件.如果hdfs中开启了删除放入回收站操作.那么就可以恢复的.

开始操作

  • 创建一张与源表相同的表
CREATE TABLE `user`(`locationareaid` bigint, `locationareaname` string
)
PARTITIONED BY ( `dt` string)
row format delimited fields terminated by '\t' line terminated by '\n'  stored as textfile;
  • 从回收站中复制(移动)删除的文件
hdfs dfs -cp /user/hadoop/.Trash/Current/user/hive/warehouse/user/dt=2019-10-161571499856584   /user/hive/warehouse/user
  • 把文件加载到hive
    方案一 将临时目录下的数据load到表中:
load data inpath '/user/hive/warehouse/user/dt=2019-10-171571499859193/part-m-00000' into table user PARTITION (dt='2019-10-171571499859193');

方案二 如果分区过多的话.方案一会很耗时可以是用msck repair table 操作来加载分区,在执行命令前,
注意:一定保证分区所处的位置是正确的.

msck repair table user
  • 验证数据
select * from  user where dt='2019-10-171571499859193'

hive drop表恢复手册相关推荐

  1. oracle恢复drop建的表首次,Oracle中Drop,Delete,Truancate表恢复

    Oracle中Drop,delete,truancate表恢复 oracle中,常常会由于一些失误导致表的删除,以下是我写的一些表恢复的方法. 闪回模式得满足条件(启用闪回区和启用归档): 1.检查是 ...

  2. mysql恢复drop的表_mysql恢复drop表

    drop误操作删除表后,恢复的大概流程是 1.从备份中将表恢复到备份时间点 2.找到drop操作点 3.从binlog中找到备份点到drop点中间所有事件,并筛选出该表的事件 4.执行找到该表的事件 ...

  3. 测试ODU的DROP掉的表恢复

    继续测试一下drop表用ODU是怎么恢复的, http://www.laoxiong.net/odu_recover_drop_table.html [@more@]SQL> conn myus ...

  4. WINCE恢复默认HIVE注册表的方法

    当Wince使用了HIVE注册表后,每次用户的注册表改动将得到保存,但是在某些应用场合需要将注册表还原成为出厂的默认设置,通常要求能够在AP中通过点击一个按钮来实现这种clean boot.使用我前面 ...

  5. Hive内部表及外部表

    1.内部表 内部表,也叫托管表,是Hive在创建表时的默认表. 特点:在内部表被删除后,表的元数据和表数据都从HDFS中完全删除 create table if not exists 表名( 字段名称 ...

  6. 大数据单机学习环境搭建(5)Hive建表DDL详解

    专题:大数据单机学习环境搭建和使用 1. Hive建表简单示例 1.1.Hive建表语句 1.2.表详细信息 1.3.数据展示 2. Hive建表语法详解 3.拓展1:复杂数据分割 4.拓展2:事务表 ...

  7. MySQL单表恢复方法

    正休息的时候一个电话将我的睡意完全打散,"开发童鞋写update SQL的时候忘了加where条件了",相信每一个DBA同学听到这个消息的时候都有骂街的冲动吧.万幸只是单表写花了, ...

  8. mysqldump工具,工作的本质是什么呢?(dump表的时候,是否会产生drop表的语句)

    需求描述: 今天在看mysqldump工具的使用过程,发现一个同事,是这样写的mysqldump命令 mysqldump -uroot -pmysql employees titles | mysql ...

  9. hive内部表与外部表区别

    1.创建内部表与外部表的区别是什么? 2.external关键字的作用是什么? 3.外部表与内部表的区别是什么? 4.删除表的时候,内部表与外部表有什么区别? 5.load data local in ...

  10. Oracle Drop表并未直接删除 drop table xx purge

    drop表 执行drop table xx 语句     drop后的表被放在回收站(user_recyclebin)里,而不是直接删除掉.这样,回收站里的表信息就可以被恢复,或彻底清除.     通 ...

最新文章

  1. DllMain中不当操作导致死锁问题的分析--进程对DllMain函数的调用规律的研究和分析
  2. python爬取学校题库_如何使用 Python 爬虫爬取牛客网 Java 题库?
  3. mysql5.7.11无法启动_mysql 5.7.11 启动报错
  4. spring boot第七讲
  5. 陕西师范大学计算机科学学院保研院校,陕西师范大学计算机科学学院(专业学位)现代教育技术保研细则...
  6. 数据流InputStream转字符串
  7. 如何改变php的语言变中文,yii2怎么设置切换语言
  8. idea module取得是parent的文件路径_React(或使用TS)中样式混乱解决方案 *.module.less...
  9. HDU 2144 (最长连续公共子列 + 并查集) Evolution
  10. Linux中RAID机制的实现
  11. 处理机调度算法——先来先服务、高优先权、按时间片轮转调度算法,高响应比调度算法
  12. 学好python浪漫表白,表白代码
  13. bch纠错码 码长8_BCH码-BCH码原理-BCH码分类-BCH码的应用-什么是BCH码-测控百科-CK365测控网...
  14. xrd连续扫描和步进扫描_一种提高xrd实验精度的方法
  15. 2022五一数学建模有何思路模型?
  16. [编译原理随记]正则表达式转为NFA状态图(Thompsion构造法)
  17. gcc -fpic 和 -fPIC 参数问题
  18. 利用Python的全国旅游景点数据分析案例(新手)
  19. Netty源码实战(十) - 性能优化
  20. matlab中(),[],与{}的使用区别

热门文章

  1. jdbc,基本数据库命令封装
  2. 李沐基于Pytorch的深度学习笔记(1)
  3. 社交媒体与邮件营销结合实现1+12的效果,你会玩吗?
  4. 错误的太极观念造成膝盖损伤
  5. 网络时钟同步系统概述
  6. 适当的发泄 有助于自我调整
  7. 性能魔方七剑下天山之由龙剑:世界级监测、完整且免费
  8. 如何在工作中形成自己的方法论(待完善)
  9. 面向对象的分析(Object Oriented Analysis,OOA)模型有三种:功能模型 (用例图)对象模型(类图) 动态模型(状态图)
  10. oCPC实践录 | oCPC产品设计与出价原理(1)