Power BI - CRUD分析如何?

Power BI - CRUD analysis how?

我有 2 个数据源 - 源 1(SharePoint 列表)和源 2(云源)。我将两者都带入了 Power BI。他们每个人都有一个键来识别记录的唯一实例。

在 Power BI 中,我被要求识别新插入/删除和更新记录。

那么有没有简单的方法来做到这一点?

Table 1 

Key Column 1 Column 2 Column 3 

Table 2 

Key Column 1 Column 2 Column 3 

您可以在 Power Query 编辑器中使用 Merge queries 转换来执行此操作。 Left AntiRight Anti 联接类型将为您提供仅存在于第一个或第二个数据源中的行。 Inner 将为您提供两者中都存在的行(基于它们的键值),稍后您可以比较其他列以确定它们是否被修改。

假设有两个数据源,如下:

来源 1

Key Column 1 Column 2 Column 3
1 initial value initial value initial value
2 initial value initial value initial value
3 initial value initial value initial value

来源 2

Key Column 1 Column 2 Column 3
1 initial value initial value initial value
2 modified value initial value initial value
4 initial value initial value initial value
  • 1存在于两个源中且未被修改;
  • 2 存在于两个源中但被修改(Column 1 具有不同的值);
  • 3 仅存在于 Source 1;
  • 4 仅存在于 Source 2.

在 Power Query 编辑器中,在功能区的 Home 选项卡中,在 Combine 组中,单击 Merge Queries -> Merge Queries as New、select Source 1 作为第一个来源,Source 2 作为第二个来源,将连接类型设置为 Left Anti 并确保两个来源中的 Key 列都是 selected:

这将为您提供仅存在于 Source 1 中的行,即仅 3(并从那里删除 Source 2 中的列,因为它们不需要):

再次进行相同的合并,但交换源:

获取仅存在于 Source 2 中的行,即 4:

然后再做一次,但这次将连接类型设置为 Inner:

单击Source 2列的header中的按钮并添加除Key之外的所有列并添加一个条件列(Add Column -> General -> Conditional Column) 如下(注意,屏幕截图不正确 - 第三次比较应该在 Column 3Source 2.Column 3 之间):

它会告诉你这一行是否被修改(2)或没有被修改(1):

如果需要,您可以单击自定义列的 header 中的按钮并过滤结果以仅显示行,其中值为 Modified,这将只留下 2 在结果中: