151-模型-Power BI&Power Pivot模型DAX函数使用量分析
151-模型-Power BI&Power Pivot模型DAX函数使用量分析
1、背景
我们在 Power BI 或者 Power Pivot 项目中会写很多的 DAX 表达式。在最后项目交付的时候,我们也想看看我们的 DAX 到底写了多少,那么应该怎么去实现呢。
我们先来看看最后的效果。
我们也把文件这个 Power BI 报告发布到了公共的 web 上大家可以通过下面的链接查看。
URL:https://jiaopengzi.com/demos/pbi/151-full.html
上图度量值对应课程:https://jiaopengzi.com/video/video-101
2、模板复用
我们已经把这个度量值 DAX 使用量的分析做成了模板,只需要把你的度量值直接放进去就可以得到属于你的度量值使用量分析报告了。
步骤1
打开你的 Power BI 或者 Power Pivot 模型,使用 DAX Studio 连接上模型。同时在编辑框里面输入:
select * from $SYSTEM.MDSCHEMA_MEASURES
步骤2
输入上述代码后,选择导出文件。
步骤3
点击左上角运行(Run);选择Unicode的类型,导出的数据对中文友好,不乱码。
默认是UTF8类型,这也是很多人在用 DAX Studio 导出数据时,总是中文乱码的原因。
步骤4
导出的csv文件,放在我们的模型的csv文件夹里面,名称随意。
步骤5
打开模型文件,进入到 Power Query 界面,把 Path 参数修改为你自己的路径,最后不需要加上 “\” ,点击关闭并应用。
步骤6
点击刷新,等待片刻后就得到了我们自己度量值 DAX 函数的用量分析了。
3、模板应用结果展示
我们来看看另外两个模型的度量值 DAX 用量分析结果。
Power BI 展示
这个是我们之前文章《Power BI Report Server之某消费品运营数据监控》的示例文件的度量值结果。
这也是一个企业的实际案例,可以看到其实用不了多少 DAX 函数就可以得到一份 Power BI 报告,有兴趣可以根据URL去看原文。
URL:https://jiaopengzi.com/670.html
Power Pivot 展示
我们再来看一个 Power Pivot 的展示结果,这是一个也是综合的案例。由于数据脱敏的原因,后面这个两个文件就不会共享出来。我们只看一下这个度量值的 DAX 用量的分析结果。
4、思路解析
我们想要分析度量值里面的 DAX 函数用量,首先要拿到所有的度量值,这个可以通过 DAX Studio 和 Tabular Editor都可以实现,本案例是用的DAX Studio实现的。
度量值拿到了以后,我们需要对度量值进行分词,起初我是用的Python来分词的,来回倒反而不方便,后来直接用PQ来实现,其中关键的PQ函数就是 Text.SplitAny
,通过分词以后我们就可以拿到度量值里面的所有 DAX 函数了;这就是分析中的事实表。
接下来就是 DAX 分析的维度表,最开始我是用 DAX Studio 导出来所有 DAX 函数,发现其实里面的函数分组有一些问题并且和官方文档的函数分组有差异,索性就放弃了这个方式,直接用PQ去爬去的官方文档。
我们来看看两个分组的区别。
最后维度表拿到了以后,我们就可以直接分析了,当然我们分析就做了一个词云的分析以及使用的数量排名,大家也可以根据自己的需求做更多的分析。
5、总结
- 这个案例的使用主要还是对有相当基础的,初学者不必过多去研究如何做的,直接套用模板使用即可。
- 度量值几乎没有难度,主要是 PQ 对维度表在官方文档的爬去有一定难度。
附件下载:https://jiaopengzi.com/2582.html
by 焦棚子
151-模型-Power BI&Power Pivot模型DAX函数使用量分析的更多相关文章
- 155_模型_Power BI & Power Pivot 进销存之安全库存
155_模型_Power BI & Power Pivot 进销存之安全库存 一.背景 谈进销存的概念时,我们也需要提及另外一个概念:安全库存. 库存周转在理想的状态下是做到零库存,但是在内部 ...
- Microsoft宣布为Power BI提供AI模型构建器,关键驱动程序分析和Azure机器学习集成
微软的Power BI现在是一种正在大量结合人工智能(AI)的商业分析服务,它使用户无需编码经验或深厚的技术专长就能够创建报告,仪表板等.近日西雅图公司宣布推出几款新的AI功能,包括图像识别和文本分析 ...
- .NET平台开源项目速览(19)Power BI神器DAX Studio
PowerBI更新频繁,已经有点更不上的节奏,一直在关注和学习中,基本的一些操作大概是没问题,更重要的是注重Power Query,M函数,以及DAX的使用,这才是核心. 上个月研究了DAX的一些 ...
- 小目标 | DAX高级实践-Power BI与Excel联合应用
· 适用人群:数据分析专业人士,在数据分析方向需求发展人士 · 应用场景:数据汇报.数据可视化展现.数据建模分析 · 掌握难度:★★★★☆ 本期讲师 DAX高级实践-Power BI与Excel联合应 ...
- 2019微软Power BI 每月功能更新系列——3月Power BI 新功能学习
Power BI3月产品功能更新发布啦!本次新功能新增了热图和单选切片器:完善了新的DAX功能和对现有功能的改进(例如按钮和选择窗格):同时官方表示建模视图的全面改进也正在进行中~Woo~那么,本月更 ...
- 2018 ,请领取您Power BI 年终报告
Power BI365 3Jan 2019 新年已至,岁寒温暖! 为方便Power BI用户们能快速找到所需要的Power BI各类型文章,小悦将2018年Power BI的所有精彩文章按照各应用场景 ...
- 您应该将报表从Excel转换为Power BI的8个原因
传统上,Microsoft Excel是企业的首选报告工具,但Power BI为企业提供了强大的分析和报告功能.通过快速实验可视化,广泛数据集的统计功能和计算,以及快速重组字段动态获得答案的能力,很明 ...
- Power BI免费版(Free),专业版(Pro)以及增值版(Premium)授权功能对比, Server
Features of Power BI Report Server and the Power BI service Features Power BI Report Server Power BI ...
- 123_Power Pivot&Power BI DAX函数说明速查
博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 说明 1.基于DAX Studio 2.9.2版本导出整理: 2.DAX Studio网站,及时更新下载,DAX学习利器: ...
随机推荐
- 在原生CSS中使用变量
本文首发于我的博客 一直以来,CSS作为一种申明式的样式标记语言,很难像如javascript等命令式编程语言一样通过定义和使用变量的方式来维护和追踪某些状态.后来随着scss,less等CSS预处理 ...
- vue重构--H5--canvas实现粒子时钟
上一篇文章讲解了如何用js+canvas实现粒子时钟,本篇文章 ,主要是使用vue重构,让它在vue也能使用. 我们使用简单的方式重构,不使用vue工程,先加入vue cdn的地址,如下: <s ...
- [护网杯 2018]easy_tornado 1
复现一道关于tornado的题目 首先可以得知此题用的是tornado,基于python的后端框架,多半是ssti注入 有三个文件,首先可得知flag在何处 然后观察hint和url就知道要根据coo ...
- Reflect.has检测对象是否拥有某个属性
Reflect.has({x: 0}, 'x'); // true Reflect.has({x: 0}, 'y'); // false // returns true for properties ...
- springboot+maven实现模块化编程
1.创建新项目repo-modele 2.右键Repo_modele -> New -> Module-->next 分别创建bs-web,bs-service,bs-entity, ...
- 线性表(python实现)
线性表 1 定义 线性表是由 \(n(n>=0)\)个数据元素(节点)\(a1.a2.a3.-.an\) 成的有限序列.该序列中的所有节点都具有相同的数据类型.其中,数据元素的个数 \(n\) ...
- Postman大势已去
作为一名前端,日常开发过程中除了写业务代码,前后端联调更是重要的一环.但这一环却往往是整个开发中最繁琐也最累人的一环.任谁都想早点下班,然而提升联调效率并不是个纯技术相关的问题,而是需要有良好工作流程 ...
- 论文解读(S^3-CL)《Structural and Semantic Contrastive Learning for Self-supervised Node Representation Learning》
论文信息 论文标题:Structural and Semantic Contrastive Learning for Self-supervised Node Representation Learn ...
- AngularJS ui-router 用resolve、service预先加载数据写法,属于优化性能方面吧
AngularJS的service怎么声明此处就不再赘述,下面的例子是ui-router中使用service的实现代码 $stateProvider.state('myState', { url: & ...
- CesiumJS 2022^ 原理[3] 渲染原理之从 Entity 看 DataSource 架构 - 生成 Primitive 的过程
目录 API 用法回顾 1. 为什么要从 Viewer 访问 Entity API 1.1. 高层数据模型的封装 - DataSource API 1.2. 显示管理器 DataSourceDispl ...