1

假设我创建了一个分区列为年、月和日的配置单元表,如果我从 hdfs 中删除分区,那么结果是否会反映在配置单元表中

4

2 回答 2

1

是的。分区数据将消失。
Metastore 仍将保存分区信息(元数据),您可以使用show partition mytable.
您可以使用 找到需要删除的分区msck repair mytable
您可以使用删除分区alter table mytable drop partition (...)

于 2017-03-09T07:30:17.813 回答
0

Hive 表仍将显示分区,您必须手动删除在 HDFS 上删除的分区(或删除并重新创建表)并运行 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)

我会选择删除并重新创建表,然后运行 ​​MSCK。

要将所有现有分区添加到表中 -

msck repair table <table_name>

或者,您可以使用删除所有分区ALTER TABLE,然后运行该MSCK命令。

于 2018-01-24T19:31:51.047 回答