維度設計入門介紹,為什麼要學Power Pivot?
維度設計亦稱為星型模型(Star Schema),係為資料分析而生的資料設計原理,於Excel Power Pivot的使用方式,就是主以維度設計原理來進行建模、分析資料的呢。
本篇文章將會簡單介紹維度設計的原理及使用目的,再告訴大家為什麼Excel用戶該學習Power Pivot。
什麼是維度設計?
維度設計(Dimensional Design)是一種資料模型(資料庫)建模的設計方式,另一個常用的稱呼為星型模型(Star Schema),核心概念為:
將資料模型來源資料表分為兩類:維度表(Dimension Table)及事實表(Fact Table),以利進行資料分析時可利用維度表來分析事實表。另外,模型設計上不必完全遵守資料庫正規化3NF原則(Third Normal Form),簡單說就是不用把資料拆分、細化到很多資料表(資料個體),建模自由度較高,係以分析師想要如何分析資料的前提下去進行資料模型設計。
接著,讓我們來說明什麼是維度表、什麼是事實表。
1.事實表(Fact Table)
事實表是一般人較常接觸的大數據資料(可能為幾十萬、百萬列的數據),例如交易紀錄、警衛大門人車進出記錄、生產記錄等等。
2. 維度表(Dimension Table)
維度表則像是事實表中某維度(欄位)的清單(母數),例如事實表中有產品相關的欄位,那(產品)維度表中就會包含:產品ID、產品名稱及產品單價等欄位,且每一筆資料不會重複(就像一個清單)。
除了上述事實表和維度表的基本差異說明外,實際設計時需比照關聯式資料庫管理系統的設計原理,設定主鍵(Primary Key)與外鍵(Foreign Key),例如產品維度表中的產品ID即為主鍵,而事實表中的產品ID欄位則屬於外鍵,兩個表可以利用產品ID欄位進行關聯性建立,成為1對多的關係,對於此部分有興趣的朋友可以先參考此篇文章。
為什麼要用維度表來分析事實表?
各位Excel用戶若有分析大數據的經驗,應該會發現有個很普遍的分析方式為:
下載資料庫某一區間的資料,調整資料表頭名稱及新增一些欄位後,插入樞紐分析表進行數據分析。
所以到底為什麼要用維度表來分析事實表呢?讓我們講一個故事給大家聽。
思妤是一位剛進入台灣賓士(Benz)公司的資料分析師,公司總經理首先請她試著分析看看2023年不同產品的銷售額。於是思妤從公司資料庫下載了2023年的銷售記錄,共有幾百萬筆資料。(如下圖,此即為事實表)
接著,再利用Excel的功能來插入樞紐分析表(如下圖),看出了2023年公司共賣出7款車型,總銷售額為671百萬台幣。
初步回報了總經理後,總經理接著提出新的要求:
可以再請妳比較Class系列車款和其他車款的銷售額及佔總銷售額的比率%嗎?
思妤思考到:
應該只要將產品名稱含Class文字的產品抓出來,其他產品就歸類為其他類,就好了啊!於是就在Excel中寫了一個複雜的公式,成功地將產品分類為Class和其他。(如下圖)
以上動作也可以於Power Query中進行自動化設定,但不管用哪一個方法,思妤發現,若不斷地增加公式於幾百萬筆資料的大數據中,電腦的記憶體和CPU使用率已經趨近100%,Excel檔案也不時地死當。
正當苦惱之際,思妤的好朋友阿範推薦了一本維度設計的書籍(如下圖),在思妤閱讀前面幾個章節後,似乎找到了解決方案!
(可點擊圖片進入亞馬遜商城)
若是建立一個維度表,並於資料模型中和事實表建立關聯性,好像就可以迅速解決這個問題,於是思妤做了一個產品維度表(如下圖),並依總經理的需求增加了一個欄位「產品類別」(僅15列)。
接著,於資料模型中將產品維度表的主鍵(產品ID)與事實表的外鍵(產品ID)建立起關聯性,並以DAX語言撰寫了兩個量值(Benz銷售額及佔總銷售額比率%)。(如下圖)
再插入樞紐分析表,思妤就成功地完成總經理交代她的任務。(如下圖)
在結束本節之前,讓小編再補充兩個應建立維度表的原因:
- 有資料分析經驗的人都知道,以時間(年、季、月、日)來分析資料是最常見的分析手段,而於Excel或Power BI中的資料分析語言(DAX),有一系列時間智慧(Time Intelligence)函數供用戶使用,而其使用的前提就是,必須要有時間維度表。(加入時間維度表的模型圖及樞紐分析報表參考如下兩圖)
- 如果公司要你分析全部車款的銷售額(包含銷售額0的車款),若沒有建立產品維度表,直接於大數據(事實表)進行分析,是無法看出那些尚未銷售的車款(下圖左側為以維度表來分析,含未銷售的車款;右側為以事實表來分析,不含未銷售的車款),所以其實99%的資料分析都是從維度表做為出發點,去分析事實表的。
為什麼Excel用戶該學習Power Pivot?
針對上一節的介紹,為什麼要用維度表來分析事實表後,相信各位朋友應該已躍躍欲試,想要試著自己建模看看,但要使用什麼軟體建模、進行維度設計呢?
最好的工具就在自己身邊,人人都用的Excel軟體其實就具備資料模型的功能,那就是Power Pivot,Power Pivot是Excel 2019版後就內建的功能(更早的版本則須購買專業版),想要更深入了解Power Pivot使用方式的朋友可先參考此篇文章:Excel Power Pivot資料模型入門介紹。
Power Pivot一般會搭配Power Query一起使用,先藉由Power Query資料連結、資料轉換及資料載入的功能(ETL),將大數據載入Power Pivot資料模型,再於模型中建立資料表間的關聯性及撰寫量值(DAX),接著再於Excel中插入樞紐分析表(從資料模型)。(如下三張圖)
接著,把想要分析的維度欄位從維度表中拖拉至樞紐分析表的篩選環境(Filter Context)欄位:列(Rows)、欄(Columns)或篩選(Filters)欄位;
再把想要分析的數值欄位從事實表中拖拉至樞紐分析表的:值(Values),或是將已撰寫好的量值(Measure)拖拉至此。
以上就是Power Pivot用法的重點摘要,至於為什麼要使用Power Pivot呢?
基本上若您任職於資料分析單位(如經營分析組),一定會需要用到各種維度的資料分析,且若您公司使用的分析軟體為Excel,那當然有學習的必要性呢!學會Power Pivot及維度設計絕對可幫助您提升資料分析的效率,及可進一步建立動態儀表板。
總結及補充:
針對以上說明,相信大家都已經了解維度設計的重要性。
另外,小編於職場實際看過有公司雖然有使用Excel Power Pivot,但因不懂得維度設計,以至於還是以事實表(很多、很多欄位的數據)去進行資料分析,那就大大失去了建立資料模型的初衷了呢
鼓勵大家可先練習試著以簡單的維度設計概念去建立Power Pivot資料模型,有任何問題歡迎在下方留言或寄信詢問我們。