从hdfs中删除分区目录,它会反映在hive表中吗?

p4rjhz4m  于 2021-06-26  发布在  Hive
关注(0)|答案(2)|浏览(417)

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

uttx8gqw

uttx8gqw1#

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

xe55xuns

xe55xuns2#

配置单元表仍将显示分区,您必须手动删除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)

我将使用drop重新创建表,然后运行msck。
将所有现有分区添加到表中-

msck repair table <table_name>

或者,可以使用 ALTER TABLE 然后运行 MSCK 命令。

相关问题