什么是 Microsoft Fabric API for GraphQL?

GraphQL 是 GraphQL Foundation 维护的 API 的开源查询语言和运行时。 与传统的 REST API 不同,GraphQL 使客户端能够准确请求单个查询中所需的数据,从而减少数据的过度提取和提取不足。

Microsoft GraphQL 的 Fabric API 将这种强大的标准作为数据访问层引入 Fabric 生态系统,使你可以快速高效地查询多个数据源。 API 抽象化后端数据源的具体信息,以便专注于应用程序的逻辑,并在单个调用中提供客户端所需的所有数据。 使用简单的查询语言和高效的结果集作,GraphQL 将应用程序访问 Fabric 中的数据所花费的时间降到最低。

为何为 Fabric 数据使用 GraphQL

如果没有 GraphQL,向应用程序公开 Fabric 数据通常需要以下方法之一:

直接数据库连接

  • 应用程序使用 SQL 驱动程序直接连接到 Lakehouse 或仓库(ODBC、JDBC)
  • 将应用程序代码紧密耦合到数据库架构 - 架构更改会中断应用程序
  • 要求管理每个应用程序中的连接字符串、凭据和驱动程序依赖项
  • 应用程序代码中嵌入的 SQL 查询难以测试和维护

自定义 REST API

  • 使用 ASP.NET 或 Node.js 等框架生成和维护自定义后端服务
  • 为每个终结点编写控制器代码、路由逻辑和数据访问层
  • 在数据结构发生更改时创建单独的 API 版本(v1、v2、v3)
  • 过度提取数据(在只需几列时获取完整行数据)或提取不足(为获取相关数据进行多次数据请求)。

GraphQL 解决了以下难题:

  • 不需要后端代码:Fabric 会从数据源自动生成 GraphQL 架构、解析器和终结点
  • 准确查询所需内容:在单个查询中请求特定字段,消除过度提取和减少有效负载大小
  • 在一个请求中提取相关数据:遍历关系而不进行多次往返(无 N+1 查询问题)
  • 模式演变而不导致破坏性变更:添加新字段而不影响现有查询 - 客户端仅请求他们已知的字段
  • 类型安全和文档:具有内置自省功能且开发工具能够理解的自记录的架构
  • 统一访问多个源:通过单个终结点跨数据湖仓、仓库和 SQL 数据库进行查询

对于应用程序开发人员,GraphQL 意味着使用更少的基础结构更快地进行开发。 对于数据工程师,这意味着在不编写和维护自定义 API 代码的情况下公开数据。

谁应使用用于 GraphQL 的 API

Fabric 的 GraphQL API 旨在:

  • 应用程序开发人员 构建数据驱动的 Web 和移动应用程序,以使用 Fabric Lakehouse 和数据仓库的数据。
  • 数据工程师 通过新式灵活 API 向下游应用程序公开 Fabric 数据,而无需编写自定义后端代码
  • 将 Fabric 数据连接到自定义应用程序和自动化工作流的集成开发人员
  • BI 开发人员 创建自定义分析应用程序,以使用 Fabric 数据补充 Power BI
  • 数据科学家 通过编程 API 公开 Fabric 数据和机器学习见解

如果你在 Microsoft Fabric 统一分析平台中工作,并且需要使 lakehouse、warehouse 或 SQL 数据库数据可供应用程序访问,GraphQL API 提供了一种高效、开发人员友好的方法来查询所需的数据。

小窍门

想要将 Fabric GraphQL API 与 AI 代理集成? 尝试使用模型上下文协议的教程 构建适用于 AI 代理的本地 GraphQL MCP 服务器,以将 AI 代理连接到 Fabric 数据。

通过用于 API for GraphQL 公开数据

在 Microsoft Fabric 中向 GraphQL 项公开数据源非常简单,可以使用 Fabric 门户的可视化界面在几分钟内完成。 该过程涉及:

  1. 在 Fabric 工作区中创建 GraphQL API 项
  2. 通过从可用的湖仓、仓库或数据库中选择来连接你的数据源
  3. 选择要公开的对象 ,例如表、视图或存储过程
  4. 定义 对象之间的关系(可选)以启用功能强大的嵌套查询
  5. 配置权限 以控制谁可以访问 API

配置后,Fabric 会自动生成 GraphQL 架构,创建必要的解析程序,并提供终结点 URL。 API 可立即准备好接受查询,无需部署或基础结构设置。

有关分步说明,请参阅 在 Fabric 中创建 GraphQL API 并添加数据

支持的数据源

目前,以下受支持的数据源通过 Fabric API for GraphQL 公开:

  • Microsoft Fabric 数据仓库
  • Microsoft Fabric SQL 数据库
  • 通过 SQL 分析终结点的 Microsoft Fabric 湖屋
  • 通过 SQL Analytics 终结点Microsoft Fabric 镜像数据库,包括:
    • Azure SQL 数据库
    • Azure SQL 托管实例
    • Azure Cosmos DB
    • Microsoft Fabric SQL 数据库
    • Azure Databricks
    • Snowflake
    • 打开镜像数据库
  • Azure SQL 数据库
  • 数据市场

功能

Microsoft Fabric API for GraphQL 提供了简化应用程序数据访问的综合功能。 从自动代码生成到性能监视,这些功能使你能够生成配置最少的可靠数据 API。

自动生成架构

  • 架构发现:自动发现数据源架构并将其映射到 GraphQL 类型
  • 查询和变更生成:基于数据结构创建 GraphQL 查询和变更
  • 解析程序生成:自动生成从源中提取数据所需的解析程序
  • 本地测试代码:生成用于立即测试和开发的示例代码

数据源灵活性

  • 多个数据源:支持扇出查询,可跨多个数据源进行连接和查询
  • 数据库对象:完全支持 SQL 数据库和仓库中的表、视图和存储过程
  • 选择性公开:选择要通过 API 公开的特定对象和列
  • 关系建模:在数据实体之间创建一对一、一对多关系和多对多关系

操作和监视

  • 性能监视:内置仪表板和请求日志记录以跟踪 API 行为和使用情况

架构演变而不进行版本控制

GraphQL 通过避免传统版本控制,采用独特的 API 演变方法。 GraphQL API 不是创建 v1、v2 和 v3 终结点,而是不断改进:

  • 累加性更改:无需中断现有查询即可添加新类型、字段和功能。 客户端仅请求所需的字段,因此新字段不会影响它们。
  • 向后兼容性:即使架构增长,现有查询也会继续工作,因为 GraphQL 仅返回显式请求的数据。
  • 弃用优于删除:字段可以先标记为弃用,而不是直接删除,以便为客户端提供适应的时间。
  • 单终结点:应用程序始终连接到同一终结点,而不考虑架构更改。

与传统的版本控制 API 相比,此方法简化了 API 维护和客户端升级。 在 Fabric 中修改 GraphQL API 架构时,只要添加新功能而不是删除或重命名现有字段,现有应用程序就可以继续运行。 有关管理架构更改的详细信息,请参阅 Fabric API for GraphQL 简介和架构导出

交互式编辑体验

GraphQL API 包含一个编辑器,可用于轻松开发和测试查询和突变。 编辑器的功能包括:

  • 用于可视化查询和突变输出的结果窗格
  • 支持查询和突变参数
  • 支持 GraphQL 语法和架构对象名称的 Intellisense

有关使用 GraphQL 编辑器的详细信息,请参阅 适用于 GraphQL 编辑器的 API

局限性

有关详细信息 ,请参阅 API for GraphQL 限制