2019-08-07 用python脚本解决了power BI和
2019-08-07 本文已影响0人
硅谷少年
一直以来,在我的认知里,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获取切片器选项值的问题,才让这个问题得到最终解决。