注释
此功能目前处于公开预览状态。 此预览版在没有服务级别协议的情况下提供,不建议用于生产工作负荷。 某些功能可能不受支持或者受限。 有关详细信息,请参阅 Microsoft Azure 预览版补充使用条款。
本快速入门介绍如何在 Microsoft Fabric 中创建图形模型。
重要
本文专门使用 AdventureWorks 示例图形数据集。
先决条件
若要开始使用 Microsoft Fabric 中的图形,需要满足以下先决条件:
Graph 在你的 区域可用。
在您的 Fabric 租户中已启用 Graph。
OneLake 中的 Lakehouse 数据湖仓,其中包含要分析的数据。 本快速入门以 Adventure Works 数据为例。 数据和结果可能有所不同。 如果您没有湖屋,请按照以下步骤创建一个湖屋:使用 OneLake 创建湖屋。
重要
你是工作区的用户,或者拥有在工作区中创建项目的权限。 有关详细信息,请参阅 Microsoft Fabric 中的工作区。
重要
图形的访问管理仅限于托管图形的工作区。 工作区外部的用户无法访问图形。 有权访问 Lakehouse 中基础数据的工作区中的用户可以对图表进行建模和查询。
创建图形模型
Microsoft Fabric 中的 Graph 使用与其他 Microsoft Fabric 项相同的工作区角色。 下表汇总了与图形模型上每个Microsoft Fabric 工作区角色功能关联的权限。
| 能力 | 管理员 | 成员 | 贡献者 | 查看器 |
|---|---|---|---|---|
| 创建或修改图形模型 | ✔ | ✔ | ✔ | ✖ |
| 删除图形模型 | ✔ | ✔ | ✔ | ✖ |
| 查看和读取图形模型的内容 | ✔ | ✔ | ✔ | ✔ |
| 共享图形模型 | ✔ | ✔ | ✖ | ✖ |
若要在 Microsoft Fabric 中创建图形模型,请执行以下步骤:
选择 + 新建项目。
选择“分析和训练数据>图模型”(预览版)。
小窍门
或者,在搜索框中输入“graph”,然后按 Enter 搜索图形项。
输入图形模型的名称,然后选择“ 创建”。
创建图形
在图形视图中,应会看到 “保存”、“ 添加节点”和 “添加边缘”和 “获取数据 ”按钮。
若要在 Microsoft Fabric 中创建图形,请执行以下步骤:
在图形模型中,选择“ 获取数据”。
从 OneLake 目录中,从 Fabric 中选择要用于图形的数据。
注释
本快速入门以 Adventure Works 数据为例。 数据集和结果可能有所不同。
然后选择连接。
选择数据表,然后选择“ 加载”。
你应该会看到可以在图表中使用的数据。
注释
Microsoft Fabric 中的 Graph 当前支持以下数据类型:
- 布尔值(值为
true和false) - 双精度值(值为 64 位浮点数)
- 整数(值为 64 位有符号整数)
- 字符串(值为 Unicode 字符串)
- 区域日期时间(值是时间戳以及时区的临时时间)
- 布尔值(值为
开始建模
现在,可以通过向图形添加节点和边缘来开始建模。 我们使用 Adventure Works 数据模型作为示例。
添加节点
在本部分中,我们将为 Adventure Works 数据模型中的每个实体创建节点。
| 节点标签 | 映射表 | 映射列 |
|---|---|---|
| 客户 | customers | CustomerID_K |
| 下单 | orders | SalesOrderDetailID_K |
| 员工 | employees | EmployeeID_K |
| 产品 | products | ProductID_K |
| 产品类别 | 产品类别 | 类别ID_K |
| 产品子类别 | 产品子类别 | SubcategoryID_K |
| 供应商 | vendors | VendorID_K |
若要将节点添加到图形,请执行以下步骤:
在图形模型中,选择“ 添加节点 ”以向图形添加新节点。
在 “添加节点到图形 ”对话框中,输入 标签 名称并选择相应的 “映射”表 和 “映射”列。
在此示例中,节点标签为“Customer”,映射表为“customers”,映射列为“CustomerID_K”。
选择 “确认 ”将节点添加到图形。
对所有其他节点重复此过程。 应会看到图形中表示的所有节点。
选择 “保存” 开始生成图形。
添加边缘
在本部分中,我们将创建边缘来定义 Adventure Works 数据模型中节点之间的关系。
| Edge | 映射表 | 源节点映射列 | 目标节点映射列 |
|---|---|---|---|
| 销售 | orders | 员工 EmployeeID_FK |
下单 SalesOrderDetailID_K |
| 采购 | orders | 客户 CustomerID_FK |
下单 SalesOrderDetailID_K |
| 包含 | orders | 下单 SalesOrderDetailID_K |
产品 ProductID_FK |
| isOfType | products | 产品 ProductID_K |
产品子类别 SubcategoryID_FK |
| 归属于 | 产品子类别 | 产品子类别 SubcategoryID_K |
产品类别 CategoryID_FK |
| 生产 | 供应商产品 | 供应商 VendorID_FK |
产品 ProductID_FK |
若要将边缘添加到图形,请执行以下步骤:
选择 “添加边缘 ”以在节点之间创建关系。
在 “添加边缘 ”对话框中,选择映射表、源节点和目标节点,并定义关系。
在此示例中,边缘定义为“销售”,其中映射表为“orders”,将源节点“Employee”(EmployeeID_FK)连接到目标节点“Order”(SalesOrderDetailID_K)。
选择 “确认 ”,将边缘添加到图形。
对所有其他边缘重复此过程。 应会看到图形中表示的所有边缘。
此时,你已为图形创建了所有节点和边缘。 这是图形模型的基本结构。
加载图形
若要加载图形,请选择“ 保存”。 这将验证图形模型、从 OneLake 加载数据、构造图形并准备好进行查询。
重要
在模型或基础数据发生更改时,你当前需要重新加载图形(通过选择 “保存”)。
查询图形
Microsoft Fabric 中的 Graph 使用与其他 Microsoft Fabric 项相同的工作区角色。 以下工作区角色权限适用,具体取决于是通过图形模型还是 QuerySet 项运行查询。
Graph 模型的工作区角色权限
| 能力 | 管理员 | 成员 | 贡献者 | 查看器 |
|---|---|---|---|---|
| 创建或修改图形模型 | ✔ | ✔ | ✔ | ✖ |
| 删除图形模型 | ✔ | ✔ | ✔ | ✖ |
| 查看和读取图形模型的内容 | ✔ | ✔ | ✔ | ✔ |
| 共享图形模型 | ✔ | ✔ | ✖ | ✖ |
| 创建或修改图形查询 | ✔ | ✔ | ✔ | ✖ |
| 创建或修改图形 QuerySet 项 | ✔ | ✔ | ✔ | ✖ |
Graph QuerySet 的工作区角色权限设置
| 能力 | 管理员 | 成员 | 贡献者 | 查看器 |
|---|---|---|---|---|
| 创建或修改图形 QuerySet 项 | ✔ | ✔ | ✔ | ✖ |
| 删除 QuerySet 项 | ✔ | ✔ | ✔ | ✖ |
| 查看和读取 QuerySet 项的内容 | ✔ | ✔ | ✔ | ✔ |
| 连接到图形实例 | ✔ | ✔ | ✔ | ✖ |
| 共享查询集 | ✔ | ✔ | ✖ | ✖ |
注释
所有用户都需要对基础图形实例项的读取访问权限,才能从图形 QuerySet 项对引用的图形实例执行查询。 QuerySet 项仅支持读取、写入和重新共享权限。
使用查询生成器
现在,可以通过选择特定的节点和关系来查询图形。 所有查询都基于 我们在上一节中生成的图形结构。
按照以下步骤切换到查询生成器并开始以交互方式查询图形:
从图形主页中选择 模式>查询生成器 。 在此视图中,还可以创建一个只读查询集,该查询集的功能与下面相同,并允许共享查询结果。
选择 “添加节点 ”以查看可用于查询的节点。
选择要将其添加到查询的节点。 在此示例中,我们将添加 “客户 ”节点。
在这里,你可以通过添加节点和边、应用筛选器,以及选择要在结果中返回的属性来构建查询。
使用代码编辑器
还可以使用 GQL 图形查询语言查询图形。
按照以下步骤切换到代码编辑器,然后使用 GQL 开始查询图形:
- 从图形主页中选择 模式>代码编辑器 。
- 在输入字段中输入 GQL 查询,例如
MATCH (n:`Order`) RETURN count(n) AS num_orders。 - 选择 “运行查询 ”以执行查询。
还可以运行更复杂的查询,例如组合匹配图形模式、筛选、聚合、排序和 top-k 限制的查询:
MATCH (v:Vendor)-[:produces]->(p:`Product`)->(sc:`ProductSubcategory`)->(c:`ProductCategory`),
(o:`Order`)-[:`contains`]->(p)
FILTER c.categoryName = 'Components'
LET vendorName = v.vendorName, subCategoryName = sc.subCategoryName
RETURN vendorName, subCategoryName, count(p) AS num_products, count(o) AS num_orders
GROUP BY vendorName, subCategoryName
ORDER BY num_orders DESC
LIMIT 5
有关 GQL 语言支持的详细信息,请参阅 GQL 语言指南。