使用数据流将 Excel 数据源与 Dataverse 同步
将数据集成到 Dataverse 时常见的场景之一是:将其与源保持同步。 使用标准数据流,可将数据加载到 Dataverse 中。 本文介绍如何使数据与源系统保持同步。
键列的重要性
如果将关系数据基础系统用作源,通常表中有键列,并且数据采用可加载到 Dataverse 中的适当格式。 但是,Excel 文件中的数据并不总是那么干净。 通常有一个 Excel 文件,其中包含无任何键列的数据工作表。 在标准数据流的字段映射注意事项中,你可以看到:如果源中有键列,则可轻松将其用作数据流字段映射中的备用键。
拥有键列对于 Dataverse 中的表十分重要。 键列是一种行标识符,此列在每一行中均包含唯一值。 使用键列有助于避免重复行,同时还有助于将数据与源系统同步。 如果从源系统中删除了一行,则拥有键列也有助于查找该行并从 Dataverse 中删除该行。
创建键列
如果数据源中没有键列(Excel、文本文件或任何其他源),则可使用以下方法生成一个:
清理数据。
创建键列的第一步是删除所有多余的行、清理数据、删除空行以及删除所有潜在的重复项。
添加索引列。
清理数据后,下一步是向其分配键列。 为此,可使用添加列选项卡中的添加索引列。
添加索引列时,可使用某些选项来自定义索引列。例如,自定义起始编号或每次跳过的值数量。 默认起始值为零,每次递增一个值。
将键列用作备用键
拥有键列后,可将数据流的字段映射分配给备用键。
其设置很简单,只需设置备用键即可。 但是,如果有多个文件或表,则还有一个步骤需要考虑。
如果有多个文件
如果只有一个 Excel 文件(或工作表或表格),则上一过程中的步骤足以设置备用键。 但是,如果有多个具有相同结构(但具有不同数据)的文件(或工作表或表),则需将其追加到一起。
如果要从多个 Excel 文件获取数据,Power Query 的合并文件选项会自动将所有数据追加到一起,且输出将如下图所示。
如上图所示,除追加结果外,Power Query 还会引入包含文件名的 Source.Name 列。 每个文件中的索引值可能均为唯一,但它在多个文件中并不唯一。 但是,索引列和 Source.Name 列的组合为唯一组合。 为此场景选择复合备用键。
删除查询输出中不再存在的行
最后一步是选择删除查询输出中不再存在的行。 此选项可将 Dataverse 表中的数据与基于备用键(可能是复合键)的源中的数据进行比较,同时删除不再存在的行。 因此,Dataverse 中的数据将始终与数据源同步。