Hive 从HDFS中删除分区目录,它会反映在配置单元表中吗?

Hive 从HDFS中删除分区目录,它会反映在配置单元表中吗?,hive,hive-partitions,Hive,Hive Partitions,假设我创建了一个配置单元表,其中分区列为年、月和日,如果我从hdfs中删除了分区,那么结果是否会反映在配置单元表中。分区数据将消失。 元存储区仍将保存分区信息(元数据),您可以使用show partition mytable查看它 您可以使用msck repair mytable找到需要删除的分区 您可以使用alter table mytable drop partition(…)删除分区。是。分区数据将消失。 元存储区仍将保存分区信息(元数据),您可以使用show partition myta

假设我创建了一个配置单元表,其中分区列为年、月和日,如果我从hdfs中删除了分区,那么结果是否会反映在配置单元表中。分区数据将消失。
元存储区仍将保存分区信息(元数据),您可以使用
show partition mytable
查看它
您可以使用
msck repair mytable
找到需要删除的分区

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

您可以使用alter table mytable drop partition(…)删除分区。

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

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

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

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

什么是“删除分区”?是否删除所有目录和文件?只删除子目录并将文件放在顶部目录?删除所有目录+文件可能与“删除分区”的意思相同?是否删除所有目录和文件?只删除子目录并将文件放在顶层目录?删除所有目录+文件可能重复的是,但该结果是否会反映在配置单元表中?当然会。如何查询一个表并查看不再存在的数据?谢谢!!这有助于我理解分区删除
msck repair
不会反映元存储中手动删除的文件夹,它只会将HDF上但不在元存储中的分区添加到元存储。@cheseaux-不会删除,但会反映。看看我的答案,我已经修正了这个答案。谢谢,但这个结果是否会反映在蜂巢表中?当然会。如何查询一个表并查看不再存在的数据?谢谢!!这有助于我理解分区删除
msck repair
不会反映元存储中手动删除的文件夹,它只会将HDF上但不在元存储中的分区添加到元存储。@cheseaux-不会删除,但会反映。看看我的答案,我已经修正了这个答案。谢谢