Azure Analysis Service 介紹
概述
也許你知道Excel Power Pivot,也許你已經(jīng)開始使用Power BI,但你可能還不知道微軟的BI終極解決方案其實(shí)是:分析服務(wù)。
業(yè)務(wù)人員
業(yè)務(wù)人員需要的是解決實(shí)際業(yè)務(wù)問題,這里對業(yè)務(wù)人員有兩個(gè)可能的假定:
- 業(yè)務(wù)人員不完全具備且主觀上并不想自行構(gòu)建BI方案;
- 業(yè)務(wù)人員具備且主觀上愿意自行構(gòu)建BI方案。
對于第一種情況,比較適合高層決策管理者人員,如若不是,或多或少都將面對自己做工作報(bào)告的情況,工作報(bào)告在一定意義上就是把自己負(fù)責(zé)的業(yè)務(wù)建模分析出關(guān)鍵指標(biāo)。
對于第二種情況,我們已經(jīng)知道他可以選擇:
- Excel Power Pivot
- Power BI 系列
來實(shí)現(xiàn)。對于第二種情況,如果他專門走向BI分析方面,而企業(yè)在這方面又有平臺(tái)和需求,那他將從懂業(yè)務(wù)轉(zhuǎn)為業(yè)務(wù)驅(qū)動(dòng)型的BI工作者。
BI人員
對于BI人員來說,如果你所使用的 Excel Power Pivot或Power BI系列仍然在某些方面無法滿足專業(yè)的需要,那你需要了解的便是微軟為企業(yè)提供的終極解決方案:分析服務(wù)。
分析服務(wù),有兩種承載方式,一種是自己隨SQL Server安裝,另一種則是直接使用微軟的Azure。關(guān)于Azure的詳細(xì)說明超過本文范圍,但使用Azure的一個(gè)顯著優(yōu)勢是:
與專注業(yè)務(wù)類似,BI專家的專注業(yè)務(wù)就是:將底層IT基礎(chǔ)設(shè)施的維護(hù)交給了微軟,使BI專家可以專注于構(gòu)建企業(yè)級商務(wù)智能解決方案。
了解 Azure Analysis Service
企業(yè)級數(shù)據(jù)繁雜
企業(yè)產(chǎn)生越來越多的數(shù)據(jù),而且是在各種地方,以各種形式,就像是這種感覺:

這些數(shù)據(jù)現(xiàn)在或是未來主要將以兩種形態(tài)存在,像是這樣:

這些數(shù)據(jù)將存儲(chǔ)在云端或是企業(yè)本地,而企業(yè)對數(shù)據(jù)需要的核心任務(wù)是:釋放數(shù)據(jù)的價(jià)值。和以往不同的挑戰(zhàn)在于:必須整合云端數(shù)據(jù)與企業(yè)本地?cái)?shù)據(jù)以形成一個(gè)一致化的整體。
釋放數(shù)據(jù)價(jià)值
為了釋放價(jià)值:

必須形成一致化的整體:

整體解決方案
而誰來承載這一切呢,對于微軟系的解決方案,那就是:Azure Analysis Service,如下:

WOW,請仔細(xì)看看。如果您已經(jīng)學(xué)習(xí)了Power BI,你會(huì)很熟悉這個(gè)表關(guān)系圖。對的,它正是你在Excel用vlookup經(jīng)常要查找的;也就是Power Pivot / Power BI中所稱的數(shù)據(jù)模型。對于企業(yè)來說,當(dāng)把所有的數(shù)據(jù)都整合到一起的時(shí)候,這個(gè)數(shù)據(jù)模型將更加龐大和復(fù)雜。此時(shí),不管是使用Excel或Power BI,在很大程度上都無法繼續(xù)勝任此工作了。所以,微軟幫助我們平滑地過渡到企業(yè)商務(wù)智能分析服務(wù)(理論上它應(yīng)該支持任意的復(fù)雜度及任意的規(guī)模)。
BI專家,這時(shí)候不僅僅是針對某個(gè)主題設(shè)計(jì)一個(gè)基于Power BI的分析模型,而需要統(tǒng)籌整個(gè)企業(yè)的業(yè)務(wù)邏輯,構(gòu)建統(tǒng)一且一致的企業(yè)級數(shù)據(jù)模型:

在企業(yè)統(tǒng)一且一致的數(shù)據(jù)模型下對外提供分析服務(wù),以供各種業(yè)務(wù)端人員可以直接連接使用,不需要自己再構(gòu)建數(shù)據(jù)模型。如下所示:

也就是說,BI專家需要完成:
- 整合企業(yè)涉及的各種數(shù)據(jù);
- 構(gòu)建一致的數(shù)據(jù)模型;
- 以各種可能的形式提供給終端用戶使用。
按需付費(fèi)
我們使用Azure承載整個(gè)體系之外,一個(gè)很大的好處是可以按需付費(fèi)。它可以隨著我們需要的能力而靈活彈性地伸縮,如果暫時(shí)不需要也可以關(guān)停便不再產(chǎn)生成本。如下:

更快獲得價(jià)值
作為終端用戶,也就可以直接訪問數(shù)據(jù)形成的價(jià)值,并直接進(jìn)行可視化。

這個(gè)產(chǎn)生價(jià)值的過程不再需要一蹴而就,而是可以迭代完成,如下:

我們計(jì)劃了想要什么,然后立刻構(gòu)建并部署效果,接著再進(jìn)行調(diào)整,我們每一輪的優(yōu)化都可以比以往更快,甚至縮短到日的級別。
BI專家們可以使用Visual Studio作為設(shè)計(jì)工具,在VS中設(shè)計(jì)的體驗(yàn)甚至比使用Power BI或Excel Power Pivot更加帶勁。

而整個(gè)過程實(shí)際是沒有太多改變的:

BI專家建立模型,發(fā)布。終端用戶甚至可以直接在Excel中打開并直接獲得可視化的價(jià)值。
這一切就在:Azure Analysis Service。

AAS系統(tǒng)結(jié)構(gòu)說明
我們簡單了解了什么是AAS(Azure Analysis Service),接著我們來看看他有怎樣的結(jié)構(gòu):
職能架構(gòu)
首先來看從職能來說,有怎樣的表現(xiàn):

AAS負(fù)責(zé)整合企業(yè)及云端數(shù)據(jù),并提供存儲(chǔ),安全,建模,生命周期管理,業(yè)務(wù)邏輯及指標(biāo)等。然后提供各各種終端工具使用。
實(shí)現(xiàn)架構(gòu)

我們已經(jīng)看到了重點(diǎn),那就是我們可以用熟悉的DAX來實(shí)現(xiàn)這一切。
組件架構(gòu)

我們都涉及哪些相關(guān)的組件呢,大致可以包括:
- 云端數(shù)據(jù)存儲(chǔ)
- 云端數(shù)據(jù)庫
- 云端數(shù)據(jù)倉庫
- 本地?cái)?shù)據(jù)存儲(chǔ)
- 本地?cái)?shù)據(jù)庫
- 本地其他數(shù)據(jù)
- 數(shù)據(jù)網(wǎng)關(guān)
- Azure Analysis Service
- Power BI
- 開發(fā)工具
- Visual Studio
- SSMS
值得一提的是,在SQL Server 2017的1400級模型中以及AAS都支持Power Query / M表達(dá)式的獲取數(shù)據(jù)方式,這就讓我們學(xué)習(xí)Excel BI(Power Query + Power Pivot),Power BI并自動(dòng)升級到企業(yè)級的商務(wù)智能分析服務(wù)可以直接遷移已經(jīng)具備的知識體系。
演示
我們給出一個(gè)使用AAS的演示來具體感受一下。本演示需要Azure作為基礎(chǔ),合適已經(jīng)采用微軟Azure解決方案的企業(yè)或相關(guān)崗位人員參考。以及如果您正在考慮本企業(yè)如何實(shí)施企業(yè)級商務(wù)智能解決方案,那如果推薦您使用Azure Analysis Service您可以從以下內(nèi)容大致了解它的可用性和能力。
本文并非是使用SSAS或數(shù)據(jù)建模的step-by-step的教程,所以我們更多來感受我們可以做到什么以及大致可行性,以便于企業(yè)在解決方案選型方面得到參考,感興趣的伙伴可以進(jìn)一步交流。
準(zhǔn)備
首選我們必須在Azure上擁有資源,根據(jù)我們上述的架構(gòu),我們假定:
- 企業(yè)采用Azure托管了SQL Server,名為:excel120。
- 企業(yè)在該SQL Server上擁有SQL數(shù)據(jù)庫,名為:AdventureWorksLT。
- 企業(yè)采用Azure托管了分析服務(wù),名為:excel120。
如圖:

現(xiàn)在我們要做的是:
- 在本地設(shè)計(jì)基于AdventureWorksLT的數(shù)據(jù)模型;
- 測試模型的可用性;
- 部署該模型到Azure的分析服務(wù)上;
- 演示終端用戶如何直接使用分析服務(wù)。
本地?cái)?shù)據(jù)建模
我們使用SSDT(Visual Studio)來創(chuàng)建模型,打開VS,并創(chuàng)建一個(gè)商業(yè)智能\Anlysis Services表格項(xiàng)目,注意選擇1400級別:

我們起個(gè)名字:Excel120-Demo。
數(shù)據(jù)獲取
我們一開始有了一個(gè)空模型,然后我們來導(dǎo)入數(shù)據(jù):

我會(huì)得到一個(gè)熟悉的導(dǎo)入數(shù)據(jù)環(huán)境:

沒錯(cuò),我們可以用我們屬性的Power Query / M的方式來導(dǎo)入數(shù)據(jù),只要輸入我們Azure SQL Database的用戶名和密碼,如下:

我們就可以獲取相應(yīng)的數(shù)據(jù)來進(jìn)行建模了。我們選擇幾個(gè)我們需要的表,完成加載,并修改下各個(gè)表的名字,如下:

數(shù)據(jù)建模
可以看出,我們補(bǔ)充了一個(gè)日期表。然后我們像在Power BI中一樣建立關(guān)系,非常容易,可以得到:

所有在Power BI中學(xué)到的本事都可以在這里發(fā)揮,我們再增加一些計(jì)算列和度量值,基本大功告成了。
在Excel中測試一下
這個(gè)功能很贊,我們可以直接在Excel中來看看是不是按照我們的預(yù)期來進(jìn)行計(jì)算的,如下:

系統(tǒng)會(huì)幫我們打開一個(gè)Excel文件,該文件已經(jīng)內(nèi)置了和我們項(xiàng)目的關(guān)系,所以我們直接可以使用透視表來進(jìn)行測試。如下:

這太酷了,可以仔細(xì)觀察,會(huì)發(fā)現(xiàn)一些利潤率是負(fù)值的情況,然后我們需要知道具體的細(xì)節(jié),我們雙擊查看細(xì)節(jié),不出意料,我們看到了細(xì)節(jié)數(shù)據(jù),如下:

這很好,我們在Excel中很多情況就是這樣做的,但是一個(gè)歷史性遺留問題是:我想看產(chǎn)生負(fù)利潤率涉及到的具體客戶是誰?電話?以及銷售人員是誰?,這樣我才能立即采取行動(dòng)。
很遺憾地告訴你,在Excel,Power BI,傳統(tǒng)SSAS表格項(xiàng)目中都無法做到;
很高興地告訴你,在SQL Server 2017 / Azure Analysis Service也就是1400級別的表格模型是可以做到的。
我們在Visual Studio的模型設(shè)計(jì)器中可以看到一個(gè)選項(xiàng):

想看到什么詳細(xì)信息,我們可以在這里使用DAX來定義,例如:

在Power BI中學(xué)習(xí)了DAX,你可以在此時(shí)繼續(xù)發(fā)揮其作用,我們選擇了真正關(guān)注的細(xì)節(jié)信息。再回到Excel測試下效果來看看:

WOW,這就是我們要的,然后可以立即來處理了。
通過類似的方式,我們可以快速構(gòu)建我們的模型,直到完成。
發(fā)布到云端
這里的發(fā)布,準(zhǔn)確講是叫部署,我們在本地完成了設(shè)計(jì),我們需要把這個(gè)模型發(fā)布到云端,以便企業(yè)所有的用戶都可以享用。
我們只需要把目標(biāo)服務(wù)器填入部署配置即可。我們將在Azure中啟用的分析服務(wù)器地址填入:

系統(tǒng)會(huì)提示我們登錄進(jìn)入我們的Azure,這也很正常。

發(fā)布成功。此時(shí)我們在Azure中也可以看到我們發(fā)布的結(jié)果了。

云端配置
我們是可以在云端進(jìn)一步完成的模型的配置和修改的,Azure也給我們提供了相應(yīng)的能力,如下:

整個(gè)體驗(yàn)還不錯(cuò),但目前這塊還是Preview階段,有更多可以優(yōu)化的地方。更多關(guān)于云端配置內(nèi)容不再展開。
在各終端使用
這才是演示的關(guān)鍵,作為領(lǐng)導(dǎo)可能不再關(guān)心如何實(shí)現(xiàn)的細(xì)節(jié),但更關(guān)心的是,我們在終端是如何用的。
Azure Analysis Service官方給出的態(tài)度首先是:支持最新的客戶端工具,包括:

利用新式的數(shù)據(jù)瀏覽和可視化工具(例如 Power BI、Excel 和第三方工具),用戶可以通過交互性強(qiáng)且視覺效果豐富的方式來了解模型數(shù)據(jù)。
因?yàn)槲覜]有安裝tableau,暫且演示Excel和Power BI作為終端的效果。
在Excel中探索數(shù)據(jù)
在Excel中,我們只要按照正常連接分析服務(wù)的方式來進(jìn)行即可,效果自然也和我們在本地測試時(shí)是一樣的。

同樣地,我們可以雙擊具體的一個(gè)問題單元來查看細(xì)節(jié):

那么此時(shí),作為一個(gè)業(yè)務(wù)人員,您是可以快速采取行動(dòng)的,而業(yè)務(wù)人員僅僅只需查看數(shù)據(jù)而無需自己再進(jìn)行建模了。
在Power BI Desktop中探索數(shù)據(jù)
在Power BI Desktop中,我們在鏈接分析服務(wù)的時(shí)候可以采用實(shí)時(shí)模式,這樣我們將可以直接以可視化的方式來進(jìn)行探索,如下:

這是我們可以使用的維度和度量值,然后我們進(jìn)行可視化即可:

可以觀察到此時(shí)Power BI Desktop是沒有數(shù)據(jù)和關(guān)系兩個(gè)標(biāo)簽的,從這個(gè)意義上來看,我們并沒有在Power BI Desktop中來建模,而僅僅是進(jìn)行了可視化展示。當(dāng)然,我們進(jìn)一步把這個(gè)結(jié)果發(fā)布到Power BI云端。

可以看到該視圖是實(shí)時(shí)的,其實(shí)時(shí)性取決于分析服務(wù)模型的實(shí)時(shí)性。
其他方面
Azure Analysis Service 給了我們更強(qiáng)大的企業(yè)級商務(wù)智能終極解決方案。在這個(gè)企業(yè)級的層面我們可以完成更多任務(wù),包括但不限于:
- 標(biāo)準(zhǔn)層的高級數(shù)據(jù)刷新功能有助于客戶實(shí)現(xiàn)幾乎實(shí)時(shí)的數(shù)據(jù)模型更新。支持內(nèi)存上限是400G。(一個(gè)壓縮后達(dá)400G的模型)
- 可以使用表格模型腳本語言來維護(hù)元數(shù)據(jù)。如下:

- 更靈活的權(quán)限控制(對象級別安全性)
- 分區(qū)增量刷新
- 不規(guī)則層次結(jié)構(gòu)
如:

- DAX 增強(qiáng)功能
更多信息參考微軟官方文檔:
https://docs.microsoft.com/zh-cn/sql/analysis-services/analysis-services
總結(jié)
Azure Analysis Service 給出了企業(yè)級商務(wù)智能的終極解決方案,至此:
- Excel Power Pivot - 個(gè)人型BI
- Power BI 體系 - 團(tuán)隊(duì)協(xié)作型BI
- Analysis Service - 企業(yè)級BI
相信總有一款適合您或您的企業(yè)。