資料倉儲hive調優經驗總結

2021-10-09 14:09:42 字數 1088 閱讀 7306

hive是資料倉儲,主要涉及到對海量資料的儲存和讀取,以及資料的處理。

資料的儲存和讀取基本是基於hadoop的hdfs,所以要進行的優化就是提高資料的傳輸速度,可以通過配置引數(map和reduce階段),優化hive的效能(如:在map階段設定task的數量

mapred.min.split.size:通過調整max可以起到調整map數的作用,減小max可以增加map數,增大max可以減少map數。)。

資料的處理就是hsql,hsql本質上是轉換為mapreduce來處理資料,對於效能的優化,就是一些較為複雜的hsql,實現功能並提高執行效率。(比如大表和小表進行jion,將小表寫在前面,通過先將小表讀入記憶體中,順序掃瞄大表,就可以在map端進行join避免了shuffle

問題擴充套件

資料傾斜問題也會影響到我們對於資料處理的時效性,所以因為一些人員開發時語句編寫不當或者一些業務問題都可能對我們產生影響;

在實際的hive sql開發的過程中,hive sql 效能的問題上實際上只有一小部分和資料傾斜有關,很多時候,hive sql執行慢是由於開發人員對於使用的資料了解不夠以及一些不良的習慣引起的。
開發人員需要確定以下幾點:

1、 需要計算的指標真的需要從資料倉儲公共明細層來自行彙總嗎? 是不是資料公共層團隊開發公共彙總層已經可以滿足自己的需求?對應大眾的、kpi相關的指標等通常設計良好的資料倉儲公共層肯定已經包含了,直接使用即可。

2、真的需要掃瞄那麼多分割槽嗎,比如對於銷售事務明細表來說,掃瞄一年的分割槽和掃瞄一周的分割槽所帶來的計算、io開銷完全是兩個數量級,所耗費時間肯定是不同的,所以開發人員要仔細考慮因為需求,盡量不浪費計算和儲存資源。

3、盡量不要使用select * from your_table這樣的方式,用到哪些列就指定哪些列,另外where條件中盡量新增過濾條件,以去掉無關的行,從而減少整個mapreduce任務寵需要處理、分發的資料量。

4、輸入檔案不要是大量的小檔案,hive預設的input split是128mb(可配置),小檔案可先合併成大檔案。

**:新增鏈結描述

資料倉儲 Hive的調優

hive的調優 第乙個調優 fetch抓取,能夠避免使用mr的,就盡量不要用mr,因為mr太慢了 set hive.fetch.task.conversion more 表示我們的全域性查詢,字段查詢,limit查詢都不走mr 這個屬性配置有三個取值 more minimal none 如果配置成n...

資料庫MySQL調優實戰經驗總結

mysql 資料庫的使用是非常的廣泛,穩定性和安全性也非常好,經歷了無數大小公司的驗證。僅能夠安裝使用是遠遠不夠的,mysql 在使用中需要進行不斷的調整引數或優化設定,才能夠發揮 mysql 的最大作用。下邊的內容是我在工作中經驗的總結,也作為自己的工作筆記,如果能夠幫助到有需要的同志就更好了。m...

資料庫MySQL調優實戰經驗總結

mysql 資料庫的使用是非常的廣泛,穩定性和安全性也非常好,經歷了無數大小公司的驗證。僅能夠安裝使用是遠遠不夠的,mysql 在使用中需要進行不斷的調整引數或優化設定,才能夠發揮 mysql 的最大作用。下邊的內容是我在工作中經驗的總結,也作為自己的工作筆記,如果能夠幫助到有需要的同志就更好了。m...