Power BI动态查询数据库,以及需要注意的问题
小勤:现在公司数据库里的数据量很大,怎么才能按需要仅接入自己需要的数据?比如说,按需要输入起始日期,然后仅从数据库里接入该起始日期至今的数据。
大海:你可以设置起始日期为参数,然后在接入数据库时使用的sql语句里引用这两个参数来实现哦。
小勤:具体怎么做?
大海:其实很简单。首先,我们可以先在Power Query编辑器里新建一个参数:
小勤:这里可以直接用“文本”类型吗?
大海:当然也可以啊,虽然咱们这个是日期,但因为放在sql语句里要用的是文本,所以你也可以直接用文本类型,这样后面还可以不需要再用Text.From函数进行转换,但一定要注意输入日期信息的规范。
小勤:嗯。那这个参数怎么放到sql语句里呢?
大海:你可以先在接入数据库时写一个基本的sql语句,后面再在其中将相应的内容替换为参数即可,如下图所示:
然后,在源步骤里将SQL语句中的固定值替换为参数:
小勤:但好像有个问题哦,每次换一个日期的时候,都得重新编辑权限?
大海:对的。这是Power BI中通过sql语句连接数据库时的一个安全机制,因为sql语句的变更对于数据库来说是存在一定的风险的,有些运行效率很低的sql甚至会严重影响数据库的运行效率。
小勤:但是,这样岂不就不能实现完全的自动化了?
大海:也不是,这只是默认情况下的提示信息,如果你能确定你的动态变化的sql不存在问题,那这个是可以通过设置忽略掉的,也就是说,Power BI把这个控制的权利交给你,你也要对其所造成的影响负责。具体设置如下:
给“新本机数据库查询需要用户批准”的勾给去掉。
小勤:原来这样。这个方法在Excel中的Power Query也适用吗?
大海:当然适用哦。
- 关于sql的一点儿建议 -
如果经常跟数据库打交道,建议还是学点儿基础的sql,主要把查询数据的相关内容的学些基础的即可,这十分有利于提升从数据库查询(导入)数据的效率。