繁体   English   中英

如何跟踪 Power BI 中的每日变化?

[英]How to track day wise change in Power BI?

我正在使用来自https://www.mohfw.gov.in/网站的数据创建 Power BI 报告,该网站提供所有印度州/联邦领土的最新冠状病毒数据。

数据格式如下——

+-----+-----------------------------+-----------+-------+-------+
| SNo |            State            | Confirmed | Cured | Death |
+-----+-----------------------------+-----------+-------+-------+
|   1 | Andaman and Nicobar Islands |        14 |    11 |     0 |
|   2 | Andhra Pradesh              |       603 |    42 |    15 |
|   3 | Arunachal Pradesh           |         1 |     0 |     0 |
|   4 | Assam                       |        35 |    12 |     1 |
|   5 | Bihar                       |        86 |    37 |     2 |

他们的网站每天都会更新新数据,因此没有日期智能跟踪器。 我想跟踪每个 state 的情况下的每日明智变化(增量/减量),有什么办法可以在 Power BI 中实现 model 来实现这一目标?

现在我正在做的是我每天从 web 页面下载表格并添加一个日期列,它将是今天的日期( getdate() )并将数据加载到 SQL 表中。 所以每天我都在表格中为每个 state 插入一行,并带有当天的日期戳,然后我可以从前一天的数据中减去它以查看更改,但我觉得这是一种低效的方式,并且表格大小保持不变每天都在增加。

因此,任何改进它的建议,无论是通过 Power BI 数据 model 或 SQL 中的一些更改,都将不胜感激。

语境

考虑到数据源是根据SCD 1 (覆盖)更新的,跟踪每日变化的唯一方法是每天对数据进行历史记录。 在实践中,安排每天加载数据源并存储当天的新数据。

回答

您正在以正确的方式实施SCD 2 (在更改时创建新记录)。 确保为每条记录添加一个技术领域以及生成时的时间戳是很重要的,这样您以后就可以研究趋势。

额外的

您最终可以通过规范化 model 来优化此方法,以减小您正在应用 SCD 2 的表的大小(在更改时创建新记录)。

请让我举一个简单的例子。 考虑一个表:

  • 只有 1 条记录
  • 1000 个字段,其中只有 1 个字段 (LAST_UPDATE) 可以使用 SCD 2 更改(在更改时创建新记录)

如果 LAST_UPDATE 每天更改 100,000 次,则每天都会触发创建同一记录的 100,000 个新版本(因为我们跟踪其更改)。 因此,一年后该表仍将有 1,000 个字段和 36,500,000 条记录。 相反,如果我们对 model 进行规范化,使得 LAST_UPDATE 字段(使用 SCD 2 进行历史记录)存储在单独的表中,一年后我们将拥有一个具有 1 条记录和 999 列的表,以及具有 1 列和 36,500,000 条记录的不同表。

在您的数据库是行数据库的情况下,您将从规范化 model 中受益匪浅。 相反,如果您的数据库是列式数据库,那么一切都已经处理好了,因为每一列都是单独压缩的,而不是逐行压缩。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM