你是否真的知道你的 PBIX 文件到底有多大?

 

 

 

​Power BI错误:“文件太大,无法发布。Power BI支持高达1024 MB的文件“…为什么发布不了呢?我的Power BI文件远低于1GB!

 

以上问题场景是不是非常常见?一旦数据被处理并存储在内存中,我们就会经常去讨论如何真正掌握Power BI文件实际大小。既然如此,那今天小悦就和大家来分享两种方式来帮助让我们真正掌握Power BI文件的实际大小(有些小伙伴对此可能不谋而合了),我们步入正题。

 

 

为什么这很重要?

在我们开始讨论解决方法之前,先了解下我们为什么要导出Power BI文件(基础数据集)的真正内存使用情况,这是非常重要的。

 

第一个也是最明显的原因是,当我们从desktop将报表发布到Power BI Pro 云服务时,我们的license是有1gb的限制,所以超过1GB将限制我们发布到Power BI服务。

 

另外,删除自动生成的数据表、不必要的计算列和大量内存的转换等方式来开始优化Power BI文件的过程也是我们常用的手段。但是,这样的处理并没有事先获取当前内存占用状态的快照,因此并不知道什么样的更改有助于性能提升。

 


文件资源管理器显示真相

 

文件资源管理器确实向我们展示了真相,但这也只是真相的一部分,所以这就可能会误导我们。以下面的Power BI报告为例:

 

 

从上面的截图中可以看到,通过查看文件资源管理器中的大小,PBIX文件的大小为1.2MB(1238KB)。另外,当我们查看Power BI中获取的所有数据文件时,总大小为2.8MB。但是,当我们将获取的数据在Power BI中将其处理到内存中时,它可能会大于PBIX文件的大小,这是因为发生了一些压缩,而其他各种元素又不会通过磁盘显示出来。

 

所以,当我们收到各种各样的错误提示时,我们的Power BI文件太大,但我们看到其在磁盘上的显示又是在1GB限制下,这就让人很尴尬了….但是,正如前面提到的,一旦数据被处理到内存中,由于压缩和其他各种元素,它可能会比我们在磁盘上看到的更大,但是由于压缩仍然低于获取的数据源的总大小。

 

我们如何看待真正的内存消耗呢?

现在将介绍两种方法,我们可以通过VertiPaq分析器和DAX studio来确定对内存消耗情况。当然,你可能会通过各种其他方法来显示Power BI文件的内存消耗,例如使用任务管理器或从SQL Server management studio建立到底层analysis services实例的连接。但是,我们还是比较推荐使用VertiPaq分析仪和DAX studio!

 

VertiPaq Analyzer

VertiPaq Analyzer是一个Excel文档,它有一个Power Pivot插件,支持与Power BI模型建立连接。通过它我们可以确定内存消耗,哪些对象消耗了大部分内存,同时也为我们提供了组成Power BI文件的其他因素的综合视图,如表、列、层次结构、关系等。

打开VertiPaq Analyzer Excel文档,并通过一组查询与底层Power BI Analysis Services实例建立连接后,将检索并显示以下信息:

 

 

从上面的截图中可以看到,我们的模型中的所有表都显示在行中。我们也在列中列出了各种指标。我们将不深入探讨这些问题,因为本文的范围仅显示内存消耗。

 

通过查看下面的内容,每周零售分析解决方案的Power BI数据集的总大小为1.6MB。这是通过查看“Table Size”列的向下合计来确定的:

 

 

所以,可以看到我们最初认为的Power BI数据集是1.2MB,而实际上是1.6MB。我们在磁盘上看到的与通过VertiPaq分析器获得的更精确视图之间的差异取决于各种元素。以下是一些指标的列表,这些指标为我们提供了一些内存消耗方面的见解:

 

•“Table Size”(表大小):表的大小,它是以下所有值的总和-不包括列的总大小

•“Column Total Size”(列 总大小):与立柱相关的所有结构尺寸

•“Data Size”(数据大小):分区中的所有压缩数据

•“Dictionary Size”(字典大小):具有唯一值的字典结构

•“Columns Hierarchy Size”(列层次结构大小):为列自动生成层次结构

•“User Hierarchy Size”(用户层次结构大小):用户定义的层次结构

•“Relationship Size”(关系大小):表之间的关系

 

 

如果你想知道为什么总“表大小”与“列总大小”不同,这是由于某些情况,例如关系是表结构的一部分,而不是列。因此,“Column Total Size”由“Data Size”、“Dictionary Size”和“Hierarchy Size”组成。因此,为了获得内存消耗的完整视图,我们使用表而不是列大小。

 

 

DAX Studio 

另外,我们还可以使用Dax studio,一个用于编写、执行和分析DAX代码的工具,它可以帮助我们优化和调试。同样,这是通过建立与Power BI模型的连接。

 

以前,我们无法通过Dax studio中的VertiPaq Analyzer查看度量,但是,现在可以通过最新版本的DAX Studio获得这些度量。此外,我们现在可以通过Power BI桌面直接访问Dax studio。如果你还没有检查过外部工具,那么一定要检查外部工具!如果你还没有将Dax studio配置为在“外部工具”下显示,你可以通过应用程序直接打开该工具。

 

 

现在,我们已打开 DAX Studio,你应该转到"Advanced "(高级)选项卡并选择"View Metrics"(查看指标),以显示 VertiPaq Analyzer Excel 文档中我们可用的相同指标。

 

 

从上面的截图中可以看到,我们再次将模型中的所有表显示在行中,而度量值显示在列中。这里我们有所有单独表的大小,我们还可以展开它来查看这些表的各个列的详细信息。但现在,我们想看看我们模型的实际大小。在excel文档中的VertiPaq Analyzer中,我们有汇总的总数,因此我们可以轻松确定我们的每周零售分析解决方案为 1.6 MB。

 

要在此处执行此操作,我们只需在“Summary”选项卡上选择,该选项卡将显示以下信息:

 

 

再次,我们可以看到我们的Power BI文件的总大小是1.62MB。正如前面提到的,这些度量在DAX Studio中并不总是可用的,所以当它们被引入时,它是一个很好的补充,因为你可以显示所有的核心度量,你也可以使用它来优化和调试DAX代码。我们还可以导出这些指标,并将其发送给可能更好地理解底层数字的个人。

 


结论

当你下一次遇到再出现同样问题的时候,说明你的文件应该是超出了大小限制,但你现在应该能够使用上述任一方法来深入了解你的内存消耗,因为仅仅通过看占用Power BI文件的磁盘空间是不够的。

 

 

推荐阅读

 

【2020】Power BI 9月功能更新

欢迎来到Microsoft Ignite 之 Power BI 博览会

【2020】Power BI 8月产品功能更新

商业数据分析大师进阶之路

为什么Power BI运行两次我的SQL查询?

 

 

技术交流

1.Power BI免费下载:http://www.yeacer.com/

    Microsoft Power BI Desktop中文最新版:下载地址

2.欢迎加入的Power BI技术群,目前正在学习阶段,有兴趣的朋友可以一起学习讨论。 

   Power Data技术交流群:702966126 (验证注明:博客园Power BI) 

   更多精彩内容请关注微信公众号:悦策PowerBI          


如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载。
posted @ 2020-11-04 09:48  PowerBI365  阅读(1175)  评论(0编辑  收藏  举报