Impala中的刷新元數據和刷新表


轉載:https://blog.csdn.net/xiaobao5214/article/details/85062176

使用方式

invalidate metadata是用於刷新全庫或者某個表的元數據,包括表的元數據和表內的文件數據,它會首先清楚表的緩存,然后從metastore中重新加載全部數據並緩存,該操作代價比較重,主要用於在hive中修改了表的元數據,需要同步到impalad,例如create table/drop table/alter table add columns等。

invalidate metadata   語法:

  1.  
    invalidate metadata                   //重新加載所有庫中的所有表
  2.  
    invalidate metadata [table]            //重新加載指定的某個表

refresh是用於刷新某個表或者某個分區的數據信息,它會重用之前的表元數據,僅僅執行文件刷新操作,它能夠檢測到表中分區的增加和減少,主要用於表中元數據未修改,數據的修改,例如insert into、load data、alter table add partition、llter table drop partition等,如果直接修改表的hdfs文件(增加、刪除或者重命名)也需要指定refresh刷新數據信息。

refresh 語法:

  1.  
    refresh [table]                             //刷新某個表
  2.  
    refresh [table] partition [partition]       //刷新某個表的某個分區

使用原則

如果在使用過程中涉及到了元數據或者數據的更新,則需要使用這兩者中的一個操作完成,具體如何選擇需要根據如下原則:

invalidate metadata操作比refresh要重量級
如果涉及到表的schema改變,使用invalidate metadata [table]
如果只是涉及到表的數據改變,使用refresh [table]
如果只是涉及到表的某一個分區數據改變,使用refresh [table] partition [partition]
禁止使用invalidate metadata什么都不加,寧願重啟catalogd。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM