AI・機械学習
中級

Neo4j(ネオフォージェイ)

グラフデータベースの代表的な製品で、ノード・リレーションシップ・プロパティをネイティブなグラフストレージに格納し、Cypherクエリ言語で直感的にグラフパターンを検索できる。知識グラフ・推薦エンジン・不正検知・ネットワーク分析などの用途で広く採用されている。

0 回閲覧
0 いいね

Neo4jとは

Neo4jは、スウェーデンのNeo4j社が開発するオープンソースのネイティブグラフデータベースである。2007年の初版リリース以来、グラフデータベース市場でDB-Enginesランキング1位を維持し続けており、Airbnb、NASA、eBay、Walmart、UBS等の大手企業で本番稼働している。

なぜグラフデータベースが必要か

RDBの限界

リレーショナルデータベース(RDB)は表形式でデータを格納し、JOINで関連データを結合する。しかし、多対多の関係が複雑に絡み合うデータ(ソーシャルグラフ・組織構造・サプライチェーン等)では、JOINの回数が増えるほどクエリ性能が指数的に劣化する。6段階のJOINを伴うクエリは実用的な応答時間で返せないことが多い。

グラフDBの優位性

Neo4jはグラフ構造をネイティブに格納するため、リレーションシップの走査がO(1)(定数時間)で行える。RDBでは全テーブルをスキャンするJOINが必要な多段階の関係探索が、Neo4jではインデックスフリーの隣接(index-free adjacency)により瞬時に実行できる。

Cypherクエリ言語

Neo4jの専用クエリ言語Cypherは、ASCIIアートのような直感的な構文でグラフパターンを記述する。

基本構文例

ノードは丸括弧 () 、リレーションシップは角括弧と矢印 -[]-> で表現する。

操作CypherSQL相当
ノード作成CREATE (p:Person {name: 'Alice'})INSERT INTO persons ...
関係作成CREATE (a)-[:KNOWS]->(b)INSERT INTO knows ...
パターン検索MATCH (a)-[:KNOWS]->(b) RETURN bSELECT ... JOIN ...
経路探索MATCH path = shortestPath((a)-[*]-(b))再帰CTE(複雑)
集約MATCH (p)-[:BOUGHT]->(i) RETURN p, count(i)GROUP BY + COUNT

可読性の優位性

「Aliceの友人の友人で、同じ映画を見た人」をCypherで書くと1行で表現できるが、SQLでは複数のJOINとサブクエリが必要になる。グラフパターンの記述に関してはCypherがSQLより圧倒的に簡潔である。

エディションと料金

エディション特徴ノード数上限クラスタ料金
CommunityOSS (GPLv3)制限なしなし無料
Enterprise商用サポート制限なしCausal Cluster有料
AuraDB Freeマネージド20万ノードなし無料
AuraDB Proマネージド制限なしあり$65/月〜

Community Editionの制限

Community Editionは単一データベース・単一サーバーに限定されるが、個人プロジェクトや小規模アプリケーションには十分な機能を備える。本番で高可用性やバックアップが必要な場合はEnterpriseまたはAuraDBが推奨される。

LLM/AI統合

Neo4j + LangChain

LangChainフレームワークにはNeo4jGraphコネクタが標準搭載されており、LLMの質問を自動的にCypherクエリに変換してNeo4jに実行し、結果を自然言語で回答するRAGパイプラインを構築できる。

GraphRAGバックエンド

Microsoft GraphRAGやLlamaIndex PropertyGraphIndexのバックエンドとしてNeo4jを使用し、テキストから自動構築したナレッジグラフを永続化・クエリできる。

FAQ

Q: PostgreSQLではなくNeo4jを使うべきタイミングは?

A: データ間の「関係性」が主要な関心事であり、多段階の関係走査(友人の友人、サプライチェーンの上流3段階等)が頻繁に発生する場合にNeo4jが適しています。単純なCRUDやトランザクション処理にはRDBの方が適切です。

Q: Neo4jの学習コストは高いですか?

A: Cypherの基本構文は30分で習得可能です。SQLの知識があれば、CREATEやMATCHの対応関係を理解するだけで基本的な操作ができます。Neo4jのブラウザUIが視覚的なグラフ探索を提供するため、学習の敷居は低いです。

Q: Neo4j以外のグラフデータベースとの比較は?

A: Amazon Neptuneはマネージドサービスとしての運用性、TigerGraphは大規模分散処理に強みがあります。JanusGraphはOSSの分散グラフDB。ただしエコシステムの成熟度・ツール数・コミュニティ規模ではNeo4jが最も充実しています。