powerbi的功能介绍_Power BI性能提升的5大秘密武器

edb1029a8b52f8e1548ce14c95b4fc2d.png

​Power BI无疑已经走了很长一段路,它以其作为自助服务工具的强大根基,易于使用的功能以及在企业领域的持续推动和推动而发展。但是,我们仍然可以发现许多开发和维护Power BI解决方案可以通过应用一些更改而受益匪浅,这些更改将导致Power BI解决方案响应速度更快,消耗的资源更少,更符合最佳实践并总体上表现更好。本文将和大家重点分享Power BI性能介绍和最佳实践的五大秘诀。

在Power BI中开发任何新的解决方案时,我们总是希望结合我们探索的所有技巧,以获取性能和最佳实践,因此,个人建议你也在整个Power BI开发过程中实施这些技巧。

秘诀一

减少列数,减少行数

在许多情况下,仅因为Power BI可以处理大数据量,我们才将所需数据加载到Power BI中。但是,随着解决方案开始向外扩展,这可能直接影响性能。通过选择“获取数据”按钮,适当的连接器以及连接类型(如果适用),将数据导入Power BI的过程完成后,我们还应该问自己以下问题:

  • 这些列/行是否可以帮助我们分析数据?
  • 这些列/行是否可以帮助我们进行决策?
  • 我们将在计算中使用这些列/行还是建立关系?

如果有问题的数据要提取到Power BI中,但不满足上述条件,我们应该将其排除在解决方案之外。比如:当仅需要分析今年的当前绩效与上一年的对比时,为什么要提取最近5年的数据呢?当我们只需要产品名称的一列时,为什么要导入产品维度的所有描述性列?同样,在提取数据时很容易加载所有内容而不进行此过程,但是要确保我们的Power BI解决方案消耗更少的资源并以最高的性能执行,我们应该使查询包含更少的列(窄)和更少的行(短)。

为了在上面添加一些细节,在将数据提取到Power BI中时,该过程将通过Power Query进行任何数据整形和数据转换操作,然后将数据加载到Power Pivot中,该数据是一个压缩的列式数据库,用于存储数据通过VertiPaq引擎存储在内存中。现在,我们不打算详细介绍VertiPaq引擎,但是要摆脱这一点非常重要的一件事是,VertiPaq引擎是列式存储引擎,因此可以压缩列。出于这个原因,我们应该更加注意我们要摄取的列数,而不是行数。这在下图中突出显示,我们最好少列多行。

36cf8505196d7d142c10e6c26e7e9873.png

秘诀二

将转换推向源端

Power Query是功能强大的数据转换和数据整形工具,可以轻松地直接在Power BI中直接处理转换。实际上,它是一个很棒的工具,我们可以尝试在Power Query中进行所有操作。但是,很多时候我遇到过使用各种类型的转换来处理数以千万计的行的解决方案,因此可以通过将一些工作负载推回源头来提高性能。

将工作负载推回源端,意味着什么?让我们分解一下以理解它。打开Power BI Desktop时,它是一块空白画布,因为平台中不存在任何数据,因此我们要做的第一件事是选择“获取数据”。从这里开始,我们选择合适的连接器以将数据提取到Power BI中。然后,我们可以选择“转换数据”,这将打开Power Query(相当于单击功能区中的“ Edit Queries”)。在Power Query中时,我们可以应用各种转换来成形数据,但是,重要的是要了解,在此阶段,我们仅将内存中的前1000行存储为预览。

Power Query首先将前1000行存储在内存中,然后在“应用的步骤”窗格中应用转换。

毕竟,这是有道理的,可以想象在使用Power Query并等待应用转换时将所有数据存储到内存中,这肯定会增加等待时间。实际上,这等效于每次应用转换时单击“关闭并应用”。因此,一旦我们完成所有转换的应用并且我们的数据处于预期格式,则单击“关闭并应用”,Power Query会将数据加载到Power Pivot,后者将所有数据存储到内存中,然后在已应用的步骤窗格中应用转换。

单击“关闭并应用”后,Power Query会将所有数据加载到Power Pivot并在已应用步骤窗格中应用转换。

现在我们已经掌握了以上知识,让我们回到将工作量推回源头意味着什么的问题?由于Power BI将数据存储在内存中,因此将所有数据加载到内存中然后应用转换效率要低得多,而不是直接在源中应用任何转换并将结果集简单加载到Power BI中。减少了处理数据导入所需的资源数量,并提高了查询性能。

现在,这可能意味着需要对基础数据源进行一些工作,在某些情况下,由于缺乏基础技术的技能,权限级别或适当的团队来执行所需的更改的等待时间,这些数据可能会受到一些阻碍。这将我们带到了查询折叠机制,该过程是将直接在Power Query中应用的所有转换(用M语言编写)转换为基础数据源的本地语言的过程,因此所有转换都不会在您的计算机上完成,而是在源代码方面。

cf5f543aae5fe1e1f86e7e2949edbda0.png

您可以直接在Power BI Desktop中利用查询折叠功能,但是您应该注意一些因素,例如:

  • 基础数据源必须支持接受查询折叠请求的概念。这包括关系数据库,OData源(例如SharePoint列表),Exchange和Active Directory。
  • 并非所有类型的转换都支持查询折叠,例如,如果您具有“删除最前面的行”,则不会将其发送回源端。
  • 一旦应用了不支持查询折叠的转换步骤,接下来要执行的所有其他步骤将要求首先将数据加载到内存中。

秘诀三

禁用查询负载

在许多性能优化的方案中,我发现许多表已加载到Power BI中,这些表不用于报告,建立关系或创建计算。在继续之前,任何加载到Power Query中的查询都将加载到Power Pivot,因此会消耗宝贵的内存。现在,存在这些表的常见原因是它们在Power Query中充当登台表,因此仅被摄取以转换另一组数据。

例如,你已经将包含所有员工详细信息的数据集“ A”摄取到Power BI中,但是,对于必须执行的分析,需要“ NI”列,该列存储在名为数据集“ B”的另一源中。因此,数据集“ B”也被加载到Power BI中,仅用于与数据集“ A”进行合并,并派生列“ NI”。

190c2b11024dd1acfc9e31c00aacc115.png

完成此操作后,通常可以将数据集“ A”和数据集“ B”都加载到Power Pivot中。请停止这步习惯性的操作吧!我们应该右键单击数据集“ B”,然后取消选择“启用负载”,这将禁用Power Query将该查询加载到Power Pivot中,因此不会不必要地消耗内存。

790360395a6282a97814556044570ecf.png

当我们禁止将查询加载到Power Pivot时,这并不意味着诸如刷新之类的转换将在刷新时中断。两个数据集之间在Power Query中应用的所有转换步骤都将运行,就像从未禁用该查询一样。唯一的区别是,它将不会加载到模型中并且无法用于报告,因此减少了内存消耗。

秘诀四

删除高基数列

在我们继续进行此技巧之前,重要的是要了解高基数列是指Power BI中提取的具有唯一值百分比很高的列。如前所述,数据已加载到Power Pivot(这是一个压缩的列式数据库)中,我们之所以要删除高基数列,是因为压缩高基数列时压缩工作效率低得多。

列包含的唯一值越多,压缩的效率就越低。

我们经常用来解释高基数列的示例是Power BI中通常提取的列,即“ DateTime”。如果我们使用的是三年的数据,则唯一日期的计数将为1095。现在,如果将日期和时间合并为一个列,则必须将1095乘以所有可能的时间组合。因此,如果我们存储的时间属性是一天中的小时,则“ DateTime”列中的单个值的格式为dd-mm-yyyy hh,则唯一值的数量将超过1095,而是乘以所有可能的时间值24,因为我们一天中有24小时。因此,从1095个唯一值开始,我们现在得到1095乘以24,即26,280。如果我们还有分钟和几秒钟,那么唯一值的数量将急剧增加,从而导致压缩效率降低。

要识别高基数列,我们可以使用Power Query中提供的“列分布”之类的功能,甚至可以更好地使用我们建议使用VertiPaq分析器来识别高基数列。重要说明,如果您在Power BI中使用列分配功能,则除非更改,否则这仅适用于前1000行。

6b7d615ff48b24fd388d7eb39257b55d.png

秘诀五

与星型图对齐

这是迄今为止官方一直推荐的Power BI中最重要的性能提示。实际上,至关重要的是,我们也将继续努力推动将你的数据建模为接近星型模式,解决你当前不知道的问题,并阻止在以后出现的问题。如果在创建Power BI解决方案时需要执行任何操作,则将使模型与Kimball Star Schema接近。

73534561c2e2ff57fe53718715f40554.png

0db60febed1ec31dd22063faaa6c7ee1.png

星型模式可以以较少的表和较少的关系来对Power BI中的数据进行建模,从而使所有内容尽可能地接近。

