はじめに
Neo4j の公式ブログで、Neo4j Graph Intelligence for Microsoft Fabric の一般提供開始が発表されていました。
最初に見たときに少し混乱したのが、「Microsoft Graph」と「Neo4jのGraph Intelligence」は何が違うのか、という点です。どちらにも Graph という言葉が入っていますが、前者は Microsoft 365 などのデータにアクセスするための API、後者は Microsoft Fabric / OneLake 上のデータをグラフとして分析するためのワークロード、と整理すると理解しやすそうです。
この記事では、公式発表を読んで気になったトピックを、自分用メモとして整理します。
参考にした公式記事:
※本記事は個人の整理メモです。実際の Fabric 環境でのハンズオンや課金・ライセンスの詳細検証までは扱っていません。必要に応じて公式ドキュメントを確認する前提です。
この記事で扱うもの
この記事では、次の観点を扱います。
- Neo4j Graph Intelligence for Microsoft Fabric で何ができるようになるのか
- Microsoft Graph と Neo4j Graph Intelligence の違い
- OneLake の表データをグラフにする流れ
- PageRank や Louvain などのグラフアルゴリズムが Fabric から使える意味
- Teams / Microsoft 365 データ分析に応用できそうなこと
Microsoft Graph と Neo4j Graph Intelligence は別物
まず名前が紛らわしいところから整理します。
Microsoft Graph は、Microsoft 365、Entra ID、Teams、SharePoint、Outlook などのデータにアクセスするための統一 API です。たとえば、ユーザー、グループ、チーム、チャネル、メッセージ、ファイルなどを API 経由で扱えます。
一方、Neo4j Graph Intelligence for Microsoft Fabric は、Microsoft Fabric の体験の中で Neo4j のグラフデータベースおよびグラフ分析を扱うための仕組みです。OneLake のテーブルを起点に、ノードとリレーションのグラフモデルを作り、探索・Cypher・グラフアルゴリズムにつなげるイメージです。
ざっくり書くと、次のような違いです。
| 名前 | 主な役割 |
|---|---|
| Microsoft Graph | Microsoft 365 などのデータにアクセスする API |
| Neo4j Graph Intelligence for Microsoft Fabric | Fabric / OneLake のデータをグラフとしてモデル化・探索・分析する仕組み |
「Microsoft Graph で取得できる Teams の関係データを、Neo4j で本物のグラフDBとして分析する」という組み合わせは考えられますが、両者は同じものではありません。
何がGAになったのか
公式発表によると、Neo4j Graph Intelligence for Microsoft Fabric は、Fabric の中で接続データと高度なグラフ分析を扱えるようにするものです。
ポイントは、Neo4j を単独の外部データベースとして使うだけではなく、Fabric / OneLake の文脈で次のような体験を提供するところにありそうです。
- OneLake テーブルからグラフを作成する
- AI によるグラフモデリング支援で、グラフモデル候補を作る
- 役割に応じた複数の入り口(後述)から、Cypher やグラフアルゴリズムを実行する
- Fabric のタグ付け、認定、リネージ、ガバナンスとつながる
公式ブログでは、その「役割に応じた入り口」として、利用者別に大きく3つのインターフェースが紹介されていました。
- Explore for business analysts: クリック・実行・結果の可視化だけでアルゴリズムを試せる(ノーコードで PageRank、Louvain、Betweenness などを実行)
- AI-powered Query in Cypher: Text2Cypher を使って GQL Cypher を書き、アルゴリズムを実行
- Fabric Notebooks: Python が得意なデータサイエンティスト向けに、パイプラインを構築
個人的には、「グラフDBを立ててからBI基盤につなぐ」というより、Fabric の分析体験の中にグラフ分析が入ってくる という点が面白いと感じました。
OneLake の表データをグラフにする流れ
公式記事では、OneLake のテーブルを選び、AI アシスタントがグラフモデル候補を提案し、ユーザーが修正したうえでグラフとして探索する流れが説明されています。
リレーショナルな世界では、顧客、注文、商品、配送、チャネルなどは複数のテーブルに分かれています。もちろんSQLでもJOINすれば分析できますが、「どの顧客がどの経路でどの商品群に近いのか」「どの拠点が全体のハブになっているのか」「不自然に密なつながりを持つ集団がないか」といった問いは、グラフとして見たほうが自然なことがあります。
公式ブログのサプライチェーン例では、レイクハウスやウェアハウスに記録されたサプライヤー、イベントハウスからストリーミングされる在庫変動、ミラーリング/SQLデータベースの注文情報を、OneLake shortcuts でまとめて選び、Products / Orders / Suppliers といったノードと ORDERED_BY / SHIPPED_BY といったリレーションを AI 支援で組み立てる、という説明になっていました。
この流れを Fabric 上で扱えるようにするのが、今回の発表の中心に見えます。
気になったグラフ分析アルゴリズム
公式記事では、いくつかの代表的なグラフアルゴリズムが挙げられています。
それぞれの用途を自分なりに噛み砕くと、次のようになります。
| アルゴリズム | ざっくりした用途 |
|---|---|
| PageRank | つながりの中で影響度が高いノードを探す |
| Louvain | コミュニティやクラスタを見つける |
| Node Similarity | 構造的に似たノードを探す |
| Dijkstra's Shortest Path | 2点間の最短経路を探す |
| Degree Centrality | 直接のつながりが多いハブを見つける |
なお、ここで挙げた5つは公式ブログの「Run the Most Popular Graph Algorithms」セクションで紹介されている代表例です。公式ブログ内では、ビジネスアナリスト向けの探索例として Betweenness や Weakly Connected Components にも触れられています。また、製品ページでは Fabric 内で利用できる組み込みグラフアルゴリズムとして「65+」という表現も使われています。つまり、使えるアルゴリズムがこの5つだけ、という意味ではありません。
SQLや通常のBIでは、集計・フィルタ・時系列分析は得意です。一方で、グラフ分析は「点」ではなく「つながりの形」に注目します。
たとえば、以下のような問いはグラフ分析と相性が良さそうです。
- どの商品が購買ネットワークの中心にいるのか
- 似た購買パターンを持つ顧客群はどこか
- 不正取引の疑いがある密な関係グループはないか
- 供給網の中でボトルネックになっている拠点はどこか
- IT資産やアカウントの中で、影響範囲が大きいノードはどれか
Fabricネイティブになることで何がうれしいのか
Neo4j は以前から Azure 上で使えますし、Neo4j Aura もあります。では、Fabric の中に入ることの意味は何でしょうか。
公式記事を読む限り、ポイントはグラフ分析そのものだけではなく、Fabric のデータ管理体験に乗ること にありそうです。
たとえば次のような要素です。
- Fabric のアイテムとして発見しやすい(item tagging)
- タグ付けや認定(certified items)によって、組織内で信頼できるデータ資産として扱いやすい
- データリネージで、どのデータからグラフが作られたのか追いやすい(Aura へのデータ移動に使われた Spark ジョブも含めて追える)
- Fabric Notebook や Query から分析に入れる
- UI上の探索では、PageRank や Weakly Connected Components などを視覚的に試せる
- OneLake shortcuts により、内部・外部データ(ADLS Gen2、Blob、AWS S3、Google Cloud Storage)を起点にしやすい
グラフ分析は、技術的には強力でも、組織内で「誰が作ったどのグラフを信用すればよいのか」が課題になりがちです。Fabric のガバナンスやカタログの文脈に乗るなら、そこが少し扱いやすくなる可能性があります。
なお、公式の FAQ ベースで補足すると、利用には Microsoft Entra ID の利用が前提で、Aura on Azure(Neo4j Aura の Azure 版)上に組織・プロジェクトが作成され、Tools Connectivity と Generative AI Assist を有効にしたままにしておく必要がある、という条件が書かれていました。14日トライアル枠は組織あたり10件まで増やされており、トライアル中はインスタンスサイズの選択はできない、といった細かい制約も明示されています。実際に試す際は最新の公式情報を確認するのがよさそうです。
Teams / Microsoft 365 データ分析にも応用できそう
ここからは公式発表そのものというより、自分の関心です。
Microsoft 365 や Teams の情報は、Microsoft Graph API や Microsoft Graph Data Connect などを通じて扱える領域があります。たとえば、組織、ユーザー、グループ、チーム、チャネル、ファイル、会議、メッセージといった情報は、それぞれ関係を持っています。
これをグラフとして見ると、次のようなモデルを考えられます。
Cypher 風に書くと、こんなイメージです。
(:User)-[:MEMBER_OF]->(:Team)
(:Team)-[:HAS_CHANNEL]->(:Channel)
(:Channel)-[:HAS_MESSAGE]->(:Message)
(:Message)-[:MENTIONS]->(:User)
(:Message)-[:LINKS_TO]->(:File)
(:Meeting)-[:INVITES]->(:User)
もちろん、Teams のメッセージや組織内コミュニケーションを扱う場合は、権限、管理者同意、監査、プライバシー、データ保持ポリシーをきちんと考える必要があります。気軽に全部取って分析する、という話ではありません。
ただ、適切な権限と目的がある前提なら、次のような分析テーマは考えられそうです。
- チーム間のコラボレーション構造を可視化する
- 特定の技術トピックがどのチャネルで広がっているかを見る
- ドキュメントや会議がどのチームにまたがって参照されているかを見る
- 属人化しているナレッジのハブを発見する
- GraphRAG の知識グラフとして、Microsoft 365 の関係データを使う
今回の Neo4j Graph Intelligence for Microsoft Fabric は、直接「Teams分析ツール」ではありません。ただ、Fabric / OneLake に集まった業務データをグラフとして扱えるなら、Microsoft 365 の関係データと組み合わせる発想はかなり面白いと思いました。
まとめ
Neo4j Graph Intelligence for Microsoft Fabric のGA発表を読んで、気になった点を整理しました。
- Microsoft Graph と Neo4j Graph Intelligence は別物
- 前者は Microsoft 365 などのデータへアクセスする API
- 後者は Fabric / OneLake のデータをグラフとしてモデル化・探索・分析する仕組み
- OneLake テーブルから、AI によるグラフモデリング支援でグラフモデルを作る流れが用意されている
- 利用者の役割別に Explore(ノーコード)、Query(Text2Cypher)、Notebook(Python)の3つの入り口がある
- PageRank、Louvain、Node Similarity などの代表的なアルゴリズムを Fabric から使える(Fabric から利用できる組み込みグラフアルゴリズムは、製品ページで「65+」と表現されている)
- Fabric のガバナンスやリネージに乗ることで、組織内のグラフ分析が扱いやすくなる可能性がある
- Teams / Microsoft 365 の関係データ分析や GraphRAG との接続も、今後の検討テーマになりそう
個人的には、「データを表として集計する」だけでなく、「データ同士の関係を分析対象にする」流れが、Fabric の中にも入ってきている点が一番気になりました。






