设计PowerBI报告以显示来自两个数据库的表计数的提示

时间:2019-02-18 12:39:16

标签: powerbi

我是Power BI的初学者,打算创建一个报告,显示两个数据库之间的表计数。
这是为了确保两个数据库中的每个表都是同步的(有一个单独的过程将数据从源数据库“刷新”到目标数据库)。

我的查询是如何设计这样的报告:-

  1. 我认为我应该使用直接查询模式?
  2. 我应该使用自定义M代码来构建一些合并的“查询”,还是只对每个数据库中的每个表使用标准方法,然后使用度量(用于使用countrows之类的DAX函数计算计数)。
  3. 像在存储的proc等中那样对数据库中的每个表进行此计算(对每个表),然后在Power BI中使用此数据库SP有意义吗?
  4. 我应该选择哪些可视化?我打算实时比较各个数据库中每个表的计数,也许当计数相同时显示一些绿色指示符(明智的表),而当计数不同时显示一个红色指示符。 Power BI是否提供这种可视化效果,还是我应该探索Power BI自定义视觉效果?

顺便说一句,两个数据库是:Hive和SQL Server(PDW)

感谢指针!

1 个答案:

答案 0 :(得分:2)

1)我不会使用DirectQuery,因为您可能会在数据库上执行查询,这可能需要一段时间才能完成,具体取决于每个表中的记录数和数据库的响应时间。不使用DirectQuery的缺点是,如果将Power BI报表部署到PowerBI.com,则必须手动单击Power BI Desktop中的“刷新”按钮,或定期安排数据刷新。

2 + 3)如果只需要每个表中的行数,那么最重要的是确保该数最终由数据库执行。将所有数据加载到Power BI模型中,仅使用DAX返回行数将是巨大的浪费。而是使用SQL query like this让数据库计算每个表中的行数,然后将汇总结果返回给Power BI。如果您可以选择将SQL查询放入存储的proc中,则一定要这样做!对每个数据库使用一个Power Query,添加带有数据库名称的列,然后将它们全部附加在一起,以便最终在Power BI中得到一个如下表:

| Database | Table    | Rows      |
| -------- | -------- | --------- |
| Hive     | Customer |     12345 |
| Hive     | Orders   |    123456 |
| SQL      | Customer |     12356 |
| SQL      | Orders   |    123400 |

4)一旦在Power BI中有了一个如上所示的表(我们将其称为“ FactRowCount”表),我将简单地使用以下DAX创建一个度量:

RowDiffs = CALCULATE(SUM('FactRowCount'[Rows]), 'FactRowCount'[Database] = "Hive")
    - CALCULATE(SUM('FactRowCount'[Rows]), 'FactRowCount'[Database] = "SQL")

然后,要可视化数据,请将[Table]列与[RowDiffs]度量一起添加到矩阵视觉对象中,并对视觉对象内部的度量应用动态(颜色)格式。您还可以根据自己的喜好进行百分比差异等。