MaxCompute 物化視圖智能推薦最佳實踐

什麼是物化視圖

MaxCompute物化視圖是一種預先計算和存儲結果數據的數據對象,也可以稱之爲“實體化視圖”。物化視圖可以作爲一張虛擬表存在於MaxCompute項目中,它的內容是一個或多個表的聚合,過濾以及Join組合計算結果。物化視圖可以大幅度減少查詢處理時間以及節省作業計算資源,基於MaxCompute優化器強大的自動查詢改寫能力,當作業可以複用物化視圖結果時,優化器自動把一些複雜的操作替換成讀取物化視圖操作,從而提升作業執行速度、節省作業計算資源。

什麼是物化視圖智能推薦

物化視圖的使用,不但需要對物化視圖的工作原理比較瞭解,同時需要了解業務數據行爲與業務數據的使用場景,給普通用戶使用物化視圖帶來一定困難。

MaxCompute 物化視圖智能推薦實現了用戶無感知的流程化使用物化視圖能力。用戶開啓物化視圖智能推薦後,MaxCompute 可以爲用戶自動分析業務數據使用場景,自動推薦物化視圖,並且可以可視化展現物化視圖的使用效果。爲物化視圖使用大大降低了門檻,同時也帶來更多的物化視圖使用場景。

物化視圖智能推薦的特點

  • 簡單易用,用戶不需要了解物化視圖各個底層工作細節,只需選擇自己的Project開啓自動智能分析。
  • 智能,MaxCompute自動對用戶歷史作業進行分析,自動識別週期性作業,並智能提取作業集合中的公共計算邏輯作爲物化視圖計算邏輯,並最終轉換成用戶友好的SQL文本形式,按照推薦程度排序展示給用戶。
  • 便於管理,MaxCompute控制檯提供一站式的功能開通、物化視圖管理以及物化視圖使用效果展示。

物化視圖智能推薦的使用場景

數據治理

隨着企業業務發展,公司的業務數據會越來越多,各部門對數據都存在各種數據分析需求,在日常使用過程中,各個部門對數據的使用會存在一定的交叉使用,難免會有大量的相同邏輯的重複計算。

日常用戶或者大數據平臺管理人員很難發現重複計算,因爲重複計算部分可能只是整個計算邏輯中一部分。在發現有重複計算時想修改也比較困難,如果重新抽象一個重複計算的表,下游的依賴作業都需要更改,然後測試上線。會帶來額外的工作量,從而導致數據治理很難推動。

使用物化視圖智能推薦功能後,MaxCompute會自動分析Project中存在哪些公共的計算邏輯,並且推薦出來,讓用戶去創建物化視圖,有了物化視圖後,通過強大的優化器改寫能力,能夠讓作業自動應用上物化視圖的計算結果,不需要用戶修改原來的邏輯。

示例,在沒有物化視圖,如下圖,Tab4跟Tab5的計算中存在棱形跟圓形部分邏輯是重複計算的,在下圖中計算了兩遍。

創建物化視圖MV1後,菱形跟圓形部分邏輯只計算了一遍,可以節省計算資源的同時提高計算速度。

智能數據建模

傳統大數據處理,第一步就是既懂技術又懂業務的數據分析專家搭建數據倉庫,對數據倉庫進行分層,正常模型都分貼源層,明細層,彙總層,應用層等;傳統建模方式有以下弊端:

1)模型建的好壞,直接影響到計算的有效性,嚴重依賴建模的專家;

2)同時隨着業務發展,數據越來越多後,難免有模型建的不是很合適的情況,如果再改模型對整個現有任務都有影響;

3)資源浪費,部分模型建好後,但是使用的人很少或者沒有使用,導致整個模型白白浪費計算資源和存儲資源。

有了物化視圖智能推薦後,用戶不需要依賴專家來預先建模。可以做到智能的自動化建模。當用戶使用數據後,後端自動分析,分析出重複計算邏輯,MaxCompute自動推薦創建物化視圖,實現真正的靈活,快捷的自動化建模。讓用戶不用擔心數據存儲情況,計算資源使用效率等問題;用戶可以把更多精力放在業務發展上。特別對中小型公司來說,不需要額外要招聘數據建模同學,全部交給MaxCompute物化視圖智能推薦即可。

數據報表/看板

物化視圖智能推薦也可以爲用戶的BI智能報表/看板提供加速能力。MaxCompute會爲用戶自動分析重複刷新的數據,推薦創建物化視圖,有了物化視圖後可以預先計算好報表/看板需要的數據,在報表/看板需要用的時候直接會自動改寫路由去查物化視圖,可以大大降低報表/看板的響應時間。

如何使用物化視圖智能推薦

物化視圖智能推薦使用非常簡單,只需以下幾個步驟:

1.登錄MaxCompute控制檯,點擊左邊菜單“物化視圖”;

2.選擇Tab頁“設置”,開啓智能分析,並且添加需要分析的項目名稱;

3.T+1天后,查看Tab頁“物化視圖推薦”,查看系統根據用戶使用行爲,推薦出來的公共子查詢;

4.選擇對應的子查詢創建物化視圖;

5.T+1天后,查看Tab頁“物化視圖管理”,可以看到目前哪些查詢計算調用了該物化視圖以及調用物化視圖前後效果對比。

物化視圖智能推薦示例

阿里集團數據中臺團隊負責建設整個阿里的數倉“公共層”,試圖將重複計算的邏輯進行收斂,讓多個下游業務訪問同一個結果表,從而達到節省計算和存儲的目的。隨着數據量和業務複雜度的幾何增長,傳統的“公共層”已經很難達到原本設想的狀態,主要原因有:

  • 找數難
  • 邏輯存在相似性但是結果表不完全可用
  • 人工發現公共邏輯難度大

MaxCompute推出的物化視圖智能推薦功能,恰好能很好的解決上述問題。數據中臺團隊通過將MaxCompute智能推薦結果轉變爲物化視圖,大大降低了下游作業之間的重複計算,節省了大量計算資源。

一期物化視圖智能推薦功能覆蓋了4個BU共20個project,命中物化視圖的作業,其平均計算資源節省率爲14%。後續我們會有更加詳細的實際使用案例來展開介紹。

物化視圖智能推薦使用說明

物化視圖並不能解決所有問題,在絕大部分情況下,總體上看都是可以爲用戶帶來正向收益,包括可以減少計算資源,提高計算速度,並降低計算成本。但是針對某個查詢計算,在小概率下會給用戶帶來負收益,用戶需要關注以下幾點:

1.公共子查詢被物化成物化視圖後的數據是否發生數據膨脹,如果發生幾倍或者更高的膨脹時,不建議使用物化視圖。

2.使用後付費的用戶,需要注意目前物化視圖節省的是計算資源和計算複雜度,但並不一定會減少數據掃描量,因爲在數據物化過程中如果發生數據膨脹後,可能掃描量會增加。

作者 夏俊偉 阿里雲高級產品專家 / 鄭君正 阿里雲高級技術專家

原文鏈接

本文爲阿里雲原創內容,未經允許不得轉載。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章