在前面的教程步骤中,每个源表都映射到一个节点类型或一个边缘类型。 但是,关系表通常包含嵌入的实体。 例如, Employees 表包含一列 Country 。 与其将国家/地区作为 Employee 节点的一个属性进行存储,不如将其提取到自己的 Country 节点类型中,并通过 livesIn 边连接。 此方法会创建更丰富的图形模型,用于直接查询员工与国家/地区之间的关系。
在本教程步骤中,你将从 Employees 源表创建以下图形实体:
- 一种
Country节点类型(新) - 从
Employee连接到Country的livesIn边类型(新)。 此边缘指示Employee livesIn Country。
Adventure Works Employee 表格
在 Adventure Works 数据模型中, Employees 数据源表的列包括以下内容:
EmployeeID_KManagerIDEmployeeFullNameJobTitleOrganizationLevelMaritalStatusGenderTerritoryCountryGroup
下表显示了这些列如何映射到图形实体:
| 图形实体 | 类型 | 键列 |
|---|---|---|
Employee |
节点(已存在) | EmployeeID_K |
Country |
节点(新) | Country |
livesIn |
Edge(新增),从Employee到Country |
EmployeeID_K → Country |
注释
在上表中, Country 指 Employees 表中的源列和图形中的新节点类型。 它们共享相同的名称,但当节点类型是图形模型中的实体时,该列是表中的原始数据。
从源表创建节点类型时,手动将表中的相关列添加为该节点类型的 属性 。 由于 Employees 表有 10 列,因此 Employee 和 Country 这两种节点类型都可以将这 10 列中的所有列添加为属性。 在本文中,只向 Country 添加与节点类型相关的属性。
创建 Country 节点类型
若要创建 Country 节点类型,请执行以下步骤:
在图形模型的顶部功能区中,选择“ 添加节点”。
在 “创建节点”中,输入以下值:
-
节点标签:
Country - 源表: adventureworks_employees
-
键:
Country. 选择Country作为键列将其添加为节点类型上的属性。
-
节点标签:
不要添加任何其他属性。
选择 “创建 ”,将节点类型添加到图形。
您会看到图中已添加了 Country 节点类型。
创建 livesIn 边缘节点
节点 Employee 类型已在 上一教程步骤的图形中。 用新的livesIn边将新的Country节点连接到Employee节点。
若要创建 livesIn 边缘类型,请执行以下步骤:
- 在顶部功能区中,选择 “添加边缘”。
- 在 “创建边缘 ”对话框中,输入以下值:
-
边缘标签:
livesIn - 源表: adventureworks_employees
-
源节点:
Employee -
源密钥:
EmployeeID_K -
目标节点:
Country -
目标键:
Country
-
边缘标签:
- 选择 “创建 ”,将边缘添加到图形。
你会看到图中在 Employee 和 Country 节点之间添加了 livesIn 边类型。
Employee修改节点类型
现在,既然Country已成为一种独立的节点类型,并通过livesIn边连接到Employee,那么Country列作为Employee属性就是多余的。 编辑 Employee 节点类型,以删除 Country 属性。
- 双击
Employee节点类型以查看其属性。 - 选择 “编辑定义”。
- 取消选中
Country属性以将其从节点中移除。 - 选择“保存”。
小窍门
过度的属性会使图形更难维护和使用。 对于所有节点类型,请避免具有以下属性:
- 节点的唯一性不需要
- 你的查询或分析中不是必需的
加载图形
配置所有节点类型和边缘类型后,重新加载图形。 在对图形进行结构更改后,需要重新加载。
在顶部功能区中,选择“ 保存”。 此操作验证图形模型、从 OneLake 加载数据、构造图形并使其准备好进行查询。 请耐心等待,因为此过程可能需要一些时间,具体取决于数据的大小。
图形现在包括新的 Country 节点类型和 livesIn 边缘类型。 此结构允许你直接查询员工与其国家/地区之间的关系。
Review
在本教程步骤中,你处理了单个 Employees 源表中的两种节点类型和一种边缘类型:
-
Employeenode (在上一步骤中创建,此处进行了优化) -
Country从Country列中提取的新节点 -
livesIn边(新,连接Employee到Country)
每当关系表包含嵌入要素,并希望将这些要素作为图中的独立节点表示时,此模式就派上用场。 查找表示不同真实世界实体(如国家、城市或部门)的列,以便作为从中提取并创建自己节点类型的候选项。
小窍门
有关更多建模模式和决策指南,请参阅 设计图形架构。