利用PowerQuery控制数据行数

在这里插入图片描述

PowerBI报表在开发的过程中,经常会遇到数据量非常庞大的情况,在这种情况下,本机连接数据源如果不进行特殊处理的话,那么刷新数据的时候可能会发生数据刷新时间过长、数据加载内存错误、开发过程中构建DAX卡顿等情况。

那么在实际开发中,我们应该如何处理呢?其实,在PowerQuery页面,我们可以对查询进行过滤处理的。

在PowerQuery中进行过滤处理,我们需要区分两种情况,一种是可以在连接数据源时构建SQL语句的,一种是不可以的,感兴趣的小伙伴可以翻阅官方文档关于查询折叠[1]的相关内容,这里就不赘述了。

案例:可构建SQL语句

白茶在本机搭建了一个临时的SQL Server数据库,我们来连接该数据库中的某张表。

在这里插入图片描述

结果如下:

在这里插入图片描述
在这里插入图片描述

在管理参数的面板下,我们需要创建如下参数:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

接下来,我们来构建一个空查询

在这里插入图片描述

将如下PQ代码,通过高级编辑器,复制进去:

let Sources = if LimitValidity then " TOP " & "(" & Limit & ")" else "" in Sources

结果如下:

在这里插入图片描述

现在,我们可以对之前的连接到的表进行过滤处理了,进入到高级编辑器,修改其PQ代码:

let
    源 = Sql.Database(".", "CaseData", [Query="SELECT" & UseingFilter & " * FROM Fact_Sales "])
in
    源

结果如下:

在这里插入图片描述

案例:不可构建SQL语句

因为环境的关系,白茶本地没有相对应的数据库,还是用SQL Server来给大家举例。

继续连接到刚才的表:

在这里插入图片描述

我们重新创建一个空查询,将如下代码粘贴进去:

(x) => let Sources = if LimitValidity then Table.FirstN(x, Number.From(Limit)) else x in Sources

在这里插入图片描述

修改FactSales的PQ代码:

let
    源 = Sql.Databases("."),
    CaseData = 源{[Name="CaseData"]}[Data],
    dbo_Fact_Sales = CaseData{[Schema="dbo",Item="Fact_Sales"]}[Data],
    UseingTop = UseingTop(dbo_Fact_Sales)
in
    UseingTop

结果如下:

在这里插入图片描述

云端设置

当我们完成本地开发工作,将报表发布到云端后,还需要调整参数,才能保证后续数据正常刷新。

在云端数据集设置中,找到参数设置,将LimitValidity参数修改为False即可。

在这里插入图片描述

注意事项

  • 在连接数据库的时候,切忌SELECT * 这种操作,因为会查询到一些无用列;

  • 表查询调整后,会出现运行此本机数据库查询需要权限 这个提示,点击编辑权限后,点击运行即可;

  • 本地在刷新数据时,受限于本机电脑的配置以及登录账号,量级较大的数据在本地无法刷新;

  • 云端根据高级容量的不同配置,可以满足不同场景下的大规模数据刷新;

  • 针对不同的数据库,查询用语也是不同的,例如:SQL Server支持TOP函数,而MySql则支持Limit函数,白茶这里仅是提供一种思路给到大家。

引用链接

[1] 查询折叠: https://learn.microsoft.com/zh-cn/power-query/query-folding-basics

在这里插入图片描述
在这里插入图片描述

相关推荐

  1. 利用pandas进行数据转列和列转行

    2024-06-08 11:34:06       15 阅读
  2. 查询pg 数据库的表,和 表大小

    2024-06-08 11:34:06       18 阅读
  3. Python - 获取文件

    2024-06-08 11:34:06       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-08 11:34:06       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-08 11:34:06       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-08 11:34:06       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-08 11:34:06       18 阅读

热门阅读

  1. 52.Fork & Join线程池

    2024-06-08 11:34:06       7 阅读
  2. Fiddler无法显示捕获到的网络流量的问题处理方法

    2024-06-08 11:34:06       12 阅读
  3. c++处理string类型的工具和常用方法总结

    2024-06-08 11:34:06       8 阅读
  4. 【python脚本】自动化办公处理excel表格

    2024-06-08 11:34:06       10 阅读
  5. AI在芯片设计中的未来

    2024-06-08 11:34:06       8 阅读
  6. mod_aws_transcribe

    2024-06-08 11:34:06       5 阅读
  7. 【大数据架构】基于流式数据的大数据架构升级

    2024-06-08 11:34:06       7 阅读
  8. MakeDown语法详解

    2024-06-08 11:34:06       8 阅读
  9. myEclipse新手使用教程

    2024-06-08 11:34:06       6 阅读
  10. HO-3D 数据集

    2024-06-08 11:34:06       6 阅读