MacでNeo4jを使ってみる

  • 30
    Like
  • 0
    Comment
More than 1 year has passed since last update.

MacにグラフデータベースNeo4jをインストールしてみました。Neo4jは、シンプルなグラフ構造のデータからSQLライクなサイファークエリ(Cypher Query)を使って、SQLをはらかに超える複雑なデータ処理が可能な革新的なデータベースです。

この記事は、Neo4j v3.0.6(2016-09-16)に合わせて更新しています。

参考

JDKのインストール

JDK8をダウンロードし、インストールしてください。

Mac OS X:dk-8u101-macosx-x64.dmg

$java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

Neo4jインストールパッケージのダウンロード

最新の安定版は、こちらから入手できます。今回は、コミュニティ版のNeo4j 3.0.6 (dmg)を使います。

Neo4j 3.0.6

neo4j3.0-download.png

Neo4jのインストール

インストールパッケージをクリックし、インストールを実行してください。

neo4j-community_macos_3_0_6.dmg

インストールが終了すると、アイコン作成のガイド画面が表示されます。Neo4jのアイコンを矢印の方向に「ドラック&ドロップ」し、アプリケーションとして登録してください。

mac-install-0.png

Neo4jの起動

Neo4jのアイコンをクリックしてください。

mac-install-1.png

Neo4jのコントロール画面が表示されます。データベースファイルの格納先や設定を変える必要がなければ、そのまま「Start」をクリックします。

mac-install-2.png

Neo4jの開始画面が表示されます。

mac-install-3.png

Neo4jのWebインターフェースのリンクをクリックするか、ブラウザーにURLを入力して接続してください。

http://localhost:7474

Neo4jへのログイン

データベース毎に初期画面では、既定のユーザーとパスワードを入力し、Neo4サーバーに接続します(neo4j/neo4j)。

neo4j3.0-login-1.png

1回目のログインでは、初期パスワードの変更が必要です。パスワードを決めて「Set password」をクリックします。

neo4j3.0-login-2.png

次のようなNeo4jのWebインターフェースが表示されます。ここまで表示できたらインストールは成功です。
neo4j3.0-login-3.png

演習用の映画データベース作成

Neo4jのWebインターフェースから簡単に映画データベースを作成できます。コマンドライン「$」に、下記の構文を入力し、右端の実行ボタン(▶)をクリックします。

:play movie graph

映画データベースの紹介画面が表示されたら右に移動します。そして、次のような映画データベース作成用のCypherクエリ文が表示されたら、枠のなかをクリックするとコマンドラインにコピーされますので、そのまま実行ボタン(▶)をクリックします。

setup306-4.png

次のようなグラフが表示されたらデータベース作成は成功です。

movie-graph.png

Neo4jのデータ処理

Neo4jのデータ処理は、GUI及びCUIを適切にミックスして行います。

例えば、Keanu Reevesさんが出演した映画を検索するとします。これは、次のようなデータモデルとして可視化して表現することができます。さらに、「下図のようなデータを検索してほしい」、というような依頼も可能です。

pattarn-search-1.png

これをCypherクエリで書くと、次のようになります。

MATCH (actor:Person)-[r:ACTED_IN]->(movie)
WHERE  actor.name = "Keanu Reeves"
RETURN actor,movie 

実際の検索結果は、次のようなグラフです。

keanu-movie-1.png

グラフはテキストとして出力できます。

MATCH (actor:Person)-[r:ACTED_IN]->(movie)
WHERE  actor.name = "Keanu Reeves"
RETURN actor.name,movie.title 

keanu-movie-2.png

このようにCypherクエリは、SQLを超える型破りのクエリ言語です。興味ある方は:play movie graphの続きにある演習用のCyhperクエリを実行してみてください。Webインターフェースの他の機能に触れてみるのもいいでしょう。

Neo4jウェブインターフェースを使い倒す

Neo4jのストップ

Neo4jをストップは、下記のようにストップコマンドを実行します。

# /usr/neo4j/bin/neo4j stop

まとめ

以上、Neo4jのインストール手順を紹介しました。興味ある方は、次のサイトや書籍を参照してください。

関連サイト

書籍