Microsoft Fabric 中的 Graph 快速入门指南

注释

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

本快速入门介绍如何在 Microsoft Fabric 中创建图形模型。

重要

本文专门使用 AdventureWorks 示例图形数据集

先决条件

若要开始使用 Microsoft Fabric 中的图形,需要满足以下先决条件:

  • Graph 在你的 区域可用。

  • 在您的 Fabric 租户中已启用 Graph。

    在 Fabric 租户中启用图形。

  • OneLake 中的 Lakehouse 数据湖仓,其中包含要分析的数据。 本快速入门以 Adventure Works 数据为例。 数据和结果可能有所不同。 如果您没有湖屋,请按照以下步骤创建一个湖屋:使用 OneLake 创建湖屋

  • 你是工作区的用户,或者拥有在工作区中创建项目的权限。 有关详细信息,请参阅 Microsoft Fabric 中的工作区

    重要

    图形的访问管理仅限于托管图形的工作区。 工作区外部的用户无法访问图形。 有权访问 Lakehouse 中基础数据的工作区中的用户可以对图表进行建模和查询。

创建图形模型

Microsoft Fabric 中的 Graph 使用与其他 Microsoft Fabric 项相同的工作区角色。 下表汇总了与图形模型上每个Microsoft Fabric 工作区角色功能关联的权限。

能力 管理员 成员 贡献者 查看器
创建或修改图形模型
删除图形模型
查看和读取图形模型的内容
共享图形模型

若要在 Microsoft Fabric 中创建图形模型,请执行以下步骤:

  1. 转到 Microsoft Fabric 工作区

  2. 选择 + 新建项目

  3. 选择“分析和训练数据>图模型”(预览版)。

    显示新项菜单的屏幕截图,其中包含选择图形模型的选项(预览)。

    小窍门

    或者,在搜索框中输入“graph”,然后按 Enter 搜索图形项。

  4. 输入图形模型的名称,然后选择“ 创建”。

创建图形

在图形视图中,应会看到 “保存”、“ 添加节点”和 “添加边缘”“获取数据 ”按钮。

若要在 Microsoft Fabric 中创建图形,请执行以下步骤:

  1. 在图形模型中,选择“ 获取数据”。

  2. 从 OneLake 目录中,从 Fabric 中选择要用于图形的数据。

    显示 OneLake 中的数据选择菜单的屏幕截图。

    注释

    本快速入门以 Adventure Works 数据为例。 数据集和结果可能有所不同。

  3. 然后选择连接

  4. 选择数据表,然后选择“ 加载”。

  5. 你应该会看到可以在图表中使用的数据。

    显示图形模型中数据视图的屏幕截图。

    注释

    Microsoft Fabric 中的 Graph 当前支持以下数据类型:

    • 布尔值(值为 truefalse
    • 双精度值(值为 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

若要将节点添加到图形,请执行以下步骤:

  1. 在图形模型中,选择“ 添加节点 ”以向图形添加新节点。

  2. “添加节点到图形 ”对话框中,输入 标签 名称并选择相应的 “映射”表“映射”列

    显示“向图形添加节点”对话框的屏幕截图。

    在此示例中,节点标签为“Customer”,映射表为“customers”,映射列为“CustomerID_K”。

  3. 选择 “确认 ”将节点添加到图形。

  4. 对所有其他节点重复此过程。 应会看到图形中表示的所有节点。

  5. 选择 “保存” 开始生成图形。

    显示添加到图形中的所有节点的屏幕截图。

添加边缘

在本部分中,我们将创建边缘来定义 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

若要将边缘添加到图形,请执行以下步骤:

  1. 选择 “添加边缘 ”以在节点之间创建关系。

  2. “添加边缘 ”对话框中,选择映射表、源节点和目标节点,并定义关系。

    显示“添加边缘”对话框的屏幕截图。

    在此示例中,边缘定义为“销售”,其中映射表为“orders”,将源节点“Employee”(EmployeeID_FK)连接到目标节点“Order”(SalesOrderDetailID_K)。

  3. 选择 “确认 ”,将边缘添加到图形。

  4. 对所有其他边缘重复此过程。 应会看到图形中表示的所有边缘。

    显示添加到图形的所有边缘的屏幕截图。

此时,你已为图形创建了所有节点和边缘。 这是图形模型的基本结构。

加载图形

若要加载图形,请选择“ 保存”。 这将验证图形模型、从 OneLake 加载数据、构造图形并准备好进行查询。

重要

在模型或基础数据发生更改时,你当前需要重新加载图形(通过选择 “保存”)。

查询图形

Microsoft Fabric 中的 Graph 使用与其他 Microsoft Fabric 项相同的工作区角色。 以下工作区角色权限适用,具体取决于是通过图形模型还是 QuerySet 项运行查询。

Graph 模型的工作区角色权限

能力 管理员 成员 贡献者 查看器
创建或修改图形模型
删除图形模型
查看和读取图形模型的内容
共享图形模型
创建或修改图形查询
创建或修改图形 QuerySet 项

Graph QuerySet 的工作区角色权限设置

能力 管理员 成员 贡献者 查看器
创建或修改图形 QuerySet 项
删除 QuerySet 项
查看和读取 QuerySet 项的内容
连接到图形实例
共享查询集

注释

所有用户都需要对基础图形实例项的读取访问权限,才能从图形 QuerySet 项对引用的图形实例执行查询。 QuerySet 项仅支持读取、写入和重新共享权限。

使用查询生成器

现在,可以通过选择特定的节点和关系来查询图形。 所有查询都基于 我们在上一节中生成的图形结构。

按照以下步骤切换到查询生成器并开始以交互方式查询图形:

  1. 从图形主页中选择 模式>查询生成器 。 在此视图中,还可以创建一个只读查询集,该查询集的功能与下面相同,并允许共享查询结果。

  2. 选择 “添加节点 ”以查看可用于查询的节点。

  3. 选择要将其添加到查询的节点。 在此示例中,我们将添加 “客户 ”节点。

    显示查询模式选择的屏幕截图。

  4. 在这里,你可以通过添加节点和边、应用筛选器,以及选择要在结果中返回的属性来构建查询。

使用代码编辑器

还可以使用 GQL 图形查询语言查询图形。

按照以下步骤切换到代码编辑器,然后使用 GQL 开始查询图形:

  1. 从图形主页中选择 模式>代码编辑器
  2. 在输入字段中输入 GQL 查询,例如 MATCH (n:`Order`) RETURN count(n) AS num_orders
  3. 选择 “运行查询 ”以执行查询。

还可以运行更复杂的查询,例如组合匹配图形模式、筛选、聚合、排序和 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 语言指南