hive防止数据误删

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


你可能感兴趣的:(hive,no_drop,hive防止数据误删)