維度設計入門介紹,為什麼要學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年的銷售記錄,共有幾百萬筆資料。(如下圖,此即為事實表)

20240410_P2

接著,再利用Excel的功能來插入樞紐分析表(如下圖),看出了2023年公司共賣出7款車型,總銷售額為671百萬台幣。

20240410_P3

初步回報了總經理後,總經理接著提出新的要求:

可以再請妳比較Class系列車款和其他車款的銷售額及佔總銷售額的比率%嗎?

思妤思考到:

應該只要將產品名稱含Class文字的產品抓出來,其他產品就歸類為其他類,就好了啊!於是就在Excel中寫了一個複雜的公式,成功地將產品分類為Class和其他。(如下圖)

20240410_P4

以上動作也可以於Power Query中進行自動化設定,但不管用哪一個方法,思妤發現,若不斷地增加公式於幾百萬筆資料的大數據中,電腦的記憶體和CPU使用率已經趨近100%,Excel檔案也不時地死當。

正當苦惱之際,思妤的好朋友阿範推薦了一本維度設計的書籍(如下圖),在思妤閱讀前面幾個章節後,似乎找到了解決方案!

(可點擊圖片進入亞馬遜商城)

若是建立一個維度表,並於資料模型中和事實表建立關聯性,好像就可以迅速解決這個問題,於是思妤做了一個產品維度表(如下圖),並依總經理的需求增加了一個欄位「產品類別」(僅15列)。

20240410_P5

接著,於資料模型中將產品維度表的主鍵(產品ID)與事實表的外鍵(產品ID)建立起關聯性,並以DAX語言撰寫了兩個量值(Benz銷售額及佔總銷售額比率%)。(如下圖)

20240410_P6.1

再插入樞紐分析表,思妤就成功地完成總經理交代她的任務。(如下圖)

20240410_P7

以上小故事僅是以產品維度來舉例,實際資料分析時,還會考慮到客戶維度、公司維度、倉庫維度及時間維度等各式各樣的維度,若直接在大數據(事實表)上進行分析,各位可以想像將會是相當艱困及不自動化的過程;相對地,若是可利用維度表來彈性調整分析維度(視角),則是相當舒適的過程

如此各位可以了解為什麼要使用維度表了嗎?

在結束本節之前,讓小編再補充兩個應建立維度表的原因:

  1. 有資料分析經驗的人都知道,以時間(年、季、月、日)來分析資料是最常見的分析手段,而於Excel或Power BI中的資料分析語言(DAX),有一系列時間智慧(Time Intelligence)函數供用戶使用,而其使用的前提就是,必須要有時間維度表。(加入時間維度表的模型圖及樞紐分析報表參考如下兩圖)
20240410_P9
20240410_P8
  1. 如果公司要你分析全部車款的銷售額(包含銷售額0的車款),若沒有建立產品維度表,直接於大數據(事實表)進行分析,是無法看出那些尚未銷售的車款(下圖左側為以維度表來分析,含未銷售的車款;右側為以事實表來分析,不含未銷售的車款),所以其實99%的資料分析都是從維度表做為出發點,去分析事實表的。
20240410_P10

為什麼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中插入樞紐分析表(從資料模型)。(如下三張圖)

20240410_P12
20240410_P13
20240410_P11

接著,把想要分析的維度欄位從維度表中拖拉至樞紐分析表的篩選環境(Filter Context)欄位:列(Rows)、欄(Columns)或篩選(Filters)欄位;

再把想要分析的數值欄位從事實表中拖拉至樞紐分析表的:值(Values),或是將已撰寫好的量值(Measure)拖拉至此。

20240410_P14

以上就是Power Pivot用法的重點摘要,至於為什麼要使用Power Pivot呢?

基本上若您任職於資料分析單位(如經營分析組),一定會需要用到各種維度的資料分析,且若您公司使用的分析軟體為Excel,那當然有學習的必要性呢!學會Power Pivot及維度設計絕對可幫助您提升資料分析的效率,及可進一步建立動態儀表板

總結及補充:

針對以上說明,相信大家都已經了解維度設計的重要性。

另外,小編於職場實際看過有公司雖然有使用Excel Power Pivot,但因不懂得維度設計,以至於還是以事實表(很多、很多欄位的數據)去進行資料分析,那就大大失去了建立資料模型的初衷了呢

鼓勵大家可先練習試著以簡單的維度設計概念去建立Power Pivot資料模型,有任何問題歡迎在下方留言或寄信詢問我們。

這篇文章對您有幫助嗎?

平均評分 5 / 5. 1

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?

發表迴響