MAPJOIN HINT 阿里大資料用法

2021-10-06 03:43:10 字數 824 閱讀 6720

當乙個大表和乙個或多個小表join時,您可以在select語句中顯式指定mapjoin以提公升查詢效能。

通常情況下,join操作在reduce階段執行表連線。整個join過程包含map、shuffle、reduce三個階段。

mapjoin在map階段執行表連線,而非等到reduce階段才執行表連線。這樣就節省了大量資料傳輸的時間以及系統資源,從而起到了優化作業的作用。

mapjoin在map階段會將指定表的資料全部載入在記憶體中。因此指定的表僅能為小表,且表被載入到記憶體後占用的總記憶體不得超過640mb。

在大表和乙個或多個小表join的場景下,mapjoin會將您指定的小表全部載入到執行join操作的程式的記憶體中,在map階段完成表連線從而加快join的執行速度。

您需要在select語句中使用hint提示/*+ mapjoin(table) */才會執行mapjoin。

假設表sale_detail為大表,別名為b,表shop為小表,別名為a。

maxcompute sql不支援在普通join的on條件中使用不等值表示式、or邏輯等複雜的join條件,但是在mapjoin中可以進行上述操作。

select /*+ mapjoin(a) */

a.total_price,

b.total_price

from shop a join sale_detail b

on a.total_price < b.total_price or a.total_price + b.total_price < 500;

mapjoin多個小表示例請參見如何用mapjoin快取多張小表?。

阿里雲 vs Azure 大資料

本文比較了azure和阿里雲提供的資料庫服務,以幫助專業人士了解兩者的差異和共同點。無論您計畫從azure遷移至阿里雲,或是選擇同時使用azure 阿里雲的多雲模式,本文都將幫助您了解阿里雲的資料庫服務。阿里雲將資料庫服務分為如下表中的服務型別,每種型別提供了各具特點的產品,本文將從以下列表中重點介...

Lateral View 阿里大資料用法

lateral view和表生成函式 例如split explode等函式 結合使用,它能夠將一行資料拆成多行資料,並對拆分後的資料進行聚合。語法定義如下。lateralview lateral view outer udtf expression tablealias as columnalias...

阿里雲大資料元件選型

大資料使用場景e mapreduce 產品當前主要滿足企業的以下大資料場景 批處理場景該場景對磁碟吞吐和網路吞吐要求高,處理的資料量也大,但對資料處理的實時性要求不高,您可選用 mapreduce pig spark 元件。該場景對記憶體要求不高,選型時您需要重點關注大作業對 cpu 和記憶體的需求...