不多說,直接上干貨!
Hive與Impala都是構建在Hadoop之上的數據查詢工具,那么在實際的應用中,它們是如何加載和存儲數據的呢?
Hive和Impala存儲和加載表,和所有的關系型數據庫一樣,有自己的數據管理結構,從它的Server到Database再到表和視圖。
在其他的數據庫中,表都是以自己特定的文件格式來存儲的,比如Oracle有自己的存儲格式,而對Hive而言,一個表就是包含一個或多個文件的HDFS目錄,這個文件是屬於表下面的內容,默認存儲路徑:/user/hive/warehouse/<table_name>,支持多種存儲格式。
以上就是數據的存儲,那么每一個表、每一個結構都有自己的列或者類型定義的信息,這些信息該如何去保存呢?它們存儲在Metastore里,而所有的數據都存儲在HDFS之上,所以我們想要獲得表結構信息,就需要知道hive的元數據中每個表的含義和結構。在hive中,有簡單的命令可以大概的查看表的結構信息:describe formatted tableName; hive metastore表結構如下:
因為Hive和Impala使用相同的數據,表在HDFS,元數據在Metastore,所以以上的存儲及結構介紹同樣適用於Impala。
數據加載及存儲示例:
在這里呢我們必須要區分兩個概念:數據和元數據。數據指的是你存儲和處理的信息,比如賬單記錄、傳感器讀數和服務日志等。而元數據用來描述數據的形態,比如字段名和順序等。
Hive與Impala都是構建在Hadoop之上的數據查詢工具,那么在實際的應用中,它們是如何加載和存儲數據的呢?
Hive和Impala存儲和加載表,和所有的關系型數據庫一樣,有自己的數據管理結構,從它的Server到Database再到表和視圖。