前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >如何查看 PowerBI 数据模型到底占用了多少内存

如何查看 PowerBI 数据模型到底占用了多少内存

作者头像
BI佐罗
发布2021-03-10 15:24:57
发布2021-03-10 15:24:57
4.3K0
举报
文章被收录于专栏:PowerBI战友联盟PowerBI战友联盟

很多伙伴问起,如何查看 Power BI 数据模型到底会占用多少内存,这的确是个问题。本文对此做出简单说明。

大家都知道 Power BI 会对数据进行类似压缩的存放,这就导致数据模型占用内存的空间其实是动态的。本文先来揭示这个过程,再给出查看内存占用的方法。

PowerBI 的 PBIX 文件大小表示了存放在硬盘上的所有内容,因此,它并不能真实反应数据模型的大小。

数据模型的压缩与解压缩

在我们加载数据进入 Power BI Desktop 以后,数据会被编码(类似高度压缩)重新存放,这会降低实际数据大小,一般是在硬盘上保存大小的十分之一,甚至压缩程度更甚。

但是在进行某些操作的时候,被压缩了的数据可能会重新解开压缩释放出来。这就好比是编排好的书,放在书架上,如下:

现在的问题是,如果你要找某几句话,你就需要把书架的书重新摊开,再找,如下:

很显然,把书全部铺开的话,会占用很大很大的桌子。

Power BI 是这样工作的:

  • 打开 Power BI 后,会读入硬盘的压缩好的数据,就是一个整齐的书架的书,放在内存里,内存就是桌子。
  • 当进行某些操作后,书就会在内存中展开,然后完成相应的操作,再合上书,回归到整齐的状态。

这个过程容易理解。那么问题来了:

什么操作会导致解开压缩,也就是展开堆放整齐的书呢?

导致数据模型解压缩的操作

以下操作将导致解压缩或者部分解压缩:

  • 计算列,尤其是复杂的计算列。
  • 度量值,在查看某图表,而该图表的计算由复杂的度量值参与。

在 Power BI 的 DAX 引擎中,将压缩整齐如书架的数据重新摊开数据放在桌面上再进行操作的这一解开压缩的过程称为:物化

什么时候会发生物化呢?如何判断什么样的计算列或者度量值会导致物化的发生呢?

这需要一定的 DAX 高级知识。但显然,我们在这里会为业务伙伴给出一个简单的判断方法:

如果某个计算涉及到复杂的逻辑,那么很有可能会出现物化的过程。

我知道你想问:什么算是复杂?

有两个方法:

  • 先学习复杂的高级 DAX 理论,然后去预测。
  • 直接用,不断积累经验。

对大部分伙伴,尤其是业务伙伴,罗叔推荐后者。

经验 作为一种经验,对数据进行直接的聚合运算,如:SUM,MAX 等,是不会出现物化的;而要进行你都觉得很复杂的逻辑转换,那很有可能会出现物化的情况。

因此,对于 IT 人员来说,通常会将复杂计算列的构建,放在数据源的阶段进行,而不能推迟到数据模型里,否则,就会遇到 DAX 引擎的错误:等内存更多时再进行本操作。

查看静态数据模型大小

我们已经理解了数据模型的大小可能随着某些操作,导致动态变化,我们将如下状态的数据模型称为静态数据模型,如下:

  • 数据模型全部加载后,计算列计算完成。
  • 没有用户操作。

一般我们以这个标准来查看数据模型的大小,并应该保证内存至少是这个大小的 2 倍左右。

我们可以通过 DAX Studio 来解决这个问题。在 DAX Studio 的高级部分,点击View Metrics,如下:

这就是数据模型的大小了,当然还可以查看不同表和列的大小细节。这些内容我们可以后续介绍。

总结

本文解释了 Power BI 数据模型动态压缩的情况,并给出了查看静态大小的方法。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据模型的压缩与解压缩
  • 导致数据模型解压缩的操作
  • 查看静态数据模型大小
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档