導航:首頁 > 數據處理 > 如何推送數據到有分區的表

如何推送數據到有分區的表

發布時間:2023-07-26 10:09:24

㈠ Hive:分區表表結構和數據復制

摘要: Hive , Shell

Hive復製表包括兩種

對於非分區表如果要完全復制一張表到另一張表,直接使用CREATE TABLE ... AS語句即可,比如以下復制一個表的兩個欄位以及欄位的值到另一個表

對於分區表如果使用CREATE TABLE ... AS語句則分區失效,但是可以執行不報錯,且欄位和數據都能完全復制

以上有一張分區表,以dt欄位作為桐瞎分區,使用CREATE TABLE ... AS進行全表復制

檢查表結構和表數據量都沒有問題

檢查分區,報錯此表不是分區表,is not a partitioned table,但是在表結構中確實存在本來的分區欄位dt,此時dt欄位的分區功能失效,但是數據保留住了

分區表的全稱復制且帶有分區的操作方法需要使用 LIKE 語句復制到分區信息,具體步驟如下

第一步復製得到一張空表,具有原表的表源態結構和分區信息

下一步使用hdfs命令操作將原表在hdfs的存儲路徑復制到新表的路徑, 一張表的存儲路徑是一個目錄,該目錄下還存在子目錄,每一個子目錄代表一個分區,在分區目錄下就是數據文件,數據文件是part開頭格式,由Hive的分桶策略將同一分區下的數據進行劃分

復制語句採用 * 通配符將原表目錄下所有文件復制到新表路徑下,查看新表的hdfs路徑下數據文件

此時新表雖然對應數倉目錄下有數據文件,但是在Hive客戶端還是查不到數據為空表, 因為一個個數據分區不存在在新表的元數據中,數據是以分區目錄為單位聚合的,新表目前查不到一雹輪源個分區則自然查不到數據

下一步修復表的分區元數據,使用 MSCK REPAIR TABLE 命令

由輸出的執行過程可見MSCK REPAIR TABLE命令先檢查了表的分區信息是否存在在元數據,然後對不存在的分區信息進行修復,修復後該表即可正常使用

MSCK REPAIR TABLE 的作用是 只需要只用這一個命令就可以 快速 , 自動化 地添加(修復)全部分區 ,在Hive中如果先建分區表,並且以數據拷貝到對應HDFS目錄這種方式作為初始化,需要手動添加分區才能使用,如果分區過多,使用 ALTER TABLE ADD PARTITION 極為不變,下面做一下測試看ALTER TABLE ADD PARTITION是否也能完成分區表的完全復制

下一步採用手動添加1個分區dt=�'

驗證了手動分區能夠完成, MSCK REPAIR TABLE只是自動化的掃描一遍數倉目錄下的分區信息(dt=�' 到 dt=�') ,如果編寫一個Shell腳本也能實現如下

運行這個Shell腳本後能達到同樣的效果,但是這個腳本執行了15分鍾,需要頻繁啟動和關閉Hive進程

閱讀全文

與如何推送數據到有分區的表相關的資料

熱點內容
塗料產品檢測哪些 瀏覽:287
亞馬遜上傳的產品怎麼清理 瀏覽:42
微分子技術用到護膚品中會怎麼樣 瀏覽:68
如何找到小程序推送消息 瀏覽:298
美股沒有盤前交易說明什麼 瀏覽:64
地圖產品怎麼傳遞 瀏覽:721
棗庄智慧經營代理哪裡有店 瀏覽:766
製作微信小程序時攝氏度如何表達 瀏覽:891
數字程序卡哪裡有賣 瀏覽:121
流沙有哪些市場 瀏覽:623
大數據把多少小企業搞死 瀏覽:100
apachedruid是什麼資料庫 瀏覽:588
手機程序包換了怎麼辦 瀏覽:648
如何清除王者榮耀微信數據 瀏覽:503
網路扶貧產品有哪些 瀏覽:383
上技術學院需要准備什麼 瀏覽:587
數據類型哪些是字元型 瀏覽:33
售賣偽造3c的產品怎麼判 瀏覽:11
哪個手機上的小程序能看電視劇 瀏覽:250
技術領先者是什麼 瀏覽:477