Azure Analysis Service 介紹
概述
也許你知道Excel Power Pivot,也許你已經開始使用Power BI,但你可能還不知道微軟的BI終極解決方案其實是:分析服務。
業務人員
業務人員需要的是解決實際業務問題,這里對業務人員有兩個可能的假定:
- 業務人員不完全具備且主觀上并不想自行構建BI方案;
- 業務人員具備且主觀上愿意自行構建BI方案。
對于第一種情況,比較適合高層決策管理者人員,如若不是,或多或少都將面對自己做工作報告的情況,工作報告在一定意義上就是把自己負責的業務建模分析出關鍵指標。
對于第二種情況,我們已經知道他可以選擇:
- Excel Power Pivot
- Power BI 系列
來實現。對于第二種情況,如果他專門走向BI分析方面,而企業在這方面又有平臺和需求,那他將從懂業務轉為業務驅動型的BI工作者。
BI人員
對于BI人員來說,如果你所使用的 Excel Power Pivot或Power BI系列仍然在某些方面無法滿足專業的需要,那你需要了解的便是微軟為企業提供的終極解決方案:分析服務。
分析服務,有兩種承載方式,一種是自己隨SQL Server安裝,另一種則是直接使用微軟的Azure。關于Azure的詳細說明超過本文范圍,但使用Azure的一個顯著優勢是:
與專注業務類似,BI專家的專注業務就是:將底層IT基礎設施的維護交給了微軟,使BI專家可以專注于構建企業級商務智能解決方案。
了解 Azure Analysis Service
企業級數據繁雜
企業產生越來越多的數據,而且是在各種地方,以各種形式,就像是這種感覺:
這些數據現在或是未來主要將以兩種形態存在,像是這樣:
這些數據將存儲在云端或是企業本地,而企業對數據需要的核心任務是:釋放數據的價值。和以往不同的挑戰在于:必須整合云端數據與企業本地數據以形成一個一致化的整體。
釋放數據價值
為了釋放價值:
必須形成一致化的整體:
整體解決方案
而誰來承載這一切呢,對于微軟系的解決方案,那就是:Azure Analysis Service,如下:
WOW,請仔細看看。如果您已經學習了Power BI,你會很熟悉這個表關系圖。對的,它正是你在Excel用vlookup經常要查找的;也就是Power Pivot / Power BI中所稱的數據模型。對于企業來說,當把所有的數據都整合到一起的時候,這個數據模型將更加龐大和復雜。此時,不管是使用Excel或Power BI,在很大程度上都無法繼續勝任此工作了。所以,微軟幫助我們平滑地過渡到企業商務智能分析服務(理論上它應該支持任意的復雜度及任意的規模)。
BI專家,這時候不僅僅是針對某個主題設計一個基于Power BI的分析模型,而需要統籌整個企業的業務邏輯,構建統一且一致的企業級數據模型:
在企業統一且一致的數據模型下對外提供分析服務,以供各種業務端人員可以直接連接使用,不需要自己再構建數據模型。如下所示:
也就是說,BI專家需要完成:
- 整合企業涉及的各種數據;
- 構建一致的數據模型;
- 以各種可能的形式提供給終端用戶使用。
按需付費
我們使用Azure承載整個體系之外,一個很大的好處是可以按需付費。它可以隨著我們需要的能力而靈活彈性地伸縮,如果暫時不需要也可以關停便不再產生成本。如下:
更快獲得價值
作為終端用戶,也就可以直接訪問數據形成的價值,并直接進行可視化。
這個產生價值的過程不再需要一蹴而就,而是可以迭代完成,如下:
我們計劃了想要什么,然后立刻構建并部署效果,接著再進行調整,我們每一輪的優化都可以比以往更快,甚至縮短到日的級別。
BI專家們可以使用Visual Studio作為設計工具,在VS中設計的體驗甚至比使用Power BI或Excel Power Pivot更加帶勁。
而整個過程實際是沒有太多改變的:
BI專家建立模型,發布。終端用戶甚至可以直接在Excel中打開并直接獲得可視化的價值。
這一切就在:Azure Analysis Service。
AAS系統結構說明
我們簡單了解了什么是AAS(Azure Analysis Service),接著我們來看看他有怎樣的結構:
職能架構
首先來看從職能來說,有怎樣的表現:
AAS負責整合企業及云端數據,并提供存儲,安全,建模,生命周期管理,業務邏輯及指標等。然后提供各各種終端工具使用。
實現架構
我們已經看到了重點,那就是我們可以用熟悉的DAX來實現這一切。
組件架構
我們都涉及哪些相關的組件呢,大致可以包括:
- 云端數據存儲
- 云端數據庫
- 云端數據倉庫
- 本地數據存儲
- 本地數據庫
- 本地其他數據
- 數據網關
- Azure Analysis Service
- Power BI
- 開發工具
- Visual Studio
- SSMS
值得一提的是,在SQL Server 2017的1400級模型中以及AAS都支持Power Query / M表達式的獲取數據方式,這就讓我們學習Excel BI(Power Query + Power Pivot),Power BI并自動升級到企業級的商務智能分析服務可以直接遷移已經具備的知識體系。
演示
我們給出一個使用AAS的演示來具體感受一下。本演示需要Azure作為基礎,合適已經采用微軟Azure解決方案的企業或相關崗位人員參考。以及如果您正在考慮本企業如何實施企業級商務智能解決方案,那如果推薦您使用Azure Analysis Service您可以從以下內容大致了解它的可用性和能力。
本文并非是使用SSAS或數據建模的step-by-step的教程,所以我們更多來感受我們可以做到什么以及大致可行性,以便于企業在解決方案選型方面得到參考,感興趣的伙伴可以進一步交流。
準備
首選我們必須在Azure上擁有資源,根據我們上述的架構,我們假定:
- 企業采用Azure托管了SQL Server,名為:excel120。
- 企業在該SQL Server上擁有SQL數據庫,名為:AdventureWorksLT。
- 企業采用Azure托管了分析服務,名為:excel120。
如圖:
現在我們要做的是:
- 在本地設計基于AdventureWorksLT的數據模型;
- 測試模型的可用性;
- 部署該模型到Azure的分析服務上;
- 演示終端用戶如何直接使用分析服務。
本地數據建模
我們使用SSDT(Visual Studio)來創建模型,打開VS,并創建一個商業智能\Anlysis Services表格項目,注意選擇1400級別:
我們起個名字:Excel120-Demo。
數據獲取
我們一開始有了一個空模型,然后我們來導入數據:
我會得到一個熟悉的導入數據環境:
沒錯,我們可以用我們屬性的Power Query / M的方式來導入數據,只要輸入我們Azure SQL Database的用戶名和密碼,如下:
我們就可以獲取相應的數據來進行建模了。我們選擇幾個我們需要的表,完成加載,并修改下各個表的名字,如下:
數據建模
可以看出,我們補充了一個日期表。然后我們像在Power BI中一樣建立關系,非常容易,可以得到:
所有在Power BI中學到的本事都可以在這里發揮,我們再增加一些計算列和度量值,基本大功告成了。
在Excel中測試一下
這個功能很贊,我們可以直接在Excel中來看看是不是按照我們的預期來進行計算的,如下:
系統會幫我們打開一個Excel文件,該文件已經內置了和我們項目的關系,所以我們直接可以使用透視表來進行測試。如下:
這太酷了,可以仔細觀察,會發現一些利潤率是負值的情況,然后我們需要知道具體的細節,我們雙擊查看細節,不出意料,我們看到了細節數據,如下:
這很好,我們在Excel中很多情況就是這樣做的,但是一個歷史性遺留問題是:我想看產生負利潤率涉及到的具體客戶是誰?電話?以及銷售人員是誰?,這樣我才能立即采取行動。
很遺憾地告訴你,在Excel,Power BI,傳統SSAS表格項目中都無法做到;
很高興地告訴你,在SQL Server 2017 / Azure Analysis Service也就是1400級別的表格模型是可以做到的。
我們在Visual Studio的模型設計器中可以看到一個選項:
想看到什么詳細信息,我們可以在這里使用DAX來定義,例如:
在Power BI中學習了DAX,你可以在此時繼續發揮其作用,我們選擇了真正關注的細節信息。再回到Excel測試下效果來看看:
WOW,這就是我們要的,然后可以立即來處理了。
通過類似的方式,我們可以快速構建我們的模型,直到完成。
發布到云端
這里的發布,準確講是叫部署,我們在本地完成了設計,我們需要把這個模型發布到云端,以便企業所有的用戶都可以享用。
我們只需要把目標服務器填入部署配置即可。我們將在Azure中啟用的分析服務器地址填入:
系統會提示我們登錄進入我們的Azure,這也很正常。
發布成功。此時我們在Azure中也可以看到我們發布的結果了。
云端配置
我們是可以在云端進一步完成的模型的配置和修改的,Azure也給我們提供了相應的能力,如下:
整個體驗還不錯,但目前這塊還是Preview階段,有更多可以優化的地方。更多關于云端配置內容不再展開。
在各終端使用
這才是演示的關鍵,作為領導可能不再關心如何實現的細節,但更關心的是,我們在終端是如何用的。
Azure Analysis Service官方給出的態度首先是:支持最新的客戶端工具,包括:
利用新式的數據瀏覽和可視化工具(例如 Power BI、Excel 和第三方工具),用戶可以通過交互性強且視覺效果豐富的方式來了解模型數據。
因為我沒有安裝tableau,暫且演示Excel和Power BI作為終端的效果。
在Excel中探索數據
在Excel中,我們只要按照正常連接分析服務的方式來進行即可,效果自然也和我們在本地測試時是一樣的。
同樣地,我們可以雙擊具體的一個問題單元來查看細節:
那么此時,作為一個業務人員,您是可以快速采取行動的,而業務人員僅僅只需查看數據而無需自己再進行建模了。
在Power BI Desktop中探索數據
在Power BI Desktop中,我們在鏈接分析服務的時候可以采用實時模式,這樣我們將可以直接以可視化的方式來進行探索,如下:
這是我們可以使用的維度和度量值,然后我們進行可視化即可:
可以觀察到此時Power BI Desktop是沒有數據和關系兩個標簽的,從這個意義上來看,我們并沒有在Power BI Desktop中來建模,而僅僅是進行了可視化展示。當然,我們進一步把這個結果發布到Power BI云端。
可以看到該視圖是實時的,其實時性取決于分析服務模型的實時性。
其他方面
Azure Analysis Service 給了我們更強大的企業級商務智能終極解決方案。在這個企業級的層面我們可以完成更多任務,包括但不限于:
- 標準層的高級數據刷新功能有助于客戶實現幾乎實時的數據模型更新。支持內存上限是400G。(一個壓縮后達400G的模型)
- 可以使用表格模型腳本語言來維護元數據。如下:
- 更靈活的權限控制(對象級別安全性)
- 分區增量刷新
- 不規則層次結構
如:
- DAX 增強功能
更多信息參考微軟官方文檔:
https://docs.microsoft.com/zh-cn/sql/analysis-services/analysis-services
總結
Azure Analysis Service 給出了企業級商務智能的終極解決方案,至此:
- Excel Power Pivot - 個人型BI
- Power BI 體系 - 團隊協作型BI
- Analysis Service - 企業級BI
相信總有一款適合您或您的企業。