繁体   English   中英

在不删除数据的情况下删除 Hive 外部表

[英]Drop Hive external table WITHOUT removing data

目标是破坏 Hive 模式,但保留数据。

给定一个 Hive 外部表,例如使用脚本 1 创建的,它可以使用脚本 2 删除。这将删除数据(删除文件夹/user/me/data/ )。 此文件夹必须保留以供其他项目使用。

到目前为止,长时间的搜索没有产生任何结果......

脚本一:创建外部表

CREATE EXTERNAL TABLE external_hive_table(
    column1 STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY
    '\t'
STORED AS TEXTFILE
LOCATION
   '/user/me/data/'
TBLPROPERTIES (
    "skip.header.line.count"="1");

脚本 2:删除外部表(删除数据)

ALTER TABLE
    external_hive_table
SET TBLPROPERTIES (
    'EXTERNAL'='FALSE');

DROP TABLE external_hive_table;

编辑:脚本 3:删除外部表(保留数据)

 DROP TABLE external_hive_table;

仅使用此语句(不使用alter table):

DROP TABLE external_hive_table;

1.防止外部表中的数据被DROP TABLE语句删除。

ALTER TABLE table_name SET TBLPROPERTIES ('external.table.purge'='false');

2.然后删除表。

DROP TABLE table_name;

参考: https://docs.cloudera.com/HDPDocuments/HDP3/HDP-3.1.4/using-hiveql/content/hive_drop_external_table_data.html

我们可以避免这个陡峭的Boz因为我们是丢弃外部表它将丢弃HDFS架构中可用的数据将被删除。 脚本2:删除外部表(丢弃数据)

ALTER TABLE external_hive_table SET TBLPROPERTIES('EXTERNAL'='FALSE');

DROP TABLE external_hive_table

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM