Analysis Services 教學課程案例
適用於: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
本教學課程以虛構公司 Adventure Works Cycles 為基礎。 Adventure Works Cycles 是一家大型跨國製造公司,其生產金屬和複合自行車並散發到北美、歐洲和亞洲的商業市場。 Adventure Works Cycles 的總部是華盛頓的 Bothell,該公司雇用了500名員工。 此外,Adventure Works Cycles 在其市場基礎中採用數個區域銷售團隊。
近年來,Adventure Works Cycles 購買了一家位於墨西哥的小型製造廠 Importadores Neptuno。 Importadores Neptuno 為 Adventure Works Cycles 產品線製造了數個重要子元件。 這些子元件會運送到Bothell位置進行最終產品元件。 2005年,Importadores Neptuno成為旅遊自行車產品集團的唯一製造商和轉銷商。
在成功的會計年度之後,Adventure Works Cycles 現在想要將廣告目標設為最佳客戶、透過外部網站擴充產品可用性,以及藉由降低生產成本來降低銷售成本,以擴大其市場份額。
目前分析環境
為了支援銷售和行銷小組和資深管理層的數據分析需求,公司目前會從 AdventureWorks2012 資料庫取得事務數據,以及電子錶格的銷售配額等非交易式資訊,並將此資訊合併到 adventureWorksDW2019 關係型數據倉儲中。 不過,關係型數據倉儲提出了下列挑戰:
報表是靜態的。 用戶無法以互動方式探索報表中的數據,以取得更詳細的資訊,例如他們可以使用Microsoft Office Excel 數據透視表。 雖然現有的一組預先定義報表對許多使用者而言已足夠,但更進階的使用者需要直接查詢存取資料庫,以進行互動式查詢和特製化報表。 不過,由於 AdventureWorksDW2019 資料庫的複雜性,因此需要太多時間讓這類用戶瞭解如何建立有效的查詢。
查詢效能是廣泛的變數。 例如,某些查詢會非常快速地傳回結果,只需要幾秒鐘的時間,而其他查詢則需要幾分鐘的時間才能傳回。
匯總數據表難以管理。 為了改善查詢回應時間,Adventure Works 的數據倉儲小組會在 AdventureWorksDW2019 資料庫中建置數個匯總數據表。 例如,他們建置了一個數據表,以依月份摘要銷售。 不過,雖然這些匯總數據表可大幅改善查詢效能,但是為了維護數據表而建置的基礎結構會隨著時間而脆弱且容易發生錯誤。
複雜的計算邏輯會埋在報表定義中,而且難以在報表之間共用。 由於此商業規則是針對每個報表個別產生,所以摘要資訊有時在報表之間會有所不同。 因此,管理對數據倉儲報表的信心有限。
不同業務單位的使用者對數據的不同檢視感興趣。 每個群組都會因與它們無關的數據元素而分心和混淆。
對於需要特殊報表的用戶來說,計算邏輯尤其具有挑戰性。 由於這類用戶必須針對每個報表個別定義計算邏輯,因此不會集中控制如何定義計算邏輯。 例如,有些使用者知道他們應該使用基本的統計技術,例如移動平均,但他們不知道如何建構這類計算,因此請勿使用這些技術。
很難結合相關的資訊集。 結合兩組相關信息的特製化查詢,例如銷售和銷售配額,很難讓商務使用者建構。 這類查詢讓資料庫不知所措,因此公司要求使用者向數據倉儲小組要求跨主體區域數據集。 因此,只有少數預先定義的報表會結合多個主題領域的數據。 此外,使用者也不願意嘗試修改這些報告,因為它們的複雜性。
報告主要著重於美國的商務資訊。 非美國使用者子公司對此焦點非常不滿,並希望能夠檢視不同貨幣和不同語言的報告。
信息難以稽核。 財務部門目前只使用 AdventureWorksDW2019 資料庫作為要大量查詢的來源。 然後,他們會將數據下載到個別電子錶格,並花大量時間準備數據及操作電子表格。 因此,公司財務報告難以在整個公司進行準備、稽核和管理。
解決方案
數據倉儲小組最近執行了目前分析系統的設計檢閱。 審查包括對當前問題和未來需求的差距分析。 數據倉儲小組判斷 AdventureWorksDW2019 資料庫是設計完善的維度資料庫,具有符合維度和代理索引鍵。 符合規範的維度可讓維度用於多個數據超市,例如時間維度或產品維度。 Surrogate 索引鍵是鏈接維度和事實數據表的人工索引鍵,用來確保唯一性和改善效能。 此外,數據倉儲小組判斷目前在 AdventureWorksDW2019 資料庫中載入和管理基表並沒有任何重大問題。 因此,小組已決定使用 Microsoft SQL Server Analysis Services 來完成下列作業:
透過一般元數據層提供統一的數據存取,以進行分析分析和報告。
簡化使用者的數據檢視,加速開發互動式和預先定義的查詢和預先定義的報表。
正確建構結合多個主題區域中數據的查詢。
管理匯總。
儲存及重複使用複雜的計算。
向美國以外的企業用戶呈現當地語系化體驗。