讀時模式和寫時模式
Hive使用Hadoop來執行查詢,其查詢執行速度是很慢的,但是使用load data向Hive中導入數據卻非常快,這是因為Hive採取的是讀時模式(Schema On Read)。
讀時模式:讀取數據的時候,對數據的類型、格式做檢查;
寫時模式:寫入數據的時候,對數據的類型、格式等規範做檢查;
將數據存到Hive的數據表時,Hive採用的是“讀時模式”,意思是針對寫操作不會做任何校驗,只是簡單的將文件複製到Hive的表對應的HDFS目錄。跟“讀時模式”相對應的是“寫時模式”,RDBMS一般採用“寫時模式”,在將數據寫入到數據表的時候會檢查每一條記錄是否合法,如果檢查不通過會直接返回失敗信息。
由於向Hive中存入數據的只是簡單的文件複製和粘貼,所以導入數據速度非常的快。當讀取、查詢的時候,才會根據表模式來解釋數據,這個時候如果遇到了不符合模式的數據,Hive會直接將數據解析成NULL。
讀時模式的好處
Hive採用讀時模式帶來了以下幾個好處:
導入數據
hive> load data local inpath '/root/usr.data' into table usr;