2
我們有一個外部Hive表,用於處理原始日誌文件數據。這些文件按小時計算,並按日期和源主機名進行分區。Hive「添加分區」併發性
目前我們正在使用每小時觸發幾次的簡單python腳本導入文件。該腳本根據需要在HDFS上創建子文件夾,從臨時本地存儲中複製新文件並將任何新分區添加到Hive。
今天,使用「ALTER TABLE ... ADD PARTITION ...」創建新分區。但是,如果另一個Hive查詢在表上運行,它將被鎖定,這意味着add partition命令將失敗(如果查詢運行足夠長的時間),因爲它需要排它鎖。
這種方法的替代方法是使用「MSCK REPAIR TABLE」,由於某些原因,而不是似乎獲得了桌子上的任何鎖。但是,我得到的印象是不建議在生產環境中使用維修表格。
- 在併發環境中以編程方式添加Hive分區的最佳做法是什麼?
- 使用MSCK REPAIR TABLE有哪些風險或缺點?
- 有兩個分區添加命令看似不一致的鎖定行爲的解釋嗎?即它們對運行查詢有不同的影響嗎?
謝謝!非常有用的信息。 不幸的是,我們沒有選擇先創建分區,因爲它們事先並不知道。但是從Google網上論壇的討論中,似乎離開Hive CLI可能會有所幫助。 – knutn