界面

功能

  • 比较2个PBI页面上数据的差异

  • 基于特定权限比较数据差异

  • 本地AS和云端PBI比较

  • 自动获取本地端口号并供选择

  • DAX Query方式比较数据差异

使用方法

运行方式

文件为.exe可执行程序,双击或右击打开运行

获取查询语句

  1. 打开报表,在View菜单下调出Performance analyser

  2. 启动记录

  3. 刷新报表页面

  4. 导出查询语句json文件

获取本地端口号

如果需要用到本地的AS服务,需要获取端口号

  1. 打开资源管理器,Ctrl+Alt+Delete

  2. 找到Power BI Desktop中的Microsoft SQL Server Analysis Service进程,右击->转到详细信息

  3. 在 详细信息 中看到该服务的 PID

  4. 打开CMD, 输入以下命令,查看端口号

netstat -ano | findstr <PID>
XML

参数输入

  • WORKSPACE
    路径地址,用于链接AS模型或者云端路径地址。

    • AS

      • 本地Power BI 和任意网络可到达的AS模型所运行的地址及端口号,举例192.168.1.1:1433

    • Power BI Service

      • powerbi://api.powerbi.cn/v1.0/myorg/xxxxxxx

  • USERNAME - PASSWORD
    用户名 - 密码

    • 如果连接Power BI Service,需要填写

    • 如果连接本机AS 则可以不填写,其他AS服务器同理需要填写

  • CATALOG
    语义模型名称

    • 连接Power BI Service时,需要指明连接哪个语义模型,同理AS服务器

  • EXPORT_PAGE_JSON_NAME
    导出页面查询的JSON文件名称

    • 报表页面导出json文件的名称,用于创建查询语句到AS服务

  • IS_ADMIN
    是否以管理员的模式执行语句

    • True和False,区分大小写

    • 如果True,则ROLE, EFFECTIVE_USERNAME, CUSTOMER_DATA将失效

    • 如果False,则必填ROLE, EFFECTIVE_USERNAME, CUSTOMER_DATA

  • ROLE
    角色名称

    • 应用RLS时的角色名称

  • EFFECTIVE_USERNAME
    模拟用户名

    • USERNAME() 函数接收到的内容

  • CUSTOME_DATA
    自定义数据

    • CUSTOMEDATA()函数接收到的内容

运行

  1. 参数填写好后,先点击 保存配置

  2. 配置保存好后,点击 运行

  3. 右侧页面上会逐步显示运行结果

结果解读

正常结果

异常结果

可以根据报错提示检查参数是否填写正确

设计架构

用Python调用.NET的模块,连接到AS服务。

发送查询语句到AS服务,返回结果生成Excel。

利用Pandas比较数据差异。

限制

由于报表页面导出的json中DAX Query是只展示前500行的,故比较结果也只比较前500行。

结束语

目前版本尚存一些bug,该工具使用结果,仅供参考。

代码源码在个人的GIT网站上,可自行下载。

可以执行文件

点击下载