注释
此功能目前处于公开预览状态。 此预览版在没有服务级别协议的情况下提供,不建议用于生产工作负荷。 某些功能可能不受支持或者受限。 有关详细信息,请参阅 Microsoft Azure 预览版补充使用条款。
在Microsoft Fabric中将关系数据转换为图形模型有助于直接查询连接,而不是编写重复联接。 本文提供了一个实际转换工作流,用于将关系表映射到节点类型和边缘类型,然后在缩放模型之前验证模型。
如果仍在确定图形是否适合工作负荷,请先查看 “比较关系图”和“关系数据库”。
使用本文作为转换清单。 有关详细的建模规则,请参阅 设计图形架构。
先决条件
- 具有创建项权限的 Fabric 工作区。
- 包含源关系表的 Lakehouse 。
- 已为您的租户启用 Graph ,并在您的 区域 中可用。
- 熟悉图形模型编辑器。 如果你不熟悉图形,请从 教程:图形简介开始。
转换工作流
转换关系数据时使用此序列:
- 查看源表并确定数据中的实体(客户、产品、订单)、如何唯一标识每一行,以及表如何相互连接。
- 确定哪些实体成为图形中的节点类型,以及哪个列唯一标识每个实体。
- 确定哪些表连接成为边缘类型,以及它们的方向(例如
Customer购买Order)。 - 根据您的表结构,应用正确的映射模式:一对多、多对多、嵌入值或相关表关系链。
- 在图形模型编辑器中生成模型,并确认节点类型和边缘类型是否按预期显示。
步骤 1:描述源关系表
确认源表中的以下项:
- 表示不同事物的主要实体,例如客户、产品或订单。
- 唯一标识每个实体行的键列,例如
CustomerID,OrderID或ProductSKU。 - 定义表之间关系的外键列,例如
Orders表中的CustomerID列引用Customers表。 - 可能是嵌入实体的列,例如
Country或Department。
有关实体、键、属性和映射约束的详细决策条件,请参阅 设计图形架构。
步骤 2:将实体映射到节点类型
将每个实体映射到节点类型。
| 关系元素 | 图形映射 | Example |
|---|---|---|
| 实体表 | 节点类型 |
Customers 表 ->Customer 节点类型 |
| 主密钥 | 节点密钥(ID) | CustomerID_K |
| 描述性列 | 节点属性 |
FirstName、LastName、EmailAddress |
使用具有稳定唯一值的键列。 如果一列不唯一,请配置复合键。
有关设计指南,请参阅 设计图形架构。
步骤 3:将关系映射到边缘类型
将每个关系路径映射到定向边缘类型。
| 关系元素 | 图形映射 | Example |
|---|---|---|
| 外键关系 | 边缘类型 | purchases |
| 引用表 | 边缘映射表 | adventureworks_orders |
| 父/子联接列 | 源和目标映射 |
CustomerID_FK ->CustomerID_K |
选择边缘标签作为在查询中清晰读取的谓词短语,例如 purchases, contains和 belongsTo。
有关边缘映射要求,请参阅 “选择边缘类型”。 有关 UI 步骤,请参阅 教程:向图形添加边缘类型。
步骤 4:应用常见的关系到图模式
在转换期间使用这些模式,然后按照链接的指南执行详细实现。 有关完整模式说明,请参阅 通用表格到图形模式。
- 一对多:子表引用父键(例如,订单引用客户)。 请参阅 教程:向图形添加边缘类型。
- 多对多:连接表链接两个实体(例如 SalesOrderDetail 表格链接产品和订单)。 请参阅 教程:向图形添加边缘类型。
-
嵌入实体:列值应成为可遍历的节点类型(例如,提升
Country到Country节点类型)。 请参阅 教程:从一个映射表添加多个节点和边缘类型。 - 层次结构:父子链跨越多个级别(例如员工报告结构)。 请参阅 教程:向图形添加边缘类型。
步骤 5:生成并验证图形模型
完成映射后,在编辑器中生成并验证图形模型:
添加节点类型并从键列配置 ID。
添加边类型,并映射源列和目标列。
选择 “保存” 以验证模型并加载数据。
确认画布中是否显示预期的节点类型和边缘类型标签。
运行验证查询以确认关系和基数。 例如:
MATCH (c:Customer)-[:purchases]->(o:Order) RETURN c.CustomerID_K, COUNT(o) AS orderCount ORDER BY orderCount DESC更新标签以匹配架构。 确认每个边缘类型返回结果,并且计数看起来正确。
如果缺少预期的边缘,请验证映射表中的联接列值和数据类型。
排查常见转换问题
- 未创建边缘:确认源和目标映射列与节点键值和数据类型匹配。
- 重复节点:确认节点键列是唯一的或切换到复合键。
- 过度建模的图:将描述性字段保留为属性,除非需要以实体的形式遍历这些字段。
- 模型不足的图:需要基于关系的分析时,将共享列提取到节点类型。