将数据加载到 Dataverse 表中时,可将数据流编辑体验中的源查询列映射到目标 Dataverse 表列。 除了映射数据之外,还有其他需要考虑的注意事项和最佳做法。 在本文中,我们将介绍不同的数据流设置,这些设置用于控制数据流刷新行为,从而影响目标表中的数据。
控制数据流操作每次刷新时是创建还是更新或插入记录
每次刷新数据流时,它都会从源提取记录并将其加载到 Dataverse 中。 如果多次运行数据流(具体取决于配置数据流的方式),可以:
- 为每个数据流刷新创建新记录,即使目标表中已存在此类记录也是如此。
- 如果表中尚不存在新记录,则创建新记录;如果现有记录已存在于表中,则更新现有记录。 此行为称为 upsert。
使用键列用于指示数据流将记录更新插入到目标表中,而不选择键则会指示数据流在目标表中创建新记录。
键列是表中数据行的唯一和确定性的列。 例如,在 Orders 表中,如果 Order ID 是键列,则不应有两行具有相同的订单 ID。 此外,一个订单 ID(假设 ID 为 345 的订单)只应表示表中的一行。 要在数据流中为 Dataverse 的表选择关键列,需要在“映射表功能”界面中设置关键字段。
创建新表时选择主名称和键字段
下图显示了如何在数据流中创建新表时选择要从源填充的键列。
在字段映射中看到的主名称字段是用于标签字段;此字段不需要是唯一的。 表中用于检查重复的字段是在 “备用键 ”字段中设置的字段。
在表中具有主键可确保即使字段中存在映射到主键的重复数据,也不会将重复项加载到表中。 此行为保持表中数据的高质量。 高质量数据对于基于表生成报告解决方案至关重要。
主名称字段
主名称字段是 Dataverse 中使用的显示字段。 此字段用于默认视图以显示其他应用程序中表的内容。 此字段不是主键字段,不应将其视为该字段。 此字段可以具有重复值,因为它是显示字段。 但是,最佳做法是使用串联字段映射到主名称字段,因此该名称是完全解释性的。
备用键字段是用作主键的内容。
加载到现有表时选择键字段
将数据流查询映射到现有 Dataverse 表时,可以选择将数据加载到目标表中时是否应使用哪个键。
下图显示了如何选择在将记录向上插入到现有 Dataverse 表时要使用的键列:
设置表的唯一 ID 列,并将其用作将记录向上插入现有 Dataverse 表的关键字段
所有 Microsoft Dataverse 表的行都具有定义为 GUID 的唯一标识符。 这些 GUID 是每个表的主键。 默认情况下,表的主键不能由数据流设置,并且创建记录时由 Dataverse 自动生成。 在某些情况下,利用表的主键是可取的,例如,将数据与外部源集成,同时在外部表和 Dataverse 表中保留相同的主键值。
注释
- 仅当将数据加载到现有表时,此功能才可用。
- 唯一标识符字段仅接受包含 GUID 值的字符串,任何其他数据类型或值都会导致记录创建失败。
若要利用表的唯一标识符字段,请在创作数据流时,在“映射表”页中选择“加载到现有表”。 在后续图像中显示的示例中,它将数据加载到 CustomerTransactions 表中,并使用数据源中的 TransactionID 列作为表的唯一标识符。
请注意,在 “选择”键 下拉列表中,可以选择该表的唯一标识符(始终名为“tablename + id”。 由于表名称为“CustomerTransactions”,因此唯一标识符字段名为“CustomerTransactionId”。
选择后,列映射部分将更新为将唯一标识符作为目标列包含在内。 然后,可以映射表示每个记录的唯一标识符的源列。
关键领域的好候选项是什么
键字段是表示表中唯一行的唯一值。 必须具有此字段,因为它有助于避免表中出现重复记录。 此字段可以来自三个源:
源系统中的主键(如上一示例中的 OrderID)。 通过数据流中的 Power Query 转换创建的串联字段。
在备用键选项中要选择的字段组合。 用作键字段的字段的组合也称为 复合键。
删除不再存在的行
如果希望表中的数据始终与源系统中的数据同步,请选择“ 删除查询输出中不再存在的行”选项。 但是,此选项会降低数据流速度,因为需要基于主键(数据流字段映射中的备用键)进行行比较,才能执行此作。
该选项表示,如果表中的某个数据行在下一个数据流刷新的查询输出中不存在,则该行将从该表中删除。
注释
标准 V2 数据流依赖于 createdon 和 modifiedon 字段,以便从目标表中删除在数据流输出中不存在的行。 如果目标表中不存在这些列,则不会删除记录。
已知的限制
- 目前不支持映射到 多态查找 字段。
- 当前尚不支持映射到多级查找字段,即指向另一个表中查找字段的查找。
- 当前不支持映射到 状态和状态原因字段。
- 不支持将数据映射为包含换行符的多行文本,因此换行符会被删除。 相反,可以使用换行标记
<br>来加载和保留多行文本。 - 不支持在同一表中配置单选字段和多选 选项 字段,同时为多选字段指定多个值。
- 标准 V2 数据流依赖于字段
createdon和modifiedon,以便从目标表中删除未在数据流输出中出现的行。 如果目标表中不存在这些列,则不会删除记录。 - 映射到 IsValidForCreate 属性设置为
false的字段是不受支持的(例如,联系人实体的帐户字段)。