簡體   English   中英

如何安全更新配置單元外部表

[英]How to safely update hive external table

我有一個外部配置單元表,我想每天刷新數據文件。 推薦的方法是什么?

如果我只是覆蓋文件,並且如果我們很不幸無法針對此表並行執行其他一些配置單元查詢,那么這些查詢將如何處理? 他們會失敗嗎? 否則我的HDFS操作會失敗嗎? 還是會阻塞直到查詢完成?

如果可用性是一個問題,而空間不是問題,則可以執行以下操作:

  1. 作為外部表的同義詞。 確保訪問表時所有查詢都使用此同義詞。
  2. 加載新數據時,請使用其他名稱將其加載到新表中。
  3. 加載完成后,將同義詞指向新加載的表。
  4. 經過一段適當的時間(足夠長以使任何正在運行的查詢完成)之后,刪除上一個表。

首先..如果要訪問任何表,則它可能具有兩種類型的鎖:

獨占(如果要添加數據)和共享(如果要讀取數據)。

因此,如果您插入覆蓋並將數據添加到表中,那么那時如果您使用其他查詢訪問該表,則它們將不會執行,因為將對其具有排他鎖,並且一旦插入覆蓋查詢完成,您就可以訪問該表。

請參考以下鏈接:

https://cwiki.apache.org/confluence/display/Hive/Locking

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM