标准数据流的字段映射注意事项

在将数据加载到 Dataverse 表中时,需要将数据流编辑体验中的源查询列映射到目标 Dataverse 表列。 除了考虑映射数据之外,还有其他需要考虑的注意事项和最佳做法。 在本文中,我们将介绍用于控制数据流刷新行为并因此来控制目标表中的数据的不同数据流设置。

控制每次刷新时数据流是创建还是更新插入记录

每次刷新数据流时,它都会从源中提取记录并将记录加载到 Dataverse 中。 如果多次运行数据流(具体取决于配置数据流的方式),则可以:

  • 在每次刷新数据流时创建新记录,即使目标表中已存在此类记录也是如此。
  • 如果表中尚不存在新记录,则创建新记录;如果表中已存在现有记录,则更新现有记录。 此行为称为更新插入

如果使用键列,则将指示数据流将记录更新插入到目标表中,但是,如果不选择键,则将指示数据流会在目标表中创建新记录。

键列是表中数据行的唯一且确定的列。 例如,在订单表中,如果订单 ID 是键列,则不应有两行具有相同的订单 ID。 此外,一个订单 ID(假设有一个 ID 为 345 的订单)应该只表示表中的一行。 若要从数据流中选择 Dataverse 中表的键列,则需要在“映射表”体验中设置键字段。

创建新表时选择主名称和键字段

下图显示了如何在数据流中创建新表时选择要从源中填充的键列。

主键和备用键相同。

在字段映射中看到的主名称字段用于作为标签字段;此字段不需要是唯一字段。 表中用于检查重复的字段将是你在“备用键”字段中设置的字段。

如果表中具有主键,则可确保即使映射到主键的字段中有重复数据,也不会将重复条目加载到表中。 此行为可保持表中数据的高质量。 高质量数据对于根据表生成报告解决方案至关重要。

主名称字段

主名称字段是 Dataverse 中使用的显示字段。 此字段在默认视图用于显示其他应用程序中的表内容。 此字段不是主键字段,并且也不应被视为主键字段。 此字段可以具有重复值,因为它是显示字段。 但是,最佳做法是使用串联字段映射到主名称字段,因此该名称完全无需解释。

备用键字段是用作主键的内容。

加载到现有表中时选择键字段

在将数据流查询映射到现有 Dataverse 表时,你可以选择将数据加载到目标表中时是否应使用键以及应该使用哪个键。

下图显示了如何选择将记录更新插入到现有 Dataverse 表中时要使用的键列:

选择键以将数据向上插入 Dataverse 表中。

设置表的唯一 ID 列,并将其用作用于将记录更新插入到现有 Dataverse 表中的键字段

所有 Microsoft Dataverse 表行都具有定义为 GUID 的唯一标识符。 这些 GUID 是每个表的主键。 默认情况下,表主键不能由数据流设置,并且是在创建记录时由 Dataverse 自动生成。 在某些高级用例中,利用表的主键是可取的,例如,将数据与外部源集成,同时在外部表和 Dataverse 表中保留相同的主键值。

注意

  • 仅当将数据加载到现有表中时,此功能才可用。
  • 唯一标识符字段仅接受包含 GUID 值的字符串,任何其他数据类型或值都将导致记录创建失败。

若要利用表的唯一标识符字段,请在创作数据流时,在映射表页面中选择加载到现有表。 在下图所示的示例中,其将数据加载到“CustomerTransactions”表中,并使用数据源中的“TransactionID”列作为表的唯一标识符。

请注意,在“选择键”下拉列表中,可以选择该表的唯一标识符(其名称始终为“表名称 + ID”)。 由于表名称为“CustomerTransactions”,因此唯一标识符字段将被命名为“CustomerTransactionId”。

选择主键以将数据向上插入 Dataverse 表中。

选择后,列映射部分将更新为包含唯一标识符作为目标列。 然后,你可以映射表示每个记录的唯一标识符的源列。

将数据映射到“唯一标识符”列。

键字段的适当候选项是什么

键字段是表示表中的唯一行的唯一值。 必须具有此字段,因为它有助于避免表中出现重复记录。 此字段可以来自以下三个源:

  • 源系统中的主键(如以上示例中的 OrderID)。 通过数据流中的 Power Query 转换创建的串联字段。

    合并列以创建串联的唯一列。

  • 要在备用键选项中选择的字段的组合。 用作键字段的字段的组合也称为 复合键

    通过字段映射创建复合键。

删除不再存在的行

如果希望表中的数据始终与源系统中的数据同步,请选择“删除查询输出中不再存在的行”选项。 但是,此选项会降低数据流速度,因为需要根据主键(数据流字段映射中的备用键)来比较行才能执行此操作。

此选项意味着,如果表中的某个数据行在下一个数据流刷新的查询输出中不存在,则将从表中删除该行。

删除不再存在的行。

注意

标准 V2 数据流依靠 createdonmodifiedon 字段从目标表中删除数据流输出中不存在的行。 如果目标表中不存在这些列,则不会删除记录。

已知限制

  • 目前,不支持映射到多态查找字段。
  • 目前,不支持映射到多级查找字段(指向另一表的查找字段的查找)。
  • 目前,不支持映射到“状态”和“状态描述字段
  • 不支持将数据映射到包含换行符的多行文本,并且将删除换行符。 相反,你可以使用换行标记 <br> 来加载和保留多行文本。
  • 仅在某些条件下才支持映射到通过启用多选选项配置的选择字段。 此数据流仅将数据加载到启用了多选选项的“选择”字段,并使用标记的逗号分隔值(整数)列表。 例如,如果标记为“Choice1, Choice2, Choice3”,其对应的整数值为“1, 2, 3”,则列值应为“1,3”以选择第一个和最后一个选项。
  • 标准 V2 数据流依靠 createdonmodifiedon 字段从目标表中删除数据流输出中不存在的行。 如果目标表中不存在这些列,则不会删除记录。
  • 不支持映射到 IsValidForCreate 属性设置为 false 的字段(例如,“联系人”实体的“帐户”字段)。