Power BI 建模

聊聊建模的那些事儿。

我们往往花了大量的时间学习DAX,花了大量的精力试图理解行上下文这些抽象的概念。甚至花更多心思绞尽脑汁的研究M语言。但实际上,往往忽略了一个非常重要的切入点,那就是建模。

很多时候,我们拿着若干数据表,着急进行数据清洗,然后简单的找几个表建立几个关系后,就开始上DAX分析了。各种函数运用,各种高技术难度的分析一大顿之后,发现达不到想要的分析效果。或者用DAX时,感觉无从下手。其实大概率是忽视了建模,这个从战略上宏观上把控、规划、构思整个数据分析体系的过程。建模搞好了,很大程度上用不了多么花里胡哨的DAX就能解决战斗。

讲DAX的资源若干,讲各种花里胡哨的可视化控件配置技巧的资源也不少。但能真正关注建模的少之又少。我想可能因为建模,大部分其实需要的是软技术。好像除了说说所谓的星型模型外就没啥好讲的了。但其实这里面有很多需要提前注意的细节。

我在学习powerbi初期的时候,在某网上买了一个从财务角度讲powerbi的,看完一遍后,我觉得能学到东西,但是很多概念依然模糊,一看就会,然后自己就是不会。所以转向在udemy上听英文的课程,明显感觉思路要比上一位大拿的更加清晰、系统。这个过程中模糊的概念逐渐明白了。其中一个最重要的点,就是永远先搞明白我们用powerbi搞分析报告是给谁看的,这一客户或者叫用户导向。

有给客户看的,有给领导老板看的,有给不同业务部门的同事看的,有给自己用的,甚至还有一些纯粹就是秀肌肉的,等等。不同的用户画像,意味着报告需要展示的角度有区别;意味着分析的维度、切入点是不尽相同的。所以,我在每次开发报告之前,一定要问自己:这个报告是给谁看的?要解决什么问题?必须清楚的回答这个问题,然后才开始下一步。这里我们往往就能找到并明确分析报告的目的,分析维度,需要的数据。这些事情,一定是建模开始的大前提。

罗里吧嗦一大顿,来看下建模到底是要做什么的吧。

两件事:

第一件事:

确定表

两类表,一类是维度(筛选)表,另一类是事实(数据)表。

我们需要明确报告中要用到哪些表?哪些是维度表(筛选表)?需要哪些事实表(数据表)?

每个表里面需要哪些列(字段)?数据表的量级?(多少列?多少行?)对于不需要的字段、表,要有所取舍。

我们先看事实表(数据表)。因为大概率,我们要整报告了,一定是手头已经有了不少表、数据了。这些表里面,大概率是事实表。

事实表实际就是业务运行的流水记录表,是用来跟踪实际数据的。是记录明细数据的表,是分析的数据来源。比如:进销存流水、payroll、KPI目标清单、交易记录。。。

需要了解数据表有多大?多少行?几百行?几千行?几百万行?

我们写度量值,比如进行聚合运算时,通常是针对数据表的。

再来看维度表(筛选表)

按照分析的维度,建立适当的足够的维度表。维度表实际上也就是业务属性表的集合。

比如:想要按照日期来分析,那就要有日期表;想要按照时间来分析,那就建立时间表;想要按照客户分析,那就要有客户表;想要按照产品分析,那就要建立产品表;想要看人力资源的情况,那就要有无姓名重复的花名册表;

维度表中将来要用作建立关系用的字段(主键),要确保唯一,无重复。

维度表有时候可以通过处理事实表来获得:比如复制事实表,保留必要的列,并且对剩余列去除重复。

第二件事:确定它们之间的关系

在两个表中各选择一个字段,建立关联关系

推荐1对多,有些情况下会出现1对1。而且是从维度表指向事实表的1对多的关系,是单向的

不要用多对多,不要用多对多,不要用多对多。重要的事情讲三遍。

一般不要在事实表之间建立关系

星型的关系为首选,实际上,最好只用这种关系模型,并且后面的扩展和延升都是基于这种模型。

事实表在中心,维度表在外围,筛选方向从维度表指向事实表,建立1对多的关系。

星型的拓展:瀑布,或者雪花状的。这里其实就是对星型的向外扩展和延伸。这种延申扩展,实际上也仅仅是对维度表的,也就是出现了维度表的层级关系。这种关系也通过1对多或者1对1的关系,建立从高一级的维度表到低一级的维度表间的关系。而对于数据表之间,依然是不推荐建立任何关系的。尤其是多对多的关系。

星型建模的好处:

执行效率高,速度快

刷新速度快

逻辑清晰

好的建模应该是:

尽量用多表,也就是将数据按能细分为大类的形式,分到更多的表格中。并建立关系。减少并控制每个表中的列数,也就是字段数。列太多的时候,当数据行逐步增加时,会占用更大的内存,影响数据分析效率,更重要的是后续报告的可扩展性会比较差。

要保持维度表的唯一性。

控制减少冗余和前后矛盾的数据。不要搞太大的事实表。

保持数据的完成性。

优化存储空间。

提高数据加载刷新速度。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容