前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PowerBI 统一数据建模最佳实践 - 框架篇

PowerBI 统一数据建模最佳实践 - 框架篇

作者头像
BI佐罗
发布2022-12-20 15:48:45
3.4K0
发布2022-12-20 15:48:45
举报
文章被收录于专栏:PowerBI战友联盟PowerBI战友联盟

介绍 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% 的人如果没有接受过系统化训练,必然不会按照一个正确流程设计工作,导致后期工作出现问题隐患或低效工作。

通过静态数据建模,我们已经得到了基本数据材料,可以进行一些分析或者创作,但马上问题就来了,会遇到两个问题:

  • 发现缺乏相关所需数据字段,例如:没有 80,20 分析的相关字段,没有退货数据,没有订单发货天数字段。
  • 发现缺乏相关所需计算逻辑,例如:没有利润率等复杂逻辑计算字段。

为了填补以上的缺失,我们需要对已经基本完善的数据模型再做一些增强。

数据建模第二步:模型增强

数据建模的第二步,模型增强,又称:动态数据建模。指的是:

为数据模型添加计算列,计算表,度量值并进行组织管理的过程。这个过程的设计是动态的,需要测试,需要不停调整。

通常这个过程会反反复复,会调整各种度量值,名称,逻辑,以及重构,因此称为:动态。

如下所示:

现在,可以在模型视图统一完成所有工作。

注意 如果你无法在模型视图看到公式栏,那么,请下载安装最新版的 Power BI Desktop。可以在:excel120.com/#/pbid 获取。

这包括:

  • 构建度量值
    • 名称
    • 内容
    • 格式化
    • 主表
    • 分类归属
    • 说明
    • 同义词
    • 隐藏和显示
    • 格式化
    • 自定义格式化
    • 数据类别
  • 构建计算列
    • 上述内容
    • 按列排序
    • 汇总依据
  • 构建计算表
    • 上述内容
    • 表存储模式
  • 重构
    • 设计模式
    • 隐透视表
    • MVC 设计模式
    • 预计算
    • 静态化

注意 以上某些词汇并非 Power BI 领域,属于最佳实践中需要了解的内容,这里不再展开,在此前文章有讲解。

现在我们可以做到的体验是这样的:

根本不打开报表视图,直接在模型视图,完成动态数据建模。

写好需要的各种度量值,各种计算列。

我们将该过程称为:模型驱动的 Power BI 工作流程。

再看工作流程

在 Power BI 中至少有三种工作流程:

  • 默认流程。(没有任何模式的方法,完全自己想到哪里做到哪里即可,99% 是这样的。)
  • 图表设计驱动的工作流程。
  • 模型设计驱动的工作流程。

图表设计驱动的工作流程,是乙方为甲方做内容,属于一种倒推法。甲方预先规定了可视化的需求,因此,乙方只需要按照这些可视化需求来设计即可。因此,模型本身的能力也被弱化了。甚至,根本不需要数据模型的灵活性,完全对照甲方需求实现即可。

模型设计驱动的工作流程,是甲方为甲方做内容,自己为自己做分析,属于一种演绎法。甲方根据自己的数据和可能用到的业务逻辑,在模型视图不停输出,报表视图被作为测试区域,以及分析区域,更在乎自己要做出自己的要的计算,而不在意可视化本身。

实际中,可以将图表设计驱动的工作流程和模型设计驱动的工作流程混合使用,满足各种场景。

不完美的地方

还剩下一个缺陷就是:批量改名,计算组的编辑需要依赖于外部工具,如:Tabular Editor。这些本该属于 Power BI 模型编辑的能力还需等待未来的更新。

总结

Power BI 的静态数据建模,是一种下棋的布局,布局是好的,可以帮助锁定胜局打下良好基础。

Power BI 的动态数据建模,是每一个具体的招式,基于好的布局运用有效的招式就可以得到最好的结果。

整个思维框架非常清晰,不完美的部分,现在可用 Tabular Editor 补充,未来还是希望 Power BI 自身原生可以实现所有支持。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-12-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PowerBI战友联盟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 吐槽
  • 界面框架
  • 工作流程
  • 数据建模最佳实践
  • 数据建模第一步:数据建模
  • 数据建模第二步:模型增强
  • 再看工作流程
  • 不完美的地方
  • 总结
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档