介绍 Power BI 统一数据建模最佳实践,需要在不同层面进行。例如:要有框架,有技巧,有设计,有模式,有重构,有组织,有协调。本文来讲其框架。
自从 2022 年的 10 月版本更新以后,PowerBI 提供了在模型视图开放公式编辑区的能力,这样终于实现了一个本来就应该实现的功能:在模型视图统一编辑管理所有内容。
PowerBI 的界面中,有很多设计不太合理,其中之一就是:
在模型视图中可以连线构建数据模型,但是却不能新建计算列和度量值,这必须去数据视图;然而,在数据和报表视图希望拖拽度量值到某个表或文件夹又不可以;又要返回模型视图。
这么反人类概念与交互的设计居然可以在 Power BI 这种产品中存在这么久(7 年以上),现在终于调整了这个设计。
当然,还有很多其他问题,我们只能默默等待产品组的调整。
在模型视图有了编辑能力后,那么,建立数据模型的方式和工作流程可以更加清晰了。
在 Power BI 的界面中,主要有三个分区:
如下所示:
以上描述,更准确地划分了不同区域的能力。
关于如何在 Power BI 中工作的流程,其实没有太多人探讨,从工程学的角度,的确值得探讨。作为程序员,可能会用过类似 Visual Studio 之类的编程框架工具,在初始化环境的时候,都会问一下你希望用怎样的工作方式,如:标准默认,Web 开发,Code 优先等。这将让操作的界面来适配一种推荐的工作流程。不是程序员的伙伴会经常用 PPT,制作 PPT 的流程是什么呢?有没有思考过这个问题呢。例如,有人会一页一页做,做的时候想这个地方做什么图。有人就是先写文本,最后再优化,这就是不同的工作流程。
插曲 很多人做 PPT 也没有遵循好的工作流程,这里推荐:BI 佐罗出品的《脑图 PPT》构建流程和模式,这是以内容创作和影响力为目标的最实用工作流程了。BI 佐罗几乎所有的内容工作需要 PPT 的时候都会依赖这套方法。
Power BI 的常见工作流程就是:随意瞎做,没有流程。在随意瞎做的过程中,大家也是想到什么图放一个,然后再写公式。
关于 Power BI 的创作工作流程,我们再单独去讨论。这里讨论一下 Power BI 工作流程中的 DAX 数据建模流程。
数据建模,指的是构建数据模型以及对数据模型进行增强的过程。
注意 数据建模本身,其实与 DAX 无关,是一个通用概念,但在 Power BI 的工具体系下,数据建模就是 DAX 数据建模。如果是其他工具,也许是 XXX 数据建模了。
在常见的说明中,数据建模过程就是该过程本身,没有再度细分。但在《BI 真经》的实践中,我们将数据建模分为两个子过程:
这种概念在 Power BI 官方是没有的,是我们根据实际工作所提炼出得最佳实践。
数据建模的第一步,数据建模,又称:静态数据建模。指的是:
将表之间连线构成数据模型的过程。这个过程的设计是静态的,只需要根据表之间的一对多关系进行表的连接即可。
通常这个过程不会反反复复,因此,一旦完成,相对比较稳定,因此称为:静态。
该过程的特点如下:
在 Power BI 的模型视图,可以完成上述所有操作,例如:
在静态数据建模过程中,有一个非常关键的过程,该过程并不出现在 Power BI 的官方能力认证考试中,但我们将该能力视为重要能力,如下:
注意 以上内容全部不在 Power BI 官方能力认证中,然而,这是必须的。几乎 99.99% 的人如果没有接受过系统化训练,必然不会按照一个正确流程设计工作,导致后期工作出现问题隐患或低效工作。
通过静态数据建模,我们已经得到了基本数据材料,可以进行一些分析或者创作,但马上问题就来了,会遇到两个问题:
为了填补以上的缺失,我们需要对已经基本完善的数据模型再做一些增强。
数据建模的第二步,模型增强,又称:动态数据建模。指的是:
为数据模型添加计算列,计算表,度量值并进行组织管理的过程。这个过程的设计是动态的,需要测试,需要不停调整。
通常这个过程会反反复复,会调整各种度量值,名称,逻辑,以及重构,因此称为:动态。
如下所示:
现在,可以在模型视图统一完成所有工作。
注意 如果你无法在模型视图看到公式栏,那么,请下载安装最新版的 Power BI Desktop。可以在:excel120.com/#/pbid 获取。
这包括:
注意 以上某些词汇并非 Power BI 领域,属于最佳实践中需要了解的内容,这里不再展开,在此前文章有讲解。
现在我们可以做到的体验是这样的:
根本不打开报表视图,直接在模型视图,完成动态数据建模。
写好需要的各种度量值,各种计算列。
我们将该过程称为:模型驱动的 Power BI 工作流程。
在 Power BI 中至少有三种工作流程:
图表设计驱动的工作流程,是乙方为甲方做内容,属于一种倒推法。甲方预先规定了可视化的需求,因此,乙方只需要按照这些可视化需求来设计即可。因此,模型本身的能力也被弱化了。甚至,根本不需要数据模型的灵活性,完全对照甲方需求实现即可。
模型设计驱动的工作流程,是甲方为甲方做内容,自己为自己做分析,属于一种演绎法。甲方根据自己的数据和可能用到的业务逻辑,在模型视图不停输出,报表视图被作为测试区域,以及分析区域,更在乎自己要做出自己的要的计算,而不在意可视化本身。
实际中,可以将图表设计驱动的工作流程和模型设计驱动的工作流程混合使用,满足各种场景。
还剩下一个缺陷就是:批量改名,计算组的编辑需要依赖于外部工具,如:Tabular Editor。这些本该属于 Power BI 模型编辑的能力还需等待未来的更新。
Power BI 的静态数据建模,是一种下棋的布局,布局是好的,可以帮助锁定胜局打下良好基础。
Power BI 的动态数据建模,是每一个具体的招式,基于好的布局运用有效的招式就可以得到最好的结果。
整个思维框架非常清晰,不完美的部分,现在可用 Tabular Editor 补充,未来还是希望 Power BI 自身原生可以实现所有支持。