2017-03-09 34 views
1

可以說我創建了一個分區列爲年,月和日的配置單元表,如果我從hdfs中刪除分區,那麼結果會反映在配置單元表中或不是從HDFS中刪除分區目錄,它會反映在配置表格中嗎?

+0

你是什麼意思的「刪除分區」?刪除所有目錄+文件?只刪除子目錄並將文件放在最上面的目錄中? –

+0

刪除所有目錄+文件 – Dipak

+0

[如何在Hive中更新分區元數據時,從HDFS中手動刪除分區數據]的可能重複(http://stackoverflow.com/questions/21108251/how-to-update-partition- metadata-in-hive-when-partition-data-is-manualy-delete) –

回答

0

是的。分區數據將會消失。
Metastore仍將保存分區信息(元數據),您可以使用show partition mytable來查看它。
您可以使用msck repair mytable找到需要刪除的分區。
可以使用alter table mytable drop partition (...)

+0

是的,但是結果會反映在配置單元表中或不是? – Dipak

+0

偏離過程。如何查詢表格並查看不再存在的數據? –

+0

謝謝! 它幫助我瞭解分區刪除 – Dipak

0

蜂巢表仍然會顯示分區刪除分區,你將不得不要麼手動降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命令。