編集部からのお知らせ
新着PDF:「Emotetの脅威」
新着記事まとめ「6G始動?」

グラフ構造のデータを高速検索するグラフ型データベース「Neo4j」の勘所 - (page 2)

長瀬嘉秀 (Neo4jユーザーグループ) 案浦浩二 (Neo4jユーザーグループ)

2015-04-20 16:30

Neo4jとは

 Neo4jは、Neo Technologyが開発しているオープンソースNoSQLのグラフ型データベースです。実装言語は、JavaとScalaを使用しています。2003年から開発を始めて、2007年に公開されました。ソースコードはGitHub上にあります。現在、Neo4jは多くの業界の企業や組織で導入されています。

図4:Neo4jの特徴
図4:Neo4jの特徴

 特徴は、プロパティグラフモデルをストレージレベルにまで実装していることです。また、ACID(Atomicity、Consistency、Isolation、Durability)トランザクションをフルサポートしています。

 その他には、JVMベース、数十億のエンティティの対応、クラスタなどがあります。また、使用言語はJavaだけではなくRubyやPython、Clojureなどからも呼び出すことができます。箇条書きでまとめると、以下になります。

  • オープンソース
  • 洗練されたユーザーインターフェース(UI)
  • データモデリングの容易さ
  • 読みやすいクエリ
  • 活発なコミュニティ活動
  • 高パフォーマンス
  • オプショナルスキーマ

 特に、パフォーマンスについては、数十億のノード、リレーション、プロパティを管理でき、2000リレーションの検索(探索)は、ミリ秒程度です。最短ルートの計算は、1000ノード程度のデータでさえ、MySQLの1000倍のスピードです。もちろん、ノードの数が増えると、その違いはさらに大きくなります。さらに、Ext3ファイルシステムとSSDディスクの組み合わせでは、毎秒10万オペレーションが実行可能です。

Neo4jデータベースの設定

 Neo4jは、ウェブサイトからダウンロードできます。Neo4jをインストールした後に、起動するには、以下のコマンドをコマンドラインから入力します。

$ bin/neo4j start
Starting Neo4j Server...WARNING: not changing user
process [1100]... waiting for server to be ready............ OK.
http://localhost:7474/ is ready.

 ローカルのPCでNeo4jのサーバが立ち上がりました。Neo4jを利用するには、ブラウザからhttp://localhost:7474/にアクセスします。ブラウザからNeo4jサーバにアクセスして、クエリを入力できます。

 ここでは、Neo4jに付録としてついているExample graphsのMovie Graphを利用してみます。ここを選択すると、DBを構築するNeo4jのクエリがあります。このクエリをコピーして、コマンドラインにペーストして、DBを作成します。

CREATE (TheMatrix:Movie {title:'The Matrix', released:1999, tagline:'Welcome to the Real World'})
CREATE (Keanu:Person {name:'Keanu Reeves', born:1964})
CREATE (Carrie:Person {name:'Carrie-Anne Moss', born:1967})
(中略)
CREATE
  (Keanu)-[:ACTED_IN {roles:['Neo']}]->(TheMatrix),
  (Carrie)-[:ACTED_IN {roles:['Trinity']}]->(TheMatrix),
(中略)

 このクエリをNeo4jでは「Cypher」と呼びます。文法は、SQLに似ています。初めの3行でデータ、最後の2行でリレーションを生成しています。

(Keanu)-[:ACTED_IN {roles:['Neo']}]->(TheMatrix)

は、KeanuはマトリクスにNeoとして演技したというリレーションを表しています。データベースができると、このように、Neo4j特有のグラフが図として表示されます。

図5:Neo4jのグラフ
図5:Neo4jのグラフ

ZDNet Japan 記事を毎朝メールでまとめ読み(登録無料)

特集

CIO

モバイル

セキュリティ

スペシャル

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNet Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]