GraphQL は、GraphQL Foundation によって管理される API のオープンソースクエリ言語とランタイムです。 従来の REST API とは異なり、GraphQL を使用すると、クライアントは 1 つのクエリで必要なデータを正確に要求できるため、データの過剰フェッチとアンダーフェッチが削減されます。
Microsoft Fabric API for GraphQL は、この強力な標準を、複数のデータ ソースを迅速かつ効率的にクエリできるデータ アクセス層として Fabric エコシステムにもたらします。 API はバックエンド データ ソースの詳細を抽象化するため、アプリケーションのロジックに集中し、クライアントが 1 回の呼び出しで必要とするすべてのデータを提供します。 GraphQL は、単純なクエリ言語と効率的な結果セット操作により、アプリケーションが Fabric のデータにアクセスするために要する時間を最小限に抑えます。
GraphQL for Fabric データを使用する理由
GraphQL を使用しない場合、通常、Fabric データをアプリケーションに公開するには、次のいずれかの方法が必要です。
直接データベース接続
- アプリケーションは、SQL ドライバー (ODBC、JDBC) を使用して Lakehouse またはウェアハウスに直接接続します
- アプリケーション コードとデータベース スキーマを密に結合します。スキーマの変更によってアプリケーションが中断される
- すべてのアプリケーションで接続文字列、資格情報、ドライバーの依存関係を管理する必要があります
- アプリケーション コードに埋め込まれた SQL クエリは、テストと保守が困難です
カスタム REST API
- ASP.NET や Node.js などのフレームワークを使用してカスタム バックエンド サービスを構築および管理する
- すべてのエンドポイントのコントローラー コード、ルーティング ロジック、およびデータ アクセス層を記述する
- データ構造が変更されたときに個別の API バージョン (v1、v2、v3) を作成する
- データの過剰フェッチ (必要な列が少ない場合は行全体を取得する) またはアンダーフェッチ (関連データに対して複数のラウンド トリップを行う)
GraphQL は、次の課題を解決します。
- バックエンド コードは不要:Fabric は、データ ソースから GraphQL スキーマ、リゾルバー、エンドポイントを自動的に生成します
- 必要なクエリを正確に実行する: 1 つのクエリで特定のフィールドを要求し、オーバーフェッチを排除し、ペイロード サイズを減らす
- 1 つの要求で関連データをフェッチする: 複数のラウンド トリップなしでリレーションシップを走査する (N+1 クエリの問題なし)
- 破壊的変更を伴わないスキーマの進化: 既存のクエリに影響を与えずに新しいフィールドを追加します。クライアントは、知っていることのみを要求します
- 型の安全性と文書化: 開発ツールが理解する組み込みイントロスペクション付きの自己文書化スキーマ
- 複数のソースへの統合アクセス: 単一のエンドポイントを使用して、レイクハウス、ウェアハウス、および SQL データベース間でクエリを実行する
アプリケーション開発者にとって GraphQL は、インフラストラクチャが少ない高速な開発を意味します。 データ エンジニアの場合は、カスタム API コードを記述したり保守したりせずにデータを公開することを意味します。
GraphQL の API を使用するユーザー
GraphQL 用ファブリックの API は、次の目的で設計されています。
- データドリブンな Web アプリケーションとモバイル アプリケーションを構築するアプリケーション開発者が、Fabric Lakehouse と Warehouse データを利用します。
- カスタム バックエンド コードを記述せずに最新の柔軟な API を使用して Fabric データをダウンストリーム アプリケーションに公開するデータ エンジニア
- Fabric データをカスタム アプリケーションと自動化されたワークフローに接続する統合開発者
- Power BI と Fabric データを補完するカスタム分析アプリケーションを作成する BI 開発者
- プログラム API を使用して Fabric データと機械学習の分析情報を公開するデータ サイエンティスト
Microsoft Fabric 統合分析プラットフォーム内で作業していて、Lakehouse、Warehouse、または SQL データベースのデータをアプリケーションからアクセスできるようにする必要がある場合、GraphQL API は、必要なデータを正確に照会するための効率的で開発者向けの方法を提供します。
ヒント
Fabric GraphQL API と AI エージェントを統合しますか? AI エージェント用のローカル GraphQL MCP サーバーを構築する チュートリアルを試して、モデル コンテキスト プロトコルを使用して AI エージェントを Fabric データに接続します。
GraphQL 用 API を使用してデータを公開する
Microsoft Fabric の GraphQL 項目へのデータ ソースの公開は簡単で、Fabric ポータルのビジュアル インターフェイスを使用して数分で実現できます。 このプロセスには、以下が含まれます。
- Fabric ワークスペースに GraphQL API 項目を作成する
- 使用可能なレイクハウス、ウェアハウス、またはデータベースから選択してデータ ソースを接続する
- テーブル、ビュー、ストアド プロシージャなど、公開するオブジェクトを選択する
- オブジェクト間のリレーションシップ (省略可能) を定義して、強力な入れ子になったクエリを有効にする
- API にアクセスできるユーザーを制御するアクセス許可を構成する
構成が完了すると、Fabric によって GraphQL スキーマが自動的に生成され、必要なリゾルバーが作成され、エンドポイント URL が提供されます。 API はすぐにクエリを受け入れる準備が整います。デプロイやインフラストラクチャのセットアップは必要ありません。
詳細な手順については、 Fabric での GraphQL 用 API の作成とデータの追加に関する記事を参照してください。
サポートされるデータ ソース
現在、サポートされている次のデータ ソースは、GraphQL 用 Fabric API を介して公開されています。
- Microsoft Fabric の Data Warehouse
- Microsoft Fabric SQL データベース
- SQL 分析エンドポイント経由の Microsoft Fabric のレイクハウス
- SQL Analytics エンドポイント経由の Microsoft Fabric ミラー化されたデータベース(以下を含む):
- Azure SQL Database
- Azure SQL Managed Instance
- Azure Cosmos DB
- Microsoft Fabric SQL Database
- 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 スキーマを変更する場合、既存のフィールドを削除または名前変更するのではなく、新しい機能を追加する限り、既存のアプリケーションは引き続き機能します。 スキーマ変更の管理の詳細については、 GraphQL のイントロスペクションとスキーマ エクスポート用の Fabric API に関する説明を参照してください。
対話型の編集エクスペリエンス
GraphQL 用 API には、クエリと変更を簡単に開発およびテストできるエディターが含まれています。 エディターの機能は次のとおりです。
- クエリと変更の出力を視覚化する結果ウィンドウ
- クエリパラメーターとミューテーション パラメーターのサポート
- GraphQL 構文とスキーマ オブジェクト名をサポートする Intellisense
GraphQL エディターの使用方法の詳細については、 GraphQL エディターの API を参照してください。
制限
詳細については、 GraphQL の API の制限事項 を参照してください。