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

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

發布時間: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進程

閱讀全文

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

熱點內容
數據收集渠道是干什麼的 瀏覽:629
蘋果如何操作關閉後台程序 瀏覽:58
titan幣在哪個交易所 瀏覽:782
123456是什麼數據類型 瀏覽:506
色素斑用什麼牌子的產品好 瀏覽:369
硬碟怎麼互相拷貝數據 瀏覽:304
上海新房在哪個小程序看 瀏覽:244
產品設計是什麼思維導圖 瀏覽:721
達州活牛市場在哪裡 瀏覽:815
如何創新環保產品論文 瀏覽:486
市場調查什麼專業要學 瀏覽:258
產品引用的素材有哪些 瀏覽:846
如何改正微信信息 瀏覽:957
公積金貸款怎麼代理 瀏覽:935
蘇州安泰空氣技術有限公司在哪裡 瀏覽:676
電腦如何安裝列印驅動程序 瀏覽:510
湖北代理白酒如何代理 瀏覽:158
小米手機信息刪掉怎麼恢復 瀏覽:713
抖音極速版如何使用小程序 瀏覽:605
count是什麼數據 瀏覽:727