<b>在上一講的基礎上,我們來做來一個實際的例子來展示如何在實操中進行高效的hive查詢作業。</b>
我們建立一張外部表是為了初始化或者加載mapreduce或者pig作業産生的中繼資料,然後我們自己建立一張優化的表。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLjFmY1UWYihzY5UzMkR2N0MWM3YGNwIGNjZTN4gjYyMzY4ETZ0UjZj9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
以下是兩個關于動态分區的參數:
所有節點的動态分區的最大數以及每個節點的動态分區的最大數
clustered 和sorted 使用都是同一個字段,它就是連接配接的時候需要使用的字段。
buckets也出現了,前面一直不了解的概念,現在出現了還分了24個。
語句中使用了前面教的自動分區的語句,按照年月自動分區。
hadoop fs-setrep-r –w 5 /apps/hive/warehouse/fact_pos
上面的指令當中是個hdfs中存數的fact_pos表增加備份,因為hdfs的資料是存得很分散的,增加備份因為會使得節點上的資料增多,然後查詢的時候,hive
從本地直接就可以擷取到的資料的幾率提高,增快查詢速度。
當然考慮到空間的問題,可以減少一下備份的數量。
上述流程我們也可以把它放到oozie中自動執行。
。。。又一個熟悉的詞出現了。
在hdfs-site.xml或者ambari settings for hdfs, 設定完要重新開機。
開啟了這個東東有什麼作用呢?當資料塊在本地的時候,它可以不需要開啟一個端口來讀,可以直接通路,就像圖中的閃電那樣。
查詢之前先對查詢設定相應的運作參數。