隨著MaxCompute的深入使用,會出現對MaxCompute表執行多次重複查詢的情況,並且不同使用者之間互不知曉對方也在採用相同的計算邏輯。為了提高使用者的計算效率、減少重複計算,同時加速使用者計算,MaxCompute提供自動物化視圖(AutoMV)能力,根據使用者作業查詢習慣和效能自動建立物化視圖。
功能介紹
在資料倉儲領域,物化視圖是最佳化重複計算的重要手段。假設使用者的業務情境中存在大量的查詢語句,這些查詢語句共用一些高頻的、耗時計算(如JOIN/AGGREGATE)的公用子查詢,利用物化視圖,可以將這些公用子查詢的計算結果儲存於物化視圖表中。後續在需要使用這些公用子查詢的場合,無需再次進行計算,只需讀取物化視圖表即可,從而達到計算加速和節省計算資源的目的。更多關於物化視圖的介紹,請參見物化視圖操作。
MaxCompute針對使用者在物化視圖的實踐過程中可能出現的分析難、建立難和營運複雜等問題,推出了自動物化視圖(AutoMV)功能,可以有效降低物化視圖的建立難度,從而提升使用者的使用體驗。
在MaxCompute中啟用自動物化視圖(AutoMV)功能後,系統將自動執行以下操作:
持續監控查詢:在專案層級持續監控最近啟動並執行查詢,並識別適合作為物化視圖以提高效能的公用子查詢。
自動建立物化視圖:周期性地根據第一步識別的結果自動建立這些物化視圖。
智能查詢改寫:通過物化視圖的查詢改寫功能自動改寫作業的查詢語句,使其直接讀取自動建立的物化視圖表。
自適應儲存資源管理:AutoMV的自適應儲存資源管理機制及自動清理機制,能夠在確保不對使用者專案空間所佔儲存造成顯著增長的前提下,有效管理AutoMV所佔用的儲存資源。
使用限制
支援地區:華東1(杭州)、華東2(上海)、華北2(北京)、華北3(張家口)、華南1(深圳)、西南1(成都)。
建立AutoMV的前提是公用子查詢包含如下關係代數運算元之一:Project(投影)、Filter(過濾)、JOIN(串連)、Aggregate(彙總)。
AutoMV不支援跨專案使用。假設有一個物化視圖可用於兩個MaxCompute專案(專案A和專案B),由於AutoMV的範圍僅限於單個專案內,因此MaxCompute會在A和B中同時建立兩個資料完全一致的物化視圖。
AutoMV僅支援精確匹配。為避免作業命中查詢範圍更大的物化視圖而導致效能變差,AutoMV在寫入和使用物化視圖時,只會命中資料完全等價的物化視圖。
管理AutoMV開關並設定儲存資源上限
您可通過MaxCompute控制台或SQL命令管理AutoMV開關,並設定AutoMV可用儲存上限。手動設定AutoMV可使用的儲存資源上限之後,一旦超出該上限,AutoMV將禁止繼續向已建立的物化視圖中寫入資料。
僅當佔用儲存量不超過系統設定的可用儲存閾值(即儲存資源上限)時,才會產生物化視圖。
通過控制台設定
您可通過以下任意一種方式在MaxCompute管理主控台中管理AutoMV開關,並設定儲存資源上限。
建立專案時設定
建立專案時,您可在新增專案對話方塊中選擇是否啟用自動物化視圖(AutoMV),並設定autoMV可儲存上限(GB),AutoMV預設為啟用狀態。
在專案管理版面設定
進入MaxCompute專案管理頁面,單擊目標專案操作列的管理,在參數配置頁簽的智能最佳化開關地區單擊編輯,進行設定。
在智能物化視圖版面設定
進入頁面,並在物化視圖頁面選擇自動物化視圖(AutoMV)頁簽。
單擊右側的AutoMV開關管理,手動開啟或關閉AutoMV,並設定可用儲存上限(GB)。
通過命令設定
管理AutoMV開關
您可在專案層級執行
SETPROJECT odps.sql.enable.auto.mv=true/false;命令進行AutoMV開關管理,其中true表示開啟AutoMV,false表示關閉。設定儲存資源上限
您可在專案層級執行如下命令設定儲存資源上限,該專案將僅為AutoMV分配1024 GB的儲存空間,用於儲存物化視圖。
SETPROJECT odps.sql.auto.mv.quota.gb=1024; 使用AutoMV功能前,除了開啟AutoMV開關,還需確認您的專案已開啟物化視圖查詢改寫功能,即確保您的專案已配置
SETPROJECT odps.sql.materialized.view.enable.auto.rewriting=true;參數。通常該項配置由平台預設開啟,您無需特別關心。通過控制台或SQL命令設定AutoMV可用儲存上限時,取值範圍為介於
[0, 2147483647)區間內的整數。如果您未按上述策略手動設定AutoMV的最大儲存上限,系統將預設限制由AutoMV功能建立的所有物化視圖所佔用的儲存資源總量,不得超過專案已使用儲存資源總量的2%,因此AutoMV不會對您的儲存資源造成明顯的增長。
查看AutoMV收益及佔用儲存
您可在AutoMV頁簽查看使用自動物化視圖功能後,所節省的計算時間長度、CU時、計算量、計算費用等收益,及儲存佔用情況。
通常情況下,如果您在當天21:00前啟用AutoMV,後台將於第二天建立並應用AutoMV,您可在第三天查看收益及佔用儲存的統計值;如果您在當天21:00後啟用,後台將於第三天建立並應用AutoMV,您可在第四天查看收益及佔用儲存的統計值。
登入MaxCompute管理主控台,在左上方選擇地區。
在左側導覽列選擇。
在物化視圖頁面的自動物化視圖(AutoMV)頁簽,選擇目標MaxCompute專案(不選,則表示所有專案)和收益統計區間,可以查看已開啟AutoMV的專案收益、佔用儲存,以及具體的AutoMV列表。
指標參數:
指標
說明
叫用次數
AutoMV在收益統計區間內,被調用的次數。
節省計算時間長度
所有命中所選專案AutoMV的作業在收益統計區間內的計算時間長度相較於建立AutoMV前計算時間長度的節省值。
節省CU時
所有命中所選專案AutoMV的作業在收益統計區間內的CU時消耗相較於建立AutoMV前CU時消耗的節省值。
節省計算量
所有命中所選專案AutoMV的作業在收益統計區間內的計算量(掃描量*複雜度)相較於建立AutoMV前計算量(掃描量*複雜度)的節省值。僅統計使用隨用隨付計算資源啟動並執行作業。
節省計算費用(目錄價)
所有命中所選專案AutoMV的作業節省計算量 * 0.0438 USD/GB(隨用隨付標準版SQL計算單價)。
說明沙特(利雅得)地區由夥伴營運,單價為0.05256 USD/GB。
儲存佔用
AutoMV佔用的儲存大小。
AutoMV列表參數:
列名稱
說明
物化視圖名稱
AutoMV的名稱。
歸屬專案
AutoMV所在的專案。
叫用次數
AutoMV在收益區間內被調用的次數。
節省計算時間長度
命中該AutoMV的作業在收益統計區間內的計算時間長度相較於建立AutoMV前計算時間長度的節省值。
節省CU時
命中該AutoMV的作業在收益統計區間內的CU時消耗相較於建立AutoMV前CU時消耗的節省值。
節省計算量
命中該AutoMV的作業在收益統計區間內的計算量(掃描量*複雜度)相較於建立AutoMV前計算量(掃描量*複雜度)的節省值。僅統計使用隨用隨付計算資源啟動並執行作業。
儲存佔用
AutoMV佔用的儲存大小。
操作
可單擊查看詳情,查看AutoMV的基本資料和代碼詳情。
基本資料。
建立時間:AutoMV的建立時間。
表結構更新時間:AutoMV的表結構更新時間。
儲存大小:AutoMV佔用的儲存大小。
代碼詳情:定義AutoMV的SQL指令碼。您可以查看、複製或下載SQL指令碼。
計費說明
專案開啟AutoMV後,使用者只需要對系統自動建立的物化視圖儲存按標準儲存單價支付費用即可,除此之外,無附加服務費用。標準儲存價格詳情,請參見儲存費用。
僅當佔用儲存量不超過系統設定的可用儲存閾值(即儲存資源上限)時,才會產生物化視圖。儲存資源上限設定方法,請參見管理AutoMV開關並設定儲存資源上限。