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文件的磁盘空间是不够的。
领取专属 10元无门槛券
私享最新 技术干货