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