Hive sql和Presto sql的一些對比

2022-07-13 13:51:11 字數 610 閱讀 9283

最近由於工作上和生活上的一些事兒好久沒來了,但是寫部落格的習慣還是得堅持,新的一年需要更加努力,困知勉行,終身學習,每天都保持空杯心態.廢話不說,寫一些最近使用到的presto sql和hive sql的體會和對比.

注意這裡presto中json_extract_scalar返回值是乙個string型別,其還有乙個函式json_extract是直接返回乙個json串,所以使用的時候你得自己知道取的到底是乙個什麼型別的值.

簡單的講就是將scores欄位中以逗號隔開的分數列比如

80,90,99,80

這種單列的值轉換成和student列一對多的行的值對映.

用過rollup的都知道,這是從右向左的遞減的多級統計的聚合,等價於(如下為presto寫法)

select origin_state, origin_zip, sum(package_weight) from shipping group by grouping sets ((origin_state, origin_zip), (origin_state), ());

其他一些語法有細微的差別可以慢慢了解,當然hive和presto底層架構不一樣導致presto比hive運算速度要快很多,再加上開源的alluxio快取更加如虎添翼了.

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...

hive sql 行列轉換

對一張大表的每一行,後面加多種label值 其實就是笛卡爾積,舉例 select from dev.dev jiadian user yuge temp cross join select 0 as label union all select 1 as label union all select...