一文搞懂PowerBI的數(shù)據(jù)建模
使用的數(shù)據(jù)透視表的都知道,透視表只能從單個表中取數(shù),如果想把其他表中的數(shù)據(jù)也放進來,只能先利用Vlookup把其他表的數(shù)據(jù)合并過來,然后再把這個字段放到透視表中。這只適用于數(shù)據(jù)非常簡單的情況,如果數(shù)據(jù)量大或者維度很多,用透視表就無法滿足需求了。
Power BI突破了這個限制,可以從多個表格、多種來源的數(shù)據(jù)中,根據(jù)不同的維度、不同的邏輯來聚合分析數(shù)據(jù);而提取數(shù)據(jù)的前提是要將這些數(shù)據(jù)表建立關(guān)系,這個建立關(guān)系的過程就是數(shù)據(jù)建模。
以一個實例來理解數(shù)據(jù)建模。
比如有個電子產(chǎn)品專賣店,銷售產(chǎn)品有三類:手機、電腦、平板,每一類又分別來自三個品牌:小米、蘋果、三星,那么這個店銷售的產(chǎn)品共計9個,其銷售明細也是記錄這些產(chǎn)品每天的銷售數(shù)據(jù),
為了能分析每個品牌的銷售金額,或者分析每個產(chǎn)品類別的銷售情況,其實還應(yīng)該設(shè)計個產(chǎn)品明細表以及對應(yīng)的品牌表和種類表,像這樣的:
從這四個表中很容易就能想到它們之間的關(guān)系,品牌表和產(chǎn)品類別表分別和產(chǎn)品明細表中的品牌與產(chǎn)品種類相對應(yīng),而產(chǎn)品明細表中的產(chǎn)品編號和銷售明細表中的產(chǎn)品編號相對應(yīng)。
下面就演示一下在Power BI Desktop中建立一個模型,導(dǎo)入以后點擊關(guān)系,出現(xiàn)這4張表,
可以看出產(chǎn)品明細表和銷售明細表之間已經(jīng)有一條線,這是由于表格導(dǎo)入后,PowerBI會自動檢測關(guān)系并聯(lián)接,沒有檢測到的表,可以點擊一個表中的字段托到另一個表的對應(yīng)字段上,就可以建立關(guān)系了,把類別表、品牌表和產(chǎn)品明細表建立關(guān)系后,關(guān)系圖如下:
一個簡單的數(shù)據(jù)模型就建立好了,可以點進去看看建立模型的相關(guān)參數(shù)。
點擊關(guān)系連接線,兩邊的表對應(yīng)的連接字段會框選,雙擊關(guān)系線,進入編輯關(guān)系窗口:
編輯關(guān)系窗口可以看出關(guān)聯(lián)的兩個表和對應(yīng)的字段,也可以更改聯(lián)結(jié)的字段;下面還有兩個可選項,基數(shù)和交叉篩選方向。
基數(shù)
基數(shù)就是兩個連接字段的對應(yīng)關(guān)系,分為多對一、一對一和一對多,一對多和多對一其實是一樣的,實際上就是兩種關(guān)系:
多對一(*:1):這是最常見的類型,代表一個表中的關(guān)系列有重復(fù)值,而在另一個表中是單一值
一對一(1:1):兩個表是一對一的關(guān)系,列中的每個值在兩個表中都是唯一的
具有唯一值的表通常稱為“查找表”,而具有多個值的表稱為“引用表”。在上述的關(guān)系圖上,產(chǎn)品明細表上類別手機、平板、電腦都不是唯一的,每個品牌都有這種類型,是個引用表;但類別表上,幾種類別都是唯一值,因此這兩個表是多對一的關(guān)系,類別表也就是查找表。
交叉篩選方向
表示數(shù)據(jù)篩選的流向,有兩種類型:
雙向:兩個表可以互相篩選
單向:一個表只能對另一個表篩選,而不能反向
這個稍微有點抽象,以后可以根據(jù)實例來理解。
根據(jù)剛才建立的數(shù)據(jù)模型,可以做一下分析,比如統(tǒng)計各品牌產(chǎn)品的銷售額:
在銷售明細表中并不能直接統(tǒng)計出按品牌的銷售額,可以先建一個度量值,在建模選項卡下,點擊新建度量值,公式欄輸入:
銷售額 = sum('銷售明細表'[金額])
然后[銷售額]這個度量值就建立了,在右邊字段區(qū)可以看到。
為了在畫布上直觀的看到各品牌銷售額,在可視化里添加“卡片圖”,把度量值字段放進去,可以看到卡片圖的數(shù)字出來了,
這個數(shù)字是整體銷售金額,因為還沒有做任何篩選,為了看出各品牌的銷售金額,現(xiàn)在添加一個品牌的切片器,
點擊不同的品牌,數(shù)值跟著變化,通過這個例子,可以看出:
展現(xiàn)的數(shù)字并不是一個表得出的,根據(jù)之前建立的關(guān)系模型,銷售明細表中的數(shù)據(jù)被品牌表中的[品牌名稱]字段所篩選,展現(xiàn)出來不同品牌的銷售額,這就是數(shù)據(jù)模型的威力。
品牌銷售額是通過[銷售額]這個度量值,加入到卡片圖中,并可與切片器交互,展現(xiàn)不同的數(shù)據(jù)。
通過這個實例,還看到了以前從未見過的的概念:度量值,這可以說是PowerBI數(shù)據(jù)建模的靈魂,創(chuàng)建度量值的公式稱為DAX公式(看起來和Excel公式非常相似),剛才創(chuàng)建的這個度量值只是一個簡單的sum函數(shù),并沒有任何的過濾條件,但是卻可以根據(jù)切片器的篩選而展現(xiàn)不同的數(shù)值,所以度量值被稱為移動的公式,這里只是簡單介紹,有個印象即可。
學習數(shù)據(jù)建模的更多知識,可以說都是依據(jù)度量值的邏輯以及建立度量值的DAX公式來展開,是下一步學習Power BI的重點。