hive drop表恢复手册
前言
- 语法:
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表恢复手册相关推荐
- oracle恢复drop建的表首次,Oracle中Drop,Delete,Truancate表恢复
Oracle中Drop,delete,truancate表恢复 oracle中,常常会由于一些失误导致表的删除,以下是我写的一些表恢复的方法. 闪回模式得满足条件(启用闪回区和启用归档): 1.检查是 ...
- mysql恢复drop的表_mysql恢复drop表
drop误操作删除表后,恢复的大概流程是 1.从备份中将表恢复到备份时间点 2.找到drop操作点 3.从binlog中找到备份点到drop点中间所有事件,并筛选出该表的事件 4.执行找到该表的事件 ...
- 测试ODU的DROP掉的表恢复
继续测试一下drop表用ODU是怎么恢复的, http://www.laoxiong.net/odu_recover_drop_table.html [@more@]SQL> conn myus ...
- WINCE恢复默认HIVE注册表的方法
当Wince使用了HIVE注册表后,每次用户的注册表改动将得到保存,但是在某些应用场合需要将注册表还原成为出厂的默认设置,通常要求能够在AP中通过点击一个按钮来实现这种clean boot.使用我前面 ...
- Hive内部表及外部表
1.内部表 内部表,也叫托管表,是Hive在创建表时的默认表. 特点:在内部表被删除后,表的元数据和表数据都从HDFS中完全删除 create table if not exists 表名( 字段名称 ...
- 大数据单机学习环境搭建(5)Hive建表DDL详解
专题:大数据单机学习环境搭建和使用 1. Hive建表简单示例 1.1.Hive建表语句 1.2.表详细信息 1.3.数据展示 2. Hive建表语法详解 3.拓展1:复杂数据分割 4.拓展2:事务表 ...
- MySQL单表恢复方法
正休息的时候一个电话将我的睡意完全打散,"开发童鞋写update SQL的时候忘了加where条件了",相信每一个DBA同学听到这个消息的时候都有骂街的冲动吧.万幸只是单表写花了, ...
- mysqldump工具,工作的本质是什么呢?(dump表的时候,是否会产生drop表的语句)
需求描述: 今天在看mysqldump工具的使用过程,发现一个同事,是这样写的mysqldump命令 mysqldump -uroot -pmysql employees titles | mysql ...
- hive内部表与外部表区别
1.创建内部表与外部表的区别是什么? 2.external关键字的作用是什么? 3.外部表与内部表的区别是什么? 4.删除表的时候,内部表与外部表有什么区别? 5.load data local in ...
- Oracle Drop表并未直接删除 drop table xx purge
drop表 执行drop table xx 语句 drop后的表被放在回收站(user_recyclebin)里,而不是直接删除掉.这样,回收站里的表信息就可以被恢复,或彻底清除. 通 ...
最新文章
- DllMain中不当操作导致死锁问题的分析--进程对DllMain函数的调用规律的研究和分析
- python爬取学校题库_如何使用 Python 爬虫爬取牛客网 Java 题库?
- mysql5.7.11无法启动_mysql 5.7.11 启动报错
- spring boot第七讲
- 陕西师范大学计算机科学学院保研院校,陕西师范大学计算机科学学院(专业学位)现代教育技术保研细则...
- 数据流InputStream转字符串
- 如何改变php的语言变中文,yii2怎么设置切换语言
- idea module取得是parent的文件路径_React(或使用TS)中样式混乱解决方案 *.module.less...
- HDU 2144 (最长连续公共子列 + 并查集) Evolution
- Linux中RAID机制的实现
- 处理机调度算法——先来先服务、高优先权、按时间片轮转调度算法,高响应比调度算法
- 学好python浪漫表白,表白代码
- bch纠错码 码长8_BCH码-BCH码原理-BCH码分类-BCH码的应用-什么是BCH码-测控百科-CK365测控网...
- xrd连续扫描和步进扫描_一种提高xrd实验精度的方法
- 2022五一数学建模有何思路模型?
- [编译原理随记]正则表达式转为NFA状态图(Thompsion构造法)
- gcc -fpic 和 -fPIC 参数问题
- 利用Python的全国旅游景点数据分析案例(新手)
- Netty源码实战(十) - 性能优化
- matlab中(),[],与{}的使用区别