您好,登錄后才能下訂單哦!
這篇文章主要講解了“Hive任務執行慢但是導入數據非常的快是為什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Hive任務執行慢但是導入數據非常的快是為什么”吧!
讀時模式和寫時模式
Hive使用Hadoop來執行查詢,其查詢執行速度是很慢的,但是使用load data向Hive中導入數據卻非常快,這是因為Hive采取的是讀時模式(Schema On Read)。
讀時模式:讀取數據的時候,對數據的類型、格式做檢查;
寫時模式:寫入數據的時候,對數據的類型、格式等規范做檢查;
將數據存到Hive的數據表時,Hive采用的是“讀時模式”,意思是針對寫操作不會做任何校驗,只是簡單的將文件復制到Hive的表對應的HDFS目錄。跟“讀時模式”相對應的是“寫時模式”,RDBMS一般采用“寫時模式”,在將數據寫入到數據表的時候會檢查每一條記錄是否合法,如果檢查不通過會直接返回失敗信息。
由于向Hive中存入數據的只是簡單的文件復制和粘貼,所以導入數據速度非常的快。當讀取、查詢的時候,才會根據表模式來解釋數據,這個時候如果遇到了不符合模式的數據,Hive會直接將數據解析成NULL。
讀時模式的好處
Hive采用讀時模式帶來了以下幾個好處:
向Hive表中新增數據非常的快,通常情況下對于外來數據,采用的方法是直接用Hadoop命令將文件上傳到一個HDFS目錄,Hive直接讀這個目錄;
一份數據可以被解析成多種模式,存儲在Hive表中的數據跟Hive本身沒有關系,數據也可以被其他工具比如Pig來處理;
導入數據
hive> load data local inpath '/root/usr.data' into table usr;
感謝各位的閱讀,以上就是“Hive任務執行慢但是導入數據非常的快是為什么”的內容了,經過本文的學習后,相信大家對Hive任務執行慢但是導入數據非常的快是為什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。