我是Power BI的初学者,打算创建一个报告,显示两个数据库之间的表计数。
这是为了确保两个数据库中的每个表都是同步的(有一个单独的过程将数据从源数据库“刷新”到目标数据库)。
我的查询是如何设计这样的报告:-
countrows
之类的DAX函数计算计数)。顺便说一句,两个数据库是:Hive和SQL Server(PDW)
感谢指针!
答案 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]度量一起添加到矩阵视觉对象中,并对视觉对象内部的度量应用动态(颜色)格式。您还可以根据自己的喜好进行百分比差异等。