它由一个包含有用于测量的数字属性的事实表组成。考虑一下诸如收入或可用库存之类的数字列,这些数字列经过汇总和计数,以帮助我们进行数据分析。此外,星型模式在Fact表周围包含Dimension表,这些表具有用于向数字属性提供上下文的描述性属性。例如,我们通过“库存情况表”知道我们有300个可用库存项目,但是通过“产品尺寸表”,我们知道哪个特定项目。

使用星型模式的主要原因是为了更快地检索数据和创建可伸缩的BI解决方案。为了进一步分解,将数据建模为星型模式所带来的一些好处是:

  • 简洁性:易于阅读,使用和理解。事实包含要测量和计数的数字属性,而维度包含要过滤的描述性属性
  • 性能:较少的表以及表之间的关系较少,因此增加了数据检索时间
  • 功能:充分利用Power BI的向下钻取,追溯和其他各种功能来分析数据
  • 模型大小:由于限制表和关系的数量,减少了消耗的内存量
  • 可扩展性:易于扩展以适应新的尺寸,列和度量

从上面我们分享的所有技巧中,可以轻松地将数据模型与星型架构对齐,这是我们应该一直努力实现的最重要的技巧。更多Power BI 技巧请关注小悦,后续会有更多关于Power BI 性能技巧文章哦!

推荐阅读

Power BI模型中星型架构的重要性(一)​mp.weixin.qq.com
d0ffa8490bd2558fb5953740d8beab52.png
Power BI模型中星型架构的重要性(二)​mp.weixin.qq.com
1dd8cfa7916ad4706dd062ec4341aa32.png
【2020】Power BI 3月产品功能更新​mp.weixin.qq.com
52c7350d347b338ef84a42ad5998d097.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/488410.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

递归推导——猜年龄

一、问题描述 班里转来了一位新同学,他在介绍自己年龄的时候说:“我的年龄的平方是一个三位数,立方是一个四位数,四次方是一个六位数。三次方和四次方正好将0/1/2/3/4/5/6/7/8/9这10个数字全部覆盖。”,那么&#xff0…

matlab画布透明,MATLAB怎么生成带透明对象的矢量图

从很早的版本开始MATLAB就支持对patch、surface等对象设定透明属性,有些示意图也必须使用透明的对象才能充分展示所要表达的含义。对透明对象支持最好的通用图片格式就是.png了,但是png图像并非矢量图形,对于一些需要以矢量图显示的场合并不适…

综述:持续感知系统在边缘计算的应用

来源:《微纳电子与智能制造》随着边缘计算技术的兴起,各种各样的感知系统给人类带来了便捷高效的生活。以日常使用的手机为例,工程师为其置入了各种各样的传感器,并通过运行其上的机器学习算法,部署了很多便捷的功能。…

matlab fgoalattain,matlab优化工具箱 | 学步园

1工具箱概述1.1 功能(1)求解无约束条件非线性极小值;(2)求解约束条件下非线性极小值,包括目标逼近问题、极大-极小值问题和半无限极小值问题;(3)求解二次规划和线性规划问题;(4)非线性最小二乘逼近和曲线拟合;(5)非线性…

自保护、人机互动柔性织物传感器研究取得进展

来源:中国科学院宁波材料技术与工程研究所可穿戴柔性电子器件,因其柔性/拉伸性、质轻、成本低、便携等特性,被广泛应用于人体运动/人体健康的实时监测、人机/脑机交互以及机器学习等领域。但目前仍存在灵敏度及响应速度较低、检测下限较高、检…

Hibernate第十一篇【配置C3P0数据库连接池、线程Session】

Hibernate连接池 Hibernate自带了连接池,但是呢,该连接池比较简单..而Hibernate又对C3P0这个连接池支持…因此我们来更换Hibernate连接池为C3P0 查看Hibernate自带的连接池 我们可以通过Hibernate.properties文件中查看Hibernate默认配置的连接池 hibern…

npm 切换源_【分享吧】verdaccio搭建npm私有仓库

verdaccio搭建npm私有仓库前言随着前端技术的不断发展,前后端分离已成为主流趋势,这就导致了前端承受的分工压力会越来越大,前端项目也将变得十分庞杂,因此在技术方面会考虑按照业务线进行拆分成几个业务系统。这些系统之间如何共…

疫情中的人工智能和大数据“社会实验”,将如何影响我国经济社会发展

来源:三思派最近,上海市科学学研究所编制了《人工智能、大数据支撑新冠肺炎疫情防控报告(1.0版)》。报告预测,疫情过后,人们的生活和工作方式都可能向更加智能化方向发展,一个以智能化、无人化、…

