Power BI之DAX神功:第4卷第9回 使用弱關(guān)系實(shí)現(xiàn)多對(duì)多及數(shù)據(jù)規(guī)范


我們繼續(xù)使用上節(jié)課的案例,在上節(jié)課一開始我們就證明了多對(duì)多關(guān)系是可以使用的,但是有很多問題。
一、弱關(guān)系忽略空行
上節(jié)課我們提到了:兩張表多對(duì)多直接連線是弱關(guān)系,會(huì)忽略空行?,F(xiàn)在我們測(cè)試一下,繼續(xù)使用上節(jié)課的3個(gè)度量值:

顯示品牌時(shí)微軟被忽略掉了,你觀察總計(jì),其實(shí)美國(guó)微軟和微軟中國(guó)的任務(wù)總和21已經(jīng)加到總計(jì)中了。
弱關(guān)系下是否顯示空行:決定于行標(biāo)題是否存在篩選器,因?yàn)槿蹶P(guān)系下擴(kuò)展表只是自己本身。

反之,當(dāng)任務(wù)表中沒有某個(gè)品牌,而商品表中有這個(gè)品牌,在矩陣上使用任務(wù)表[品牌]列進(jìn)行篩選時(shí),同樣不顯示商品表多出來的那個(gè)品牌。解決方法上節(jié)課已經(jīng)講過了。
二、數(shù)據(jù)庫表格類型規(guī)范
從根本上避開多對(duì)多關(guān)系,還要從表格本身入手。
【1】每一列做到不可分割
2021年10月2日 我發(fā)表的《論數(shù)據(jù)清洗重要性》視頻?提到了像這種不規(guī)范的表格。
如果不進(jìn)行數(shù)據(jù)清洗,甚至可能會(huì)用到我們《DAX神功》第4卷第7回講到的 橋接表 。

【2】避免過多一端表造成:一對(duì)多與多對(duì)一共存的數(shù)據(jù)模型

【3】多行表頭、合并單元格、分塊都不能用:留給數(shù)據(jù)分析的一定是一維表
這些表不是說不能用,而是不能在數(shù)據(jù)分析中使用,很多人覺得M函數(shù)難,那你為什么在表格上給自己制造障礙呀?


三、在數(shù)據(jù)規(guī)范的同時(shí)還要注意數(shù)據(jù)大小
《DAX神功》第4卷第6回?介紹了VertiPaq和DirectQuery存儲(chǔ)模式,暫時(shí)我們接觸的存儲(chǔ)模式都是VertiPaq導(dǎo)入表,他是內(nèi)存中的列式數(shù)據(jù)庫。關(guān)于VertiPaq原理和優(yōu)化我們?cè)凇禗AX神功》DLC優(yōu)化篇再講,但是這里要先告訴你一件事:
畫重點(diǎn):PowerBI文件的大小與列的不重復(fù)值有關(guān)。(我說的不是Excel文件)
有表1、表2、表3這三張表:每張表都是1萬行

我們分別將三張表導(dǎo)入PowerBI



三張表的大小如下:

從下圖可以看出,文件大小與列的非重復(fù)值有關(guān)(又稱基數(shù)),當(dāng)基數(shù)越大文件就越大。

表1只有一列,列基數(shù)是10000
表2有6列,列最大基數(shù)是1
表3有6列,列最大基數(shù)是1
所以文件大小,看的是這張表所有列的基數(shù)最大值。行數(shù)和列數(shù)與文件大小有關(guān)系,但是基數(shù)影響更大。由于VertiPaq算法不同,可能Excel文件很大,但是導(dǎo)入PowerBI生成的文件就很小,你再轉(zhuǎn)回Excel文件又變大了。。。。PowerBI就是利用這特殊的列式數(shù)據(jù)庫的算法來提速的。
基數(shù)就比是系數(shù):例如獎(jiǎng)金多系數(shù)低,實(shí)發(fā)獎(jiǎng)金就低。

所以很多人不明真相的說,新建列不好,新建列耗費(fèi)內(nèi)存,我每次都沒有發(fā)表決定性的語言,我說的都是不絕對(duì)吧?(當(dāng)然耗費(fèi)內(nèi)存這事不能只看文件大小,與計(jì)算方法也有關(guān)系)
就說列基數(shù)這件事:
這兩個(gè)新建列,對(duì)文件大小影響可真的不一樣。
對(duì)你來說,應(yīng)該盡量減少一端表的數(shù)量,因?yàn)橹麈I因素(不為空不重復(fù))。當(dāng)然你想獲得更多顆粒度,那肯定是有代價(jià)的。
舉例: 你查孫興華三代人從咱們建國(guó)開始查就可以了。如果你從姜子牙開始查,那你需要獲取從商朝開始至今所有人的信息。這回顆粒度豐富了。

《孫興華講PowerBI火力全開》PowerBI必學(xué)課程
https://www.bilibili.com/video/BV1qa4y1H7wp
《DAX神功》文字版合集:
https://www.bilibili.com/read/readlist/rl442274
《DAX神功》視頻版合集:
https://www.bilibili.com/video/BV1YE411E7p3
《DAX神功番外篇》文字版合集:
https://www.bilibili.com/read/readlist/rl478271
PowerBI(DAX函數(shù))、PowerQuery(M函數(shù))、Python辦公自動(dòng)化、Python爬蟲、Python數(shù)據(jù)分析、ExcelVBA、WordVBA、AccessVBA、MySQL等等
https://www.bilibili.com/read/cv10222110