Powerbi小技巧,取消“启用加载”功能

image.png

在处理Powerbi模型性能问题上,可以考虑优化的地方有很多,主要就是围绕着CPU和RAM开销情况进行优化。最基本但是最重要的原则就是使得内存使用最小化。默认情况下,查询编辑器的所有查询都会加载到powerbi模型中。这篇文章中,将会介绍一些案例,演示如何禁止加载一些查询,特别是对于某些只是作为转换步骤的中间过程。当你模型数据量逐渐增大的时候,这是个非常基本且非常重要的操作。

Power Query的加载机制

默认情况下,Power Query的所有查询结果都会加载到模型中。对于这个功能,如果你的模型恰好是数据仓库中处理好的星形结构,那么通常情况下你不需要对数据再做修改。但是,如果你连接的是交易数据,或者一些文件,或者是web数据源,这用的原始的非星形结构的数据,就会遇到一些问题。这情况下,你需要对数据进行一些ETL的转换,行列数据处理,合并附加等操作。也许10个初始的数据源,最后只需要5个表格即可。当你处理好,点击关闭并应用的时候,所有的查询结果,无论对最后模型是否还有需要全部都加载到模型中。


image.png

每个加载进模型的查询都会消耗系统资源。内存资源是非常重要的,低开销可以使得模型的性能更好。许多人会把模型中不需要的数据表进行隐藏操作,但是这并不能提高性能,因为即使是隐藏的查询,也是消耗了资源。最佳的操作是禁止不再需要的查询加载到查询中。禁用加载,并不意味着数据不刷新,只是说不再加载到模型。当你点击了刷新按钮,标注了禁止加载的数据依旧会刷新并提供给需要它的查询,只是不再进去到模型而已。这个操作是非常基本的性能调优技巧,尤其当你模型越来越大的时候。下面我们通过案例来看看。


image.png

案例

这个案例中,我们从一个目录中获取一个列表。目录中两种CSV文件,Students和Course。它们结构上有些区别。目录中的其他类型文件我们不需要。


image.png

我们的目标是得到两个表格,分别包含了所有的students和courses的数据。我们不使用多次加载文件夹的方法,我们使用一个查询来获取数据,然后用引用的方式提供其他查询使用。这个引用的查询,并不需要加载到数据模型中。下面我们看下如何操作:

建立转换

从文件夹获取数据

image.png

输入文件夹的地址


image.png

image.png

使用筛选得到csv文件。这案例中,studens和courses文件都是csv文件。


image.png

因为两个文档的结构是不同的,所以我们需要对它们分别进行转换处理
image.png

处理Students表

因为我们设想只处理一个从文件夹获得数据的操作,所以这里使用“引用”来处理分流数据。


image.png

这个操作会新生成一个查询,这个查询不是源数据的复制,只是对其处理结果的一个引用。也就是,如果源数据进行了变化,这个引用的也会相应的改变。把新生成的重命名为student。过滤首字包含students的行。


image.png

使用文本筛选器的原因是,如果我们用搜索框的筛选,那么结果只会基于当期数据的结果,如果后期有新的数据进入,那么结果将不会包含它们。因此,这里我们使用文本筛选器,它是动态的过滤所有的数据,即使有新数据加入,也会把它们考虑在内。
image.png

现在我们会看到结果只包含students。


image.png

点击合并按钮,所有的结果会合并起来。
image.png

点击合并按钮后,系统会自动进行合并操作,并在转换步骤中显示对于的操作流程。
image.png

接着对行数据进行一些处理后,得到最后的结果:
image.png

处理course

处理方式同上面的student一样。最后会也会得到一个表格:


image.png

默认操作:启用加载

这里,我们看下问题,此时,我们不做任何操作,系统默认使用启用加载。选择关闭并应用。


image.png

系统提示加载刷新数据,有三个文件将要加载到模型中:student,course,csvs


image.png

三个文件中,csvs是我们不需要的,我们以及从它的数据中获取了数据,并提供给了student和course,其只是一个中间步骤。把它加载到模型中至少会导致两个问题:
1.额外的表,使得用户产生疑问

2.消耗了不必要的系统资源
其中消耗资源是更重要的问题,内存消耗大意味着可用资源减少,处理性能下降。案例中,csv的数据量很小,但是在实际生产环境中,中间表往往可能是非常巨大的表格。对于提升模型性能,你必须要去除不必要的性能开销。

在报表中隐藏是否可行?

对于上面说的第一个问题,在关系视图中,我们可以选择把它们隐藏。但是即使这样,该表依旧存在,依旧消耗资源!仅仅是隐藏而已。隐藏功能是用于那些作为关系中间表使用的,它们不能不隐藏,隐藏不影响它们的作用。


image.png

关闭“启用加载”功能以节约内存使用

回到查询编辑器,右键csv查询,可以看到默认情况下,是勾选“启用加载”的。


image.png

点击即可禁用该功能。会提示一个信息说这个操作会导致使用该表的可视化组件不能继续使用。这个放心,因为该表csv我们并没有使用。


image.png

点击继续,可以看到“启用加载”的勾选已经去除了,并且数据源的字体也变成了斜体,这说明该数据不会被加载到模型。注意下,当刷新的时候,数据还是会被刷新,并提供刷新后的数据给它的使用者,只是不再加载到数据模型而已。
image.png

在查询依赖项功能中,我们可以可以看到,csv不再加载到模型。


image.png

然后,我们关闭编辑器。可以发现csv数据源已经被排除了。关系视图中只剩下需要的两个表。
image.png

总结

可以看到这样一个简单的操作,就可以节约系统开销,提高性能。务必牢记,查询编辑器是一个ETL引擎,它可以进行一系列的转换合并操作,当它完成工作的时候,所有的数据都会默认加载到模型中,这时候,我们需要禁用那些再报表中不再需要的表,以提高模型性能。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,093评论 1 32
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,259评论 0 9
  • 第三章 数据库系统 3.1 数据库管理系统的类型 通常有多个分类标准。如按数据模型分类、按用户数分类、按数据库分布...
    步积阅读 2,694评论 0 7
  • 一. Java基础部分.................................................
    wy_sure阅读 3,806评论 0 11
  • 那一年,岁月青葱如二月的杨柳,你还是那个红上衣碎花布鞋的小女孩。一回头,四目相对,所有的故事与思念便从那一瞬间展开...
    强强123阅读 188评论 0 0