Hive 調優 分割槽裁剪 列裁剪

2021-10-01 03:14:25 字數 1436 閱讀 9038

在select中,只拿需要的列,如果有,盡量使用分割槽過濾,少用select *。

在分割槽剪裁中,當使用外關聯時,如果將副表的過濾條件寫在where後面,那麼就會先全表關聯,之後再過濾,比如:

create

table ori(id bigint

,time

bigint

, uid string, keyword string, url_rank int

, click_num int

, click_url string)

row format delimited fields

terminated

by'\t'

;

create

table bigtable(id bigint

,time

bigint

, uid string, keyword string, url_rank int

, click_num int

, click_url string)

row format delimited fields

terminated

by'\t'

;

load

data

local inpath '/home/admin/softwares/data/加遞增id的原始資料/ori'

into

table ori;

load

data

local inpath '/home/admin/softwares/data/100萬條大表資料(id除以10取整)/bigtable'

into

table bigtable;

select a.id

from bigtable a

left

join ori b on a.id = b.id

where b.id <=

10;

正確的寫法是寫在on後面:先where再關聯

select a.id

from ori a

left

join bigtable b on

(b.id <=

10and a.id = b.id)

;

或者直接寫成子查詢:

select a.id

from bigtable a

right

join

(select id

from ori

where id <=

10) b on a.id = b.id;

Hive 調優 動態分割槽調整

關係型資料庫中,對分割槽表insert資料時候,資料庫自動會根據分割槽欄位的值,將資料插入到相應的分割槽中。hive中也提供了類似的機制,即動態分割槽 dynamic partition 只不過,使用hive的動態分割槽,需要進行相應的配置。以第乙個表的分割槽規則,來對應第二個表的分割槽規則,將第乙...

hive效能調優

原文 limit 限制調整 因為使用 limit 語句時候,是先執行整個查詢語句,然後再返回部分結果的 set hive.limit.optimize.enable true set hive.limit.row.max.size 10000 set hive.limit.optimize.limi...

Hive效能調優

軟體環境 hive1.2.1 hadoop2.6.4 直接使用hive cli模式執行 1.設定執行引擎 set hive.execution.engine mr set hive.execution.engine spark 如果設定執行引擎為mr,那麼就會呼叫hadoop的maprecude來執...