假设我创建了一个分区列为年、月和日的配置单元表,如果我从hdfs中删除了分区,那么结果是否会反映在配置单元表中
uttx8gqw1#
对。分区数据将消失。metastore仍然保存分区信息(元数据),您可以使用 show partition mytable .您可以使用找到需要删除的分区 msck repair mytable .您可以使用 alter table mytable drop partition (...)
show partition mytable
msck repair mytable
alter table mytable drop partition (...)
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 命令。
ALTER TABLE
MSCK
2条答案
按热度按时间uttx8gqw1#
对。分区数据将消失。
metastore仍然保存分区信息(元数据),您可以使用
show partition mytable
.您可以使用找到需要删除的分区
msck repair mytable
.您可以使用
alter table mytable drop partition (...)
xe55xuns2#
配置单元表仍将显示分区,您必须手动删除hdfs上删除的分区(或删除并重新创建表)并运行msck。
命令:
如果要更改表并删除所有已删除的分区-
我将使用drop重新创建表,然后运行msck。
将所有现有分区添加到表中-
或者,可以使用
ALTER TABLE
然后运行MSCK
命令。