power bi和python互联_2019-08-07 用python脚本解决了power BI和MSSQL数据库之间双向交互的问题...

一直以来,在我的认知里,power BI做数据呈现就是把可能用到的数据全部加载到powerbi里,然后拖字段到图表上做各种呈现。

数据量小的时候,这样挺好,很便捷。但数据量很大时,这些数据放powerbi里会造成powerbi极其臃肿,狂占内存到死机,即使内存大,保存成pbix文件也是几百M,很不方便。

能不能用户看什么数据,就从数据库里查询什么数据,确保内存里都是迫切要用的数据,这样多好啊。我之前就和同事讨论过这方案,可是我们研究了半天也没有找到好的办法。最大的困难是图表界面上的值,无法获取并传递给数据源(用于新查询)。

今天跟另外一个同事解决了这个问题。

先创建一个python可视化对象,脚本里获取切片器的值。旁边放一个切片器,切片器选择哪个值,python脚本就把选择的值保存到文本文件里。核心代码如下:

import pandas

a=dataset.max() #a里面就是获取到的切片器的值

然后更改数据源,改成用python脚本获取数据,python脚本读取上一步保存的文本文件里的内容,取里面有用的部分,组合到sql语句里,去数据库里查询,查询结果被powerbi作为数据源加载。

sql='select 字段1,字段2 from table where 字段2>'+a

后面使用时,选择切片器的值,然后刷新数据源,呈现的结果就是我们想要的了。

不足的是今天遇到一个问题,python 3.6 的pymssql调用的database是中文名,一直报错。后面换了另外一个英文名字的database,是正常的。

目前今天解决的这个问题,qq群,百度,谷歌,都没有好的答案,算是原创。

感谢同组的同事解决了python获取切片器选项值的问题,才让这个问题得到最终解决。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值