在 Microsoft Fabric 中将关系数据转换为图形模型

注释

此功能目前处于公开预览状态。 此预览版在没有服务级别协议的情况下提供,不建议用于生产工作负荷。 某些功能可能不受支持或者受限。 有关详细信息,请参阅 Microsoft Azure 预览版补充使用条款

在Microsoft Fabric中将关系数据转换为图形模型有助于直接查询连接,而不是编写重复联接。 本文提供了一个实际转换工作流,用于将关系表映射到节点类型和边缘类型,然后在缩放模型之前验证模型。

如果仍在确定图形是否适合工作负荷,请先查看 “比较关系图”和“关系数据库”。

使用本文作为转换清单。 有关详细的建模规则,请参阅 设计图形架构

先决条件

转换工作流

转换关系数据时使用此序列:

  1. 查看源表并确定数据中的实体(客户、产品、订单)、如何唯一标识每一行,以及表如何相互连接。
  2. 确定哪些实体成为图形中的节点类型,以及哪个列唯一标识每个实体。
  3. 确定哪些表连接成为边缘类型,以及它们的方向(例如 Customer购买Order)。
  4. 根据您的表结构,应用正确的映射模式:一对多、多对多、嵌入值或相关表关系链。
  5. 在图形模型编辑器中生成模型,并确认节点类型和边缘类型是否按预期显示。

步骤 1:描述源关系表

确认源表中的以下项:

  • 表示不同事物的主要实体,例如客户、产品或订单。
  • 唯一标识每个实体行的键列,例如 CustomerIDOrderIDProductSKU
  • 定义表之间关系的外键列,例如Orders表中的CustomerID列引用Customers表。
  • 可能是嵌入实体的列,例如 CountryDepartment

有关实体、键、属性和映射约束的详细决策条件,请参阅 设计图形架构

步骤 2:将实体映射到节点类型

将每个实体映射到节点类型。

关系元素 图形映射 Example
实体表 节点类型 Customers 表 ->Customer 节点类型
主密钥 节点密钥(ID) CustomerID_K
描述性列 节点属性 FirstNameLastNameEmailAddress

使用具有稳定唯一值的键列。 如果一列不唯一,请配置复合键。

有关设计指南,请参阅 设计图形架构

步骤 3:将关系映射到边缘类型

将每个关系路径映射到定向边缘类型。

关系元素 图形映射 Example
外键关系 边缘类型 purchases
引用表 边缘映射表 adventureworks_orders
父/子联接列 源和目标映射 CustomerID_FK ->CustomerID_K

选择边缘标签作为在查询中清晰读取的谓词短语,例如 purchasescontainsbelongsTo

有关边缘映射要求,请参阅 “选择边缘类型”。 有关 UI 步骤,请参阅 教程:向图形添加边缘类型

步骤 4:应用常见的关系到图模式

在转换期间使用这些模式,然后按照链接的指南执行详细实现。 有关完整模式说明,请参阅 通用表格到图形模式

步骤 5:生成并验证图形模型

完成映射后,在编辑器中生成并验证图形模型:

  1. 添加节点类型并从键列配置 ID。

  2. 添加边类型,并映射源列和目标列。

  3. 选择 “保存” 以验证模型并加载数据。

  4. 确认画布中是否显示预期的节点类型和边缘类型标签。

  5. 运行验证查询以确认关系和基数。 例如:

    MATCH (c:Customer)-[:purchases]->(o:Order)
    RETURN c.CustomerID_K, COUNT(o) AS orderCount
    ORDER BY orderCount DESC
    

    更新标签以匹配架构。 确认每个边缘类型返回结果,并且计数看起来正确。

如果缺少预期的边缘,请验证映射表中的联接列值和数据类型。

排查常见转换问题

  • 未创建边缘:确认源和目标映射列与节点键值和数据类型匹配。
  • 重复节点:确认节点键列是唯一的或切换到复合键。
  • 过度建模的图:将描述性字段保留为属性,除非需要以实体的形式遍历这些字段。
  • 模型不足的图:需要基于关系的分析时,将共享列提取到节点类型。