IBM强化Watson对商业语言的理解能力—AI辩论一些关键技术首次商业化

来源:IBM中国2020 年 3 月 11 日,商业人工智能领域领军者 IBM[1]宣布推出几项全新的 IBM Watson 技术,旨在帮助组织机构更清晰地识别、理解和分析英语语言中某些最具挑战性的方面,从而获取更多洞察。全新的 IBM Watson 技术代表着…

删除快捷方式小箭头_修复快捷方式的箭头图标

前一天晚上,用360清理缓存文件后,早上起来一看快捷方式的箭头图标不见了,左下角变成了一片白色。试了很多方法,比如说删除iconcache.db,然后重启资源管理器等等,发现没有用。然后,装上360桌面助…

如何实现对外部php文件的调用,laravel如何引用外部文件

laravel如何引用外部文件,主视图,视图,文件,方式,内容laravel如何引用外部文件易采站长站,站长之家为您整理了laravel如何引用外部文件的相关内容。(1)、首先在app\Http\routes.php中定义路由;Route::get(view,ViewControllerview);Route::get(article,V…

清华大学人工智能深度报告:八大维度解析机器学习

来源:世界人工智能大会机器学习(Machine Learning,常简称为 ML)已经成为了当今的热门话题,从机器学习概念诞生到机器学习技术的普遍应用经过了漫长的过程,众多优秀的学者为推动机器学习的发展做出了巨大的贡…

【周末阅读】5G时代新型基础设施建设白皮书

来源:智东西【导读】当今世界,新一代信息技术与经济社会深度交融,正引领全球新一轮科技革命和产业变革,其速度、广度、深度前所未有。加快 5G 商用和人工智能、工业互联网、物联网等新型基础设施建设是发挥投资关键作用&#xff0…

pandas取出某一列_Pandas高级运算 | apply与applymap方法详解

大家好,今天我们来聊聊pandas的一些高级运算。在之前文章中,我们介绍了panads的一些计算方法,比如两个dataframe的四则运算,以及dataframe填充Null的方法。今天这篇文章我们来聊聊dataframe中的广播机制,以及apply函数…

深度|​揭秘5G+AI时代的机器人世界!七大核心技术改变人类生活!

来源:电子工程世界AI 和 5G 与机器人技术结合,正在不断催生新的消费电子品类。AI 解决机器理解世界,以及人机交互的问题。5G 拓展机器人的活动边界,并为机器人提供更大的算力和存储空间(云协作机器人) 。根…

点击按钮,缩放图片(img.width、img.style.width、img.offsetWidth)

前几天在慕课网上看到一个关于图片缩放的教学视频,因为当时对老师使用img.width,而不是使用img.style.width而感到奇怪,所以周末得空了,想来自己试着写出来,相关视频网址如下:http://www.imooc.com/video/1111&#xf…

sql怎么继续编辑已经保存的代码_某团购CMS的GETSHELL操作代码审计

作者:会上树的猪合天智汇 0x00 写点废话在渗透测试中,获取一个webshell应该是我们不屑的追求,今天要通过这个CMS从代码的角度看一下可利用的getshell的方法。这一次的代码审计需要借助工具来定位可能存在的漏洞点,选择Seay源代码审…

测温枪的工作原理全面解析,如何测出你的温度

来源:世界先进制造技术论坛内容来源:网络测温枪,学名是“红外线测温仪”或者“红外线辐射测温仪”。它的原理是:被动吸收目标的红外辐射能量,从而获得物体温度数值。这次疫情,让这个小东西一下子&#xff0…

mysql不要放docker,Docker从入门到放弃

本文将以比较简单的的方式让大家理解docker,以平时常用到的测试环境为主,从用开始,慢慢理解docker。0x00 用docker进行漏洞测试0x01 docker运行busybox0x02 Docker 搭建运行apache-php环境0x03 用Dockerfile自动化构建可ssh登陆的镜像0x04 Do…

一个对称性解释三个宇宙学难题;引力波碰撞会发光?粘液霉菌助力寻找宇宙网 | 一周科技速览...

来源:返朴撰文 :董唯元、杨凌、顾舒晨、洪俊贤、太阁尔、姜小满目 录1. 一个对称性解释三个宇宙学难题2. 引力波碰撞会发光?3. 粘液霉菌助力寻找宇宙网4. 听,是杂质原子的声音5. 更快了!地球的大型生态系统在崩溃6. 究…