前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PowerBI数据模型优化,从导入数据开始

PowerBI数据模型优化,从导入数据开始

作者头像
大海Power
发布2022-04-11 19:02:05
1.1K0
发布2022-04-11 19:02:05
举报
文章被收录于专栏:用户8950297的专栏

最近,不少朋友在群里提到,打开Power BI文件、刷新数据、做报表等过程中,经常出现运行比较慢的情况。

虽然说,PBI运行慢的原因很多,可能跟硬件、系统资源占用、软件版本、软件冲突、数据源类型(数据库还是Excel文件等)、数据量大小、数据模型(包含数据处理步骤和算法复杂度等)的构建方法等等……等等……等等……都有关系。

但大多数情况下,我们更多的只能从数据模型的方面入手,后续我将从多个角度,通过一些数据模型优化的例子,为大家提供一些参考。

首先,我们讲一下影响模型数据压缩比及运行效率的核心因素之一,列基数,即一个列中非重复值的个数。

比如一个列里的数据是“1/2/2/3/4/4/4/4”等8个数,那非重复值是“1/2/3/4”的4个数,列的基数即为4。

从我们应用的角度,可以简单地理解为,Power BI将数据导入模型后,会将这列数据压缩成4个进行储存,这样,数据的量其实就差不多压缩了一半。

所以,数据模型优化的第1条:将数据导入Power BI时,非必要的列,尽量不要导入,尤其是那些列基数很大的列,比如说:很多数据库的表会带一些Key(非重复的键值)列,很多Key列还是用的GUID(很长的一段不可能重复的文本,不了解而又有兴趣的朋友可以搜索了解一下)!

对于数据分析来说,这些键值列,往往是不需要的,此时,不导入这些列,将明显缩减PowerBI模型大小,从而提升运行效率。

以我实际工作中的一个表为例,一个数据库表中带有用GUID作为键值的无重复数据列(ID列),同时大家注意另一个存在大量重复值的列“TM_JY”:

数据全部导入后,Power BI文件的大小为3.7M:

添加“删除ID列”的步骤:

保存后,Power BI文件直接缩减为415K,压缩了85%的空间:

我们再多删除一个列,即前面我们提到的存在大量重复值的列“TM_JY”:

再保存,文件几乎没有变化:

继续删除其他一个列“DATE”,这个列里非重复值和重复值比例约5:3,如图所示:

删除该列后,文件大小进一步缩减为235k:

从上面的例子可以看出,尽可能只导入必要的列,减少不必要的列,尤其是非重复值较多(列基数较大)的列!

此外,从这个例子也可以看到,数据模型的大小主要与最后加载的数据相关,而与中间处理过程的步骤关系不是很大,因此,可以先导入所有列,然后增加选择列步骤进行选择(删除),前面导入所有列的中间步骤,并不会明显影响文件大小及模型效率。

因此,完全没有必要一开始就因为怕后面分析可能要用到,而将所有列一股脑儿地加载,而是在后续做分析真需要时,再回到PQ中将需要的列放出来就是了。

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

本文分享自 Excel到PowerBI 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档