共用方式為


什麼是 Microsoft Fabric API for GraphQL?

GraphQL 是由 GraphQL 基金會維護的開源的 API 查詢語言及執行時環境。 與傳統 REST API 不同,GraphQL 允許用戶端在單一查詢中精確請求所需資料,減少資料的過度取用與不足取出。

Microsoft Fabric API for GraphQL 將這項強大的標準帶入 Fabric 生態系統,作為資料存取層,讓您能快速且有效率地查詢多個資料來源。 API 抽象化了後端資料來源的細節,因此您可以專注於應用程式的邏輯,並在單一呼叫中提供用戶端所需的所有資料。 憑藉簡單的查詢語言與高效的結果集操作,GraphQL 將應用程式存取 Fabric 資料的時間降至最低。

為什麼要使用 GraphQL 來處理 Fabric 資料

若無 GraphQL,將 Fabric 資料暴露給應用程式通常需要以下其中一種方法:

直接資料庫連接

  • 應用程式透過 SQL 驅動程式(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 設計用於:

  • 應用程式開發者正在建構以資料驅動的網頁與行動應用程式,這些應用程式會消耗 Fabric 湖屋與倉庫資料
  • 資料工程師透過現代且靈活的 API 將 Fabric 資料暴露給下游應用程式,無需撰寫自訂後端程式碼
  • 整合開發者 將 Fabric 資料與自訂應用程式及自動化工作流程連結
  • BI 開發 者正在開發客製化分析應用程式,以搭配 Power BI 與 Fabric 資料
  • 資料科學家 透過程式化 API 揭露 Fabric 資料與機器學習洞見

如果你在 Microsoft Fabric 統一分析平台上工作,需要讓 lakehouse、warehouse 或 SQL 資料庫資料對應用程式開放,GraphQL API 提供一種高效且友善的開發者方式,精確查詢你需要的資料。

小提示

想將 Fabric GraphQL API 與 AI 代理整合? 試試 Build a local GraphQL MCP server for AI agents 教學,利用模型上下文協定(Model Context Protocol)將 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 並新增資料」。

支援的資料來源

目前,下列支援的資料來源會透過適用於 GraphQL 的 Fabric API 公開:

  • Microsoft Fabric 資料倉儲
  • Microsoft Fabric SQL 資料庫
  • 透過 SQL 分析端點的 Microsoft Fabric Lakehouse
  • 透過 SQL 分析端點的 Microsoft Fabric 鏡像資料庫,包括:
    • Azure SQL Database
    • Azure SQL 受控執行個體
    • Azure Cosmos DB
    • Microsoft Fabric SQL 資料庫
    • Azure Databricks
    • Snowflake
    • 開啟鏡像資料庫
  • Azure SQL 資料庫
  • Datamart

功能

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

局限性

如需詳細資訊,請參閱 GraphQL 限制的 API