グラフDB(Neptune) ぐらふでぃーびー(ねぷちゅーん)
グラフDBNeptuneNeo4jノードエッジ知識グラフ
グラフDB(Neptune)について教えて
簡単に言うとこんな感じ!
「人と人のつながり」や「商品と購買者の関係」をネットワーク図そのままの形で保存・検索できるデータベースだよ。SNSの「友達の友達を探す」や「不正送金のルートを追う」みたいな複雑なつながり分析が得意なんだ!
グラフDB(Neptune)とは
グラフDB(グラフデータベース)は、データを**ノード(節点)とエッジ(辺)のグラフ構造で表現・保存するデータベースです。「AがBと友達で、BがCと取引がある」といった関係(リレーションシップ)**を効率よく処理することに特化しています。
RDBでも「友達テーブル」「取引テーブル」で関係を表現できますが、「6次以上のつながりを辿る」ような深い関係探索はJOINが多段になって急激に遅くなります。グラフDBはこのようなグラフトラバーサル(関係の辿り歩き)をネイティブにサポートするため、深い関係でも高速です。
Amazon NeptuneはAWSが提供するフルマネージドグラフDBサービスです。Gremlin(グラフトラバーサル言語)とSPARQL(RDF用クエリ言語)の両方をサポートし、プロパティグラフとRDFグラフの2モデルに対応しています。
グラフDBの主要概念
| 概念 | 説明 | 例 |
|---|---|---|
| ノード | グラフの頂点。エンティティを表す | ユーザー、商品、会社 |
| エッジ | ノード間の関係。必ず方向を持つ | 「友達である」「購入した」「属する」 |
| プロパティ | ノード・エッジに付与できる属性 | 名前、日時、金額 |
| ラベル | ノード・エッジの種類分け | :Person、:Product |
| パス | ノードとエッジを辿った経路 | Alice→Bob→Carol |
グラフDBが得意なユースケース
- ソーシャルグラフ — 友人推薦、インフルエンサー分析
- 不正検知 — 口座間の不審な資金移動経路の追跡
- レコメンデーション — 「この商品を買った人はこれも」
- 知識グラフ — 企業・人物・出来事の関係マッピング
- サプライチェーン — 部品・製造者・依存関係の管理
歴史と背景
- 2007年 — Neo4jが商用グラフDBとして登場
- 2012年 — W3CがSPARQLをRDFクエリ標準として勧告
- 2017年 — Amazon NeptuneがAWS re:Inventで発表
- 2018年 — Neptune GA。GremlinとSPARQL両対応
- 2019年 — Neo4j 4.0がマルチDB対応でエンタープライズ向けを強化
- 2023年 — Neptune AnalyticsリリースでグラフMLに対応
グラフDB vs RDB の関係表現
関連する規格・RFC
| 規格 | 内容 |
|---|---|
| RDF (Resource Description Framework) | W3C勧告。SPARQLで操作するグラフデータモデル |
| SPARQL 1.1 | RDFグラフのクエリ言語(W3C標準) |
| Gremlin | Apache TinkerPop準拠のグラフトラバーサル言語 |
| openCypher | Neo4j発のグラフクエリ言語。ISO標準化作業中 |
関連用語
- NoSQL — グラフDBが属するNoSQLカテゴリ
- DynamoDB・Cosmos DB・Firestore — Cosmos DBはGremlin APIでグラフDBとしても使用可能
- Elasticsearch・OpenSearch — ログ・テキスト分析での組み合わせ活用