您的位置:首页 > 运维架构

hive防止数据误删

2013-11-26 13:30 831 查看
hive防止重要table误删的方法:
1.HDFS层面开启trash功能 (fs.trash.interval)
数据删除后可以找回

2.创建外部表,CREATE EXTERNAL ***
删除表时只删除元数据,不删除data数据

下面3个方法是控制不能使用DROP TABLE

1.ALTER TABLE xxx ENABLE NO_DROP ,更改已经存在的表

2.CREATE TABLE xxx …..TBLPROPERTIES('PROTECT_MODE'='NO_DROP'),新表创建

3.批量更新,直接操作hive数据库好啦(关联tbls表和table_params表)。

mysql> SELECT * FROM table_params WHERE PARAM_KEY='PROTECT_MODE'\G;
*************************** 1. row ***************************
TBL_ID: 36
PARAM_KEY: PROTECT_MODE
PARAM_VALUE: NO_DROP

设置NO_DROP后,删除表会报如下错误:

hive> DROP TABLE FILE_TEXT;
FAILED: Error in metadata: Table file_text is protected from being dropped
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息