首页
学习
活动
专区
圈层
工具
发布

优化Power BI中的Power 优化Power BI中的Power Query合并查询效率,Part 1:通过删除列来实现

本篇文章主体部分为翻译Chris Webb的一篇文章。 合并查询在Power Query中是很成熟的应用,相当于SQL中的各种JOIN(抽时间会写几篇SQL的join,算是SQL的小核心)。...但同时,在Power Query中合并查询是一个常见的影响刷新效率的因素。在我的工作中,经常会遇到对一些非文件夹性质的数据源进行合并查询操作,所以我一直在想,有没有办法可以对其进行优化。...: 表中列的数量是否影响合并查询时的效率?...其实合并查询删掉不必要的列,可以有两种方式,一种是如今天说的,在合并查询之前删掉;另外,我们也可以在合并查询后对不需要的列进行删除。 从逻辑上来看,合并查询后再删除列,很明显要比今天说的浪费时间。...参考文档: Chris Webb https://blog.crossjoin.co.uk/2020/05/31/optimising-the-performance-of-power-query-merges-in-power-bi-part

5.9K10

如何理解Power Query中的“#”转义字符?

我们在Power Query中有时候也会看到在公式中会有"#"字符存在,这个#字是什么意思呢? 我们今天来初步了解下这个#的功能。 在说这个之前,我们先来了解下什么是Unicode字符。...字符区间 16进制编码区间 0..9 0031-0039 A..Z 0041-005A a..z 0061-007A 一..龥 4E00-9FA5 在Power Query中,使用List生成列表,必须是升序的...(是根据Unicode编码进行的升序) 另外其中主要的3个符号类的,有自己的简称,我们记住简称即可。...例如我们需要日语的片假名,韩语字符,特殊的符号等都可以进行查找,查找到后就可以把对应的16位进制的编号记下,以后就可以方便转义了。...了解了Unicode编码,那我们看下,在Power Query中如何使用转义字符"#"进行转换。 例1:通过"#"直接进行16进制Unicode编码转义。

4.2K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    优化Power BI中的Power Query合并查询效率:每个Query最高256MB内存限制的说明

    关于优化Power BI中的Power Query合并查询效率,之前写过三篇文章: 优化Power BI中的Power Query合并查询效率,Part 1:通过删除列来实现 优化Power BI中的...优化Power BI中的Power Query合并查询效率,Part 3:Table.Join和SortMerge 针对文中说到的256MB内存限制的问题,有朋友提出了质疑: ?...作者给出了原文链接,所以先找到原文看看是怎么说的: https://blog.crossjoin.co.uk/2020/05/21/monitoring-power-query-memory-usage-with-query-diagnostics-in-power-bi.../ 在这篇文章中,作者提到2020年4月PowerBI的更新中Query Diagnostics功能被加强: https://docs.microsoft.com/en-us/power-query/querydiagnostics...forum=powerquery) 将表存储在内存中,这样后续再调用这些表的时候可以直接在内存中调用,而不是再从硬盘中获取,提高了效率。

    5.8K20

    如何将Power Pivot中的数据模型导入Power BI?

    小勤:怎么将Excel里Power Pivot的数据模型导入到Power BI里啊? 大海:这个现在好简单哦。直接导入就可以了。 小勤:啊?从Excel工作簿获取数据? 大海:No,No,No!...大海:这样一导入,做些必要的选择: 然后,就会将在Excel里用Power Query建的查询、加载到Power Pivot的数据以及建好的模型、写好的度量等全导入到Power BI了,结果如下图所示...我的Excel里没有建查询啊?怎么导入Power BI却生成了一个查询? 大海:你这个是没有经过Power Query,直接从表格添加到Power Pivot数据模型的吧? 小勤:对的。...直接从表格添加到Power Pivot数据模型的表会在Power BI中以“新建表输入数据”的方式来实现。...只要还是这个查询并且保证查询的结果跟原来的一样,就没问题了。 小勤:好的。看来以后在Excel里还是先通过Power Query获取数据,然后再加载到Power Pivot数据模型更好。

    5.7K50

    优化Power BI中的Power Query合并查询效率,Part 3:Table.Join和SortMerge

    前两篇文章中: 优化Power BI中的Power Query合并查询效率,Part 1:通过删除列来实现 优化Power BI中的Power Query合并查询效率,Part 2:合并查询前or后删除多余的列有区别吗...在之前的文章中提到过,之所以合并查询大数据量的文件会比较慢是因为计算过程中会把表存入内存中。...然而,有一个例外:如果你提前知道了这两个表中被用来做合并查询的列是按照升序排列的,那么就可以使用Table.Join函数并设定SortMerge参数来实现,这样计算过程就是按照顺序从两个表中获取数据,像数据流一样...另外,当你准备从两个不同的数据库中导入数据并进行合并查询,比如SQL Server 和 Oracle,两者都支持从文件夹中获取数据并排序,这个过程中的排序的时间,很有可能会小于使用Table.Join和.../optimising-the-performance-of-power-query-merges-in-power-bi-part-3-table-join-and-sortmerge/ https:

    5.2K10

    Power BI中如何实现类似Excel中的逆序坐标图?

    小勤:大海,Power BI里面怎么实现逆序刻度图?比如我想分析学生多次考试成绩的名次变化趋势,由于名次数据越小越好,比如第1名要好过第2名,所以,数据小的应该显示在数据大的上方。...在Excel里,可以通过设置坐标轴为逆序刻度: 达到如下效果: 但是,在Power BI里,好像设置不了逆序刻度啊。...大海:对的,目前Power BI还不支持逆序刻度,所以,这个问题如果要在Power BI里实现的话,得想其他办法。 小勤:那怎么办呢?...大海: 一是换柱状堆积图,如果要实现折线图的效果,得考虑用图形叠加的方法,现在先说一下柱状堆积图的方法,数据接入Power BI后: Step-01:构造辅助数据 由于正常的数据显示都是越小越低的...在线M函数快查及系列文章链接(建议收藏在浏览器中): https://app.powerbi.com/view?

    2.4K30

    Power BI如何制作Puma财报中的多维表格

    Power BI也可以实现类似的表格结构: 首先,新建一个辅助表,将需要展示的维度纵向串联起来: 纵向维度表 = --公众号、知乎、B站:wujunmin VAR T1 = SELECTCOLUMNS...: 多维业绩达成 = SWITCH ( SELECTEDVALUE ( '纵向维度表'[分组] ), "督导", CALCULATE ( [M.业绩达成率], TREATAS ( VALUES...( '纵向维度表'[分组内容] ), '店铺资料'[督导] ) ), "城市", CALCULATE ( [M.业绩达成率], TREATAS ( VALUES ( '纵向维度表'[分组内容]...), '店铺资料'[城市] ) ), "店铺面积", CALCULATE ( [M.业绩达成率], TREATAS ( VALUES ( '纵向维度表'[分组内容] ), '店铺资料'[按面积分组...] ) ), [M.业绩达成率] ) 矩阵如下拖拽字段: 空白行打开并换一个颜色: 得到: 结合SVG可以把表格美化(进度条的SVG实现方式参考Power BI/Excel 表格内嵌进度条生成器

    56700

    Power BI DAX 中的表以及概念澄清 - 99% 的人没搞懂

    有时候,可以从基表的计算中直接得到最终结果,这是最佳路径; 有时候,由于计算的复杂,对于基表的计算往往会得到一个中间结构,且会在内存中展开,称为:物化。基于这个结构再计算,得到最终结果。...使用基表或基表中列的方式是表引用或列引用。 遗留问题:对于只能使用基表的函数,如何给出替代方案,答案是肯定的,后续分解。...请不要再用目的去描述这个概念了,例如你可以搜索到:商业智能是用来 xxxxx,解决 yyyy 问题的。这种概念毫无意义。 Power Query 是用来解决 xxxxxxx 的。...Power BI 是用来解决 yyyyyyy 的。 那么,还是没有回答自助商业智能分析到底是啥?我们要知道的是本质,不是目的。 类似的,HR 是啥?运营是啥?财务是啥?...学习 BI 佐罗出品的《BI 真经》,让数据真正成为你的力量,知道为啥用:真正二字了吧。涨价中... 看懂这事的人早收集齐了,希望你看到的不会太晚。

    2.3K50

    一次深刻的学习之旅:Power Query中真有循环吗?从获取GUID说起

    根本原因就是在于pq的引擎太过于强大与智能,此文也有过相关说明: Power BI中的文本大写/小写自动更改现象 只能说,节省了计算机和云计算的算力,却消耗了大量的脑力。...正文开始 想到Power Query是有循环函数的:Transform类函数。...不过,从另一个侧面也可以看出来,本来我们以为List.Transform是可以循环的,但是在某些场景中,它暴露出来并不是循环的本质。 因此,解决办法3,无效。...结论 在Power BI中生成UUID并不是一个很好的想法。...并且,pq的每一次刷新都会导致UUID改变,就像Jack S老师说的,除非用来做加密,否则真是没有什么用途。 在Power BI中处理带有UUID的表同样不是一个很好的想法。

    1.7K10

    优化Power BI中的Power Query合并查询效率,Part 2:合并查询前or后删除多余的列有区别吗?

    中讲解了在Power BI中对两个表进行合并查询,数据集大小影响了效率。尤其是在进行合并查询之前删除了不需要的列,可以较大地提升合并查询的效率。...就像在以下两篇文章中: 从局部刷新到节省算力,微软在省钱上从不叨叨 双“局部切换”与特朗普的割韭菜 我们总结过的: 节省算力1:在局部标签切换中,提前知晓将要切换的部分,直接进行特定部分切换而不是对整个页面切换...关于以上这个Power Query的引擎计算原理在Ben Gribaudo的一系列文章中说的很清楚,可以参考文末的文档。...参考文档: https://bengribaudo.com/blog/2018/02/28/4391/power-query-m-primer-part5-paradigm https://blog.crossjoin.co.uk.../2020/06/03/optimising-the-performance-of-power-query-merges-in-power-bi-part-2/

    3.8K10

    如何用Power Query处理Excel中解决不了的分列

    之前我们有聊到Excel中会有一些完成不了的分列,这次我们来看下在Power Query中如何进行。...分列数据的方法比较 在Power Query中大部分分割操作可以直接通过菜单进行,在拆分列菜单中主要有2个选择,一个是按分隔符,另外一个是按字符数。 ? 1. 通过换行符进行分隔 ? ?...另外需要注意的是,分隔符不限于符号,还可以英文字母,文本数字等。 ? ? 3. 跳位进行分隔 在操作栏的分割中,可以对分隔符进行3种处理,最左边的,最右边的,以及全部出现的分隔符进行分割。 ?...分隔后按行排序 在Power Query中,不仅可以分割后按列进行,还可以按行进行。 ? ?...对应的案例应用可以查看如何按要求转换客户地址信息格式?

    2.7K10

    Power Query 真经 - 第 4 章 - 在 Excel 和 Power BI 之间迁移查询

    Power Query 可以在 Power BI 或 Excel 中使用,很多人一开始就在想到底用哪个平台来使用 Power Query,其实不必为此纠结,总有一天会意识到需要把查询复制到一个另一个中的...这有可能是将查询从一个 Excel 工作簿中复制到另一个 Excel 工作簿中,从 Excel 复制到 Power BI,或者从 Power BI 复制到 Excel。...4.1.2 Excel 到 Power BI 现在已经知道了将查询从一个 Excel 文件复制到另一个 Excel 的基本知识,接下来就是如何将方案从 Excel 中复制到 Power BI 中。...现在,正如看到的,从 Excel 中复制到 Power BI 中的方法与从 Excel 中复制到另一个 Excel 中的方法非常相似,如图 4-4 所示。...不支持 支持 连接到 Excel 中的表 不支持 支持,但会将数据复制 表 4-1 比较了从 Excel 导入 Power BI 时 Power Query 的 不同方法 如果用户没有在 Excel

    10.1K20

    两小时搞定Power BI

    sheet和表中,比如整理成仪表板的样子或者整理到ppt中 用power bi制作的流程和excel完全一样,但是每一个步骤中,都多少有一点新鲜的玩意。...比如替换一些值,做个数据的分段,加个辅助列,做个透视表什么的,这种操作都是可以在power query中完成的。...然后数据的简单处理之后就是把处理好的数据整合到一个大的excel表中。这一步骤就对应了power bi中把数据加载到模型中的操作。...第三步,是对没有处理好的数据做再次的修改和处理,这里就会牵扯到另一个东西了,dax表达式。可能很多新手都有类似的困惑:我到底应该在query中处理数据还是应该在dax中处理数据。...只需要学会获取数据>简单的处理>图表呈现就可以了。毕竟数据处理这一步,除了M语言和dax,其实还有很多方法可以处理的,比如做数据透视表这种问题,在获取数据的时候直接写好group by也是一样的。

    1.6K10

    一次性学懂Excel中的Power Query和Power Pivot使用

    其实,Power BI中的Power Query和Power Pivot最早是以Excel为载体的。...换句话说,Power BI中的Power Query和Power Pivot组件的功能和语法等方面都是一样的。...全书共11章: 第1章介绍Excel中的Power Query和Power Pivot两大商务智能组件及其功能; 第2章至第6章介绍如何使用Power Query来获取数据并进行处理,主要包含Power...Query的基本操作、M函数和M公式的基础知识、常用的M函数,以及数据处理的综合案例; 第7章至第11章介绍如何使用Power Pivot进行数据建模和分析,主要包含Power Pivot的基本操作、...第6章  Power Query综合实战 6.1 数据获取综合实战 6.1.1 实例1:获取并合并Excel工作簿中的多个工作表的数据 6.1.2 实例2:获取并合并多个文件夹下的Excel工作簿中的数据

    11.5K20

    【强强联合】在Power BI 中使用Python(2)

    上一篇文章我们讲解了在Power BI中使用Python来获取数据的一些应用: 【强强联合】在Power BI 中使用Python(1) 这一篇我们将继续讲解如何在Power BI中使用Python进行数据清洗工作...其实我们仔细看一下场景1和场景2,它们之间是个逆过程,场景1是从Python获取数据传递到Power BI,而场景2是Power BI或者Power Query获取了数据,用python来处理。...举个简单的例子: 首先我们进入Power Query管理器界面,通过新建一个空查询,并建立一个1到100的列表,再将其转换为表: = {1..100} ?...本文讲解了在powerquery中进行数据清洗工作时如何运用Python来实现一些特定的功能。...下一篇我们将继续讲解如何使用Python的matplotlib库在Power BI中进行可视化呈现。 ?

    4K31

    一文搞懂Power BI中的自定义数据格式——从全真道士捐的100万亿美元说起

    4.还有一种方式,通过新建列的方式,比如从日期表建立诸如“2020年Q1”的列: ? 但是这种方式只是改变了数据的显示方式,它本质上只能是文本,如果强行将其转为日期,就会报错: ?...这个功能是Power BI 在2019年9月的更新中新增的一项自定义内容,这也是我们今天要着重讲一讲玩一玩的内容。 首先来看原始数据: ?...需要指出的是,自定义格式是使用一系列占位符构建的,这些占位符让你可以控制比如千位分隔符,小数位数,是否在占位符中显示数字等内容。...参考文档: https://powerbi.microsoft.com/en-us/blog/power-bi-desktop-september-2019-feature-summary/#analytics...https://docs.microsoft.com/en-us/power-bi/desktop-custom-format-strings

    5.3K31

    PowerBI优化:更快、更小、更高效

    不使用星型架构建模的另一个缺点是,用 DAX(Power BI 模型的建模语言)编写的公式会变得更加复杂。当所有数据都位于一个大表中时,可能会出现一些计算错误。...Power BI Desktop 中良好数据模型的重要性一文提供了几个很好的示例,介绍了星型架构如何简化 DAX 公式。...使用 Power Query,我从 AdventureWorksDW2019 数据库中提取了一个表,而无需应用任何转换。...Power BI Desktop 扫描 datetime 列,查找最小值和最大值,并创建一个包含整个范围的日期表。如果您有很多日期时间列,则这是一个无声杀手。理想情况下,您有一个自己维护的日期维度。...但是,这将导致列具有非常高的基数(等于表中的行数),如果最终结果是文本字符串,则压缩将非常糟糕。更好的选择是在数据仓库或 Power Query 中创建代理键。

    2.1K10

    BI为什么我的查询运行多次?

    如果查询由一个或多个其他查询引用,则独立计算每个查询(以及它依赖的所有查询)。在桌面环境中,使用单个共享缓存运行数据模型中所有表的单个刷新。...详细信息: 缓冲表加载到Power BI Desktop模型在Power BI Desktop中,Analysis Services (AS) 使用两个评估来刷新数据:一个用于提取架构(即通过请求零行实现的架构...M 评估。...设置Power Query编辑器无需重新连接或重新创建查询,只需在Power Query编辑器中打开要测试的查询。 如果不想使现有查询混乱,可以在编辑器中 复制 查询。...后台分析由“允许数据预览”控制,可在“禁用Power Query后台刷新”中所述的后台设置中下载Power BI。 还可以在Excel中禁用此选项。

    6.8K10

    Power BI动态数据源:一次解决问题的思考历程

    Power Query 运行查询之后才能确定是否需要连接,因为数据是在代码中生成的或从其他数据源返回的。...而在Power Query 运行查询之前,Power Query如何才能知道第一个Web.Contents是否真的会返回数据呢?...很自然的,在桌面端Power Query中,调用自定义函数之前,一定是要有数据的,正常人不可能对一个空表进行自定义函数查询。...以下展示非正常人类: 【筛选的行】,本来就是空表,这是用自定义函数查询了个寂寞吗? 在本地Power Query中,步骤是一步一步进行的,每一步都得进行计算,对于这种空表进行运算是毫无意义的。...好在Power Query给我们提供了一种解决办法,例外的情况: 在大多数情况下,无法在 Power BI 服务中刷新使用动态数据源的 Power BI 数据集。

    2.7K20
    领券