可以说我用年,月,日的分区列创建了一个配置单元表,如果我从 hdfs 中删除了该分区,那么结果是否会反映在配置单元表中
是。分区数据将消失。元存储仍将保留分区信息(元数据),您可以使用show partition mytable查看它。您可以使用msck repair mytable找到需要删除的分区。您可以使用alter table mytable drop partition (...)删除分区
show partition mytable
msck repair mytable
alter table mytable drop partition (...)
Hive 表仍将显示分区,您必须手动删除在 HDFS 上删除的分区(或删除和 re-create 表)并运行 MSCK。
命令:
如果您打算更改表并删除所有已删除的分区,
ALTER TABLE table_name DROP [IF EXISTS] PARTITION partition_spec[, PARTITION partition_spec, ...] [IGNORE PROTECTION] [PURGE]; -- (Note: PURGE available in Hive 1.2.0 and later, IGNORE PROTECTION not available 2.0.0 and later)
我将使用 drop 和 re-create 表,然后运行 MSCK。
要将所有现有分区添加到表中,
msck repair table <table_name>
或者,您可以使用ALTER TABLE删除所有分区,然后运行MSCK命令。
ALTER TABLE
MSCK
2 回答
是。分区数据将消失。
元存储仍将保留分区信息(元数据),您可以使用
show partition mytable
查看它。您可以使用
msck repair mytable
找到需要删除的分区。您可以使用
alter table mytable drop partition (...)
删除分区Hive 表仍将显示分区,您必须手动删除在 HDFS 上删除的分区(或删除和 re-create 表)并运行 MSCK。
命令:
如果您打算更改表并删除所有已删除的分区,
我将使用 drop 和 re-create 表,然后运行 MSCK。
要将所有现有分区添加到表中,
或者,您可以使用
ALTER TABLE
删除所有分区,然后运行MSCK
命令。