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 Anti
和 Right 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 3
和 Source 2.Column 3
之间):
它会告诉你这一行是否被修改(2
)或没有被修改(1
):
如果需要,您可以单击自定义列的 header 中的按钮并过滤结果以仅显示行,其中值为 Modified
,这将只留下 2
在结果中:
我有 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 Anti
和 Right 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 3
和 Source 2.Column 3
之间):
它会告诉你这一行是否被修改(2
)或没有被修改(1
):
如果需要,您可以单击自定义列的 header 中的按钮并过滤结果以仅显示行,其中值为 Modified
,这将只留下 2
在结果中: