Hivesql優化 sparksql優化梳理

2021-10-05 22:49:57 字數 747 閱讀 5889

目錄

hive sql 優化方案梳理總結 說明

簡單最合理

對應表的hdfs檔案大小和數量問題

資料傾斜問題

where在on前面後面的問題

數倉邏輯層面的優化

group by代替count(distinct)

盡量不要使用in這種函式

case when函式when越多算的越慢

這個是我個人的習慣,能實現的情況下最簡單的就是最好的,邏輯sql不要寫的過複雜,越簡單越好

很多在寫sql的時候不關心表對應的hdfs路徑下小檔案數量的問題,其實要寫高效的sql必須要關注檔案大小和數量情況

解決方案

檔案過大

解決方案

請參考此鏈結

在很多時候好多同學喜歡直接用count(distinct c1)用於資料統計,但是這個的計算效率遠遠不如group by,尤其是在資料量很大的時候,資料量小的時候就無所謂了,count(distinct c1)這個函式一般只啟用乙個reduce task 去計算,效率很低,但是group by不會,在公司好幾次有些人使用count(distinct c1)算很久算不出想要的結果值,還進行了投訴,但是我們告訴他們換成 select c1, count(c1) as cnt from tab group by c1 之後很快得出了結果

表中的檔案都需要走一遍when流程,when越多效率就越低,而且在reduce階段最好做一遍合併壓縮操作,否則可能會產生很多檔案

hive sql優化整理

hive sql優化方法引數一些整理,方便快速查詢使用 1.map數量與reduce數量的控制 輸入檔案大小指實際檔案大小,與檔案格式textfile,orc等無關,壓縮的檔案格式會小很多設定引數要適當調整 map數量控制 set hive.input.format org.apache.hadoo...

hivesql 效率優化

1.group by 資料傾斜問題 hive是根據group by 的key進行資料分發的,某個key相同的資料太多的會被分發到乙個reducer上,key的資料分布不均勻會導致大量資料被shuffle到某個或者某些reducer上,出現嚴重的資料傾斜,使得資料計算變慢 配置任務引數 set hiv...

HIVESQL優化方法

這是我2年前總結的東西,當時是用華為paas平台的大資料集群的時候,因為我們公司分配的資源較少,自己總結的部分優化方法,如有不足,望大家指正 1 set hive.map.aggr true false 當使用聚合函式時會在ma階段進行聚合 效率更高同時消耗更多資源 2 當join表的時候有乙個大表...