【初心者】Neo4jをMicrosoft Azure上で動かしてみました

はじめに

Neo4jは、オープンソースのグラフデータベースで、人気のグラフデータベースの一つです。
様々な業界や企業で導入されており、ソーシャルグラフや顧客管理グラフ、資産管理グラフなどの用途で利用されています。
Javaで実装されており、githubにソースが公開されています。
https://github.com/neo4j

Microsoft Azure で簡単に利用できるので、実際に試してみました。

導入

MarketplaceにCognosys社の「Hardened Neo4j on Ubuntu 14.04 LTS」があるのでこちら利用します。
Azure Portalにログインし、「NEW」を選択し、「neo4j」と検索します。

すると「Hardened Neo4j on Ubuntu 14.04 LTS」があるのでこちらを選択します。この説明に書かれているPasswordはNeo4jにログインする際に必要なので覚えておきます。
ss75

パスワード情報や仮想マシンのサイズを選択して、どんどん進みます。
ss76

数分かかりましたが、無事デプロイされました。
ss80

ローカルのブラウザから仮想マシンにアクセスします。
http://PublicIP/neo4j

UserとPasswordを入力します。ここでのPasswordは「Hardened Neo4j on Ubuntu 14.04 LTS」の説明部分に記載されています。
ss78

ログインしたら試しにグラフを作成してみましょう。
画面上部のEditerに:play movie graphと入力します。

するとMovie Graphのtutorialが表示されるのでこれに従って試してます。
ss82

→を押して次に進みます。

グラフの作成

画面右側にNeo4jのクエリが表示されます。このクエリをNeo4jではCypher QL(Cypher Query Language)と呼び、とても複雑な関係のデータ処理のために開発されたクエリ言語です。

このクエリをクリックすると、上部のEditerにそのままコピー&ペーストされます。
ss83

Editer右側の△をクリックします。

俳優と映画、監督に関するグラフが作成されました。
graph

検索

グラフを作成できました。次はデータを抽出してみます。
Cypher QLのMatch構文を利用します。

例えば、俳優の名前がTom Hanksであるデータを検索するには

MATCH (tom {name: "Tom Hanks"}) RETURN tom

とEditorに入力します。

80年代生まれの人を検索してみます。

MATCH (eighties:Person) WHERE eighties.born > 1980 AND eighties.born < 1990 RETURN eighties.name

ss84

Natalie Portmanさんら3名がヒットしました。

グラフからパターン検索をしてみます。
先程80年代生まれので検索結果に表示されたNatalie Portmanさんが出ている映画を検索してます。

MATCH (tom:Person {name: "Natalie Portman"})-[:ACTED_IN]->(nataliePortmanMovies) RETURN tom,nataliePortmanMovies

graph-1

一つヒットしました。V for Vendettaに出演していらっしゃるようです。

もう少し複雑な検索もしてみます。
V for Vendetta に出演している人を検索してみます。以下のクエリで検索できます。

MATCH (people:Person)-[relatedTo]-(:Movie {title: "V for Vendetta"}) RETURN people.name, Type(relatedTo), relatedTo

9名ヒットしました。

graph-2

映画と出演者の関係性がシンプルに表示されていて、とてもわかり易いです。

面白いのでもう一つやってみます。

shortestPathを使うと最短経路を検索することができます。
では、これを使ってNatalie PortmanさんとTom Hanksさんの関係性を調べて見ましょう。

MATCH p=shortestPath(
(bacon:Person {name:"Natalie Portman"})-[*]-(meg:Person {name:"Tom Hanks"})
)
RETURN p

graph-3

この図からNatalie PortmanさんはAndy WachowskiさんがプロデュースしたV for Vendettaに出演しており、Tom HanksさんはAndy Wachowskiさんがディレクターの作品であるCloud Atlasに出演しているのが簡単にわかります。
つまり、Natalie PortmanさんとTom Hanksさんの共通の知人はAndy Wachowskiさんということですね。

終わりに

今回はMicrosoft Azure上でNeo4jを簡単に試してみました。
Neo4jのようなGraphDBを初めて触りましたが、クエリなど、直感的で分かりやすかったです。
また、使いどころも色々ありそうなので、今後もっと普及して、効果的かつ効率的にデータ分析を行えれば良いですね。

公式ドキュメント : http://neo4j.com/docs/

 

 neo4jNeo4j の詳細については下記をご覧ください!
http://sios.jp/products/oss-integration/service/oss_on_cloud/neo4j.html

 

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメント投稿

メールアドレスは表示されません。


*