利用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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/694579.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在线按模板批量生成文本工具

具体请前往:在线按模板批量生成文本工具

Linux基础指令(一)

前言 Linux基础指令主要学习:对目录、文件、压缩包、匹配查找,权限等操作 第一次接触ubuntu需要知道的基本知识 sudo passwd root 先给root用户设置密码 su root 切换到root用户 su zhangsan …

手机和模拟器的 Frida 环境配置

目录 一、配置 JDK 和 android 环境 二、连接设备和查看权限 1、连接设备 2、查看手机权限 三、手机配置 Frida 1、frida-server下载 2、验证 四、模拟器配置 Frida 1、下载模拟器并调节成手机版: 2、连接并查看架构 3、配置并开启 x86 的 frida-serve…

Windwos下运行程序如何不弹出黑窗口(控制台窗口)

一、在程序最开始处加一句: #pragma comment(linker,"/subsystem:windows /entry:mainCRTStartup") 二、在CMakeLists.txt里面加上WIN32

Navicat+sqlite操作数据

使用navicat操作数据库(比如sqlite数据库)可以实现与access(参考该文)一样的操作,可以导入导出excel等格式的文件,如下图所示。 两种方式的sql语句的语法也基本一样。

【代码随想录】【算法训练营】【第32天】 [122]买卖股票的最佳时机II [376]摆动序列 [53]最大子序和

前言 思路及算法思维,指路 代码随想录。 题目来自 LeetCode。 day 32,一个不上班的周六,坚持一了一点~ 题目详情 [122] 买卖股票的最佳时机II 题目描述 122 买卖股票的最佳时机II 解题思路 前提:单链表 删除元素 思路&a…

Python异步爬虫批量下载图片-协程

import aiofiles import aiohttp import asyncio import requests from lxml import etree from aiohttp import TCPConnectorclass Spider:def __init__(self, value):# 起始urlself.start_url value# 下载单个图片staticmethodasync def download_one(url):name url[0].spl…

SpringBoot: 启动流程和类装载

前面我们学过Spring定制了自己的可执行jar,将真正执行时需要的类和依赖放到BOOT-INF/classes、BOOT-INF/lib来,为了能够识别这些为止的源文件,Spring定制了自己类加载器,本节我们来讲解这个类加载器。本节涉及的内容主要包括: Sp…

STM32F103单片机工程移植到航顺单片机HK32F103注意事项

一、简介 作为国内MCU厂商中前三阵营之一的航顺芯片,建立了世界首创超低功耗7nA物联网、万物互联核心处理器浩瀚天际10X系列平台,接受代理商/设计企业/方案商定制低于自主研发十倍以上成本,接近零风险自主品牌产品,芯片设计完成只…

HC-SR505人体感应灯

1硬件 1.1硬件组成 1.正点原子探索者开发板 2 HC-SR505迷你小型人体感应模块 3 继电器+5V小灯 HC-SR505迷你小型人体感应模块介绍 1.2 硬件连接 1.HC-SR505(连接在PE0) 2.继电器(连接在PE1) 2.主要代码 int ma…

ReactRouter——路由配置、路由跳转、带参跳转、新route配置项

目录 写在前面 (一)初步使用router 1.安装react-router-dom 2.创建router结构 3.嵌套路由 4.配置not found页面 (1)确切路由报错页面 (2)未配置路由报错页面 5.重定向 (二)路由跳转 1.组件跳转 2.NavLink 3.js跳转 (三)传递参数 1.searchParams(query)参数 2…

ubuntu使用docker安装openwrt

系统:ubuntu24.04 架构:x86 1. 安装docker 1.1 离线安装 docker下载地址 根据系统版本,依次下载最新的三个关于docker的软件包 container.io(注意后缀版本顺序)docker-ce-clidocker-ce 然后再ubuntu系统中依次按顺…

如何自动化地评估 AIGC 生图的质量?

节前,我们星球组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学。 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 合集&#x…

【Spring Boot】异常处理

异常处理 1.认识异常处理1.1 异常处理的必要性1.2 异常的分类1.3 如何处理异常1.3.1 捕获异常1.3.2 抛出异常1.3.4 自定义异常 1.4 Spring Boot 默认的异常处理 2.使用控制器通知3.自定义错误处理控制器3.1 自定义一个错误的处理控制器3.2 自定义业务异常类3.2.1 自定义异常类3…

Cweek4+5

C语言学习 十.指针详解 6.有关函数指针的代码 代码1:(*(void (*)())0)(); void(*)()是函数指针类型,0是一个函数的地址 (void(*)())是强制转换 总的是调用0地址处的函数,传入参数为空 代码2:void (*signal(int, void(*)(int))…

AE电源pinnacle软件新款老款二款软件

AE电源pinnacle软件新款老款二款软件

高速USB转串口芯片CH343

CH343封装 截止目前,主要封装有 SOP16: CH343G QFN16: CH343P ESSOP10: CH343K,截止24年6月未生产 CH343串口速度 最高串口速度: 6Mbps,比CH340的2M,快3倍 1、概述 参考版本:1E CH343 是一个 USB 总线的转接芯片,…

国标GB/T 28181详解:校时流程详细说明

目录 一、定义 二、作用 1. 时间同步性 2. 事件记录的准确性 3. 跨平台、跨设备协作 4. 降低时间误差 5. 安全性提升 三、基本要求 四、命令流程 五、协议接口 六、校时效果 1、未校时的情况 2、校时后的效果 七、参考 一、定义 GB28181协议要求所有的监控设…

把系统引导做到U盘,实现插上U盘才能开机

前言 有个小伙伴提出了这样一个问题:能不能把U盘制作成电脑开机的钥匙? 小白稍微思考了一下,便做了这样一个回复:可以。 至于为什么要思考一下,这样会显得我有认真思考他提出的问题。 Windows7或以上系统均支持UEF…

Cannot access spring-snapshot (https://repo.spring.io/snapshot) in offline mode

Maven报错 这个选项是脱机工作,意思就是不读取远程仓库,只读取本地已有的仓库,之所以报错原因就是本地仓库是空的,然而选择了脱机工作