AzureにLinuxをインストールしてNeo4jを動かすまでのハンズオン勉強会に参加してきた

「元居酒屋店長でも、グラフDBでシフト表を作れる!」

それを証明するために、先日、Neo4jの勉強会に参加してまいりました。

compassより集まった人数は60名ほど!マイクロソフトの本社にて行われました。

イベントページ:https://jp-neo4j-usersgroup.connpass.com/

 

「そもそもグラフDBて何ですか?」という方に向けて、おさらいです。(覚えたての知識の共有です(笑))

RDB(リレーショナルデータベース)で管理しきれない量のデータベースを、グラフDBで管理することが多いそうです。

RDBに代表されるのは、MySQLの子供であるMariaDB。

少ないデータ量のものを関連付けて検索可能にするために向いているそうです。

A-B

B-C

一方でグラフDBは、データを構成するひとつひとつのノードから、いくつものデータを関連付けて保存することが可能だそう。

A-B-C

|

B

グラフDBの長所として、オブジェクト(ノード)間の関連付けを簡単に表現できることが挙げられます。

「検索が局所的なのでスケールしやすい」などの良さはあるそうですが、

一方で「全体から検索するのは苦手」という特徴もあるようです。

簡単な5ステップ♬ Neo4jをローカル環境で始めよう!

Linuxのコマンドラインでやるやり方もあるのですが、初心者な私は無難にローカル環境でトライ。

立ち上げはとっても簡単だったのでご紹介いたします!

まず、1ステップ目。検索エンジンで「Neo4j」と検索しましょう。すると以下の画面が表示されますので、1番上に出てきた”https://neo4j.com/”をクリックします。

2ステップ目。次のような画面が表示されますので、右側の”Try Neo4j Online”をクリックします。

3ステップ目♬ 以下の画面が表示されるので、”Start Now”をクリックします。

4ステップ目!ツイッター連携させてアカウント登録します。

1週間だけ無料ですので1週間後にはアカウントは消えてしまうそうです。しかし、登録しなおせば再登録可能なので何度でも無料アカウントを作ることは可能です(笑)

5ステップ目。以下の画面が表示されたら、”Blank Sandbox”の”Neo4j Browser”をクリックします。

これで立ち上げ完了です!Neo4jの管理画面が表示されます。

ここまでの立ち上げ、すっごく簡単ですよね!!!

では、ここから実際にグラフ作成に入っていきます。

サンプルコードを参考に、グラフを作成してみよう。

さっそく”Jump into code”から、グラフの方を作成していきます。

”Write Code”のところに様々なコードサンプルが載っていますが、今回は”Movie Graph”を参考に作っていきたいと思います。

Movie Graphの”Create a graph”をクリックすると、”Create”のところに、なにやらコードが出てきました。

近づいてみてみましょう。

1行目には映画マトリックスの説明として、リリース日などが載っていることがわかります。

2~8行目には映画関係者の名前、そして生まれた日が書かれています。

10~16行目には、関係者それぞれがこの映画にどう関わったのか書かれています。

例えば10行目のKeanu<キアヌ・リーブス>はNeo<ネオ>という役割をrole<ロール>演じたと解読することができます。

これらの情報を、視覚的に理解できるグラフDBに落とし込んでいきます。

作り方は2ステップで、とても簡単です。

①作成したい文字列上で左クリックをすると、最上部の空欄に数式が入ります。

②右上のプレイボタンを押すと、以下のお目当てのグラフDBが表示されます。

簡単ですね!

あれっ・・・中心にいるのは”TomHanks”となっています。マトリックスのことについてのグラフが出てくるかと思いきや、映画に関係ないトムハンクスが中心になっているとは、一体どういうことなのでしょうか。

先ほどのソースコードを最後まで読んでみると分かるのですが、様々なハリウッドの映画を紹介したのちに、最後は”TomHanks”で終わっていることがわかります。”TomHanks”という「ノード」を中心にして、関連する映画情報を集約させているグラフだったようですね。

”TomHanks”から出ているエッジを辿ると”You’ve Got Mail”という映画タイトルが見つかります。

このノード上で左クリックをすると鍵マーク、×マーク、クロスのマークが出てきます。

×マークはノードの削除、鍵マークはそこから派生するノードを隠す機能があります。

クロスのマークを左クリックすると、映画に関わった俳優や脚本家の名前が出てきました。

このように、大量のデータでもノードに関連付けて関係性を表示することができるのが、グラフDBの特徴のようです。

結論。グラフは作れたのか?

・・・・・・難しかったです。

しかし!!!

Neo4jに初めて触る私でも、ここまでの操作でどんなことができるシステムなのか概要を理解することができました。

ソースコードは今はまだ書くことはできなくても、読んで内容を理解し勉強することはできそうです!(がんばります!)

 

そしてイベント中は、ライトニングトークをやらせて頂きました。

タイトルは、「本当に居酒屋店長はグラフDBを扱えるのか?」というテーマです。

シフト作成を行うソースコードを作成した・・つもりです(笑) 内容は以下からどうぞ!

↓(クリックするとプレゼン資料に飛べます。)

またほかにも、メインプレゼンテーターとして「Neo4j」の道一筋な、様々な方が登壇されました。

株式会社UTI 代表取締役 細井 公義さん

株式会社UTI CTO 案浦 浩二さん

クリエーションライン株式会社 木内満歳さん

クリエーションライン株式会社 李昌桓(りちゃんふぁん)さん

お疲れ様です!

お料理を準備してくださった、マイクロソフトの藤田稜さん始め、会場のみなさんありがとうございました!

じゃんけん大会の司会などもさせて頂き、とても良い経験ができました。

 

岡田はいつでもどこでも盛り上げにいきますので、イベントの人手が足りないときは呼んでくださいませ~( *´艸`)

お仕事の依頼はコチラまで↓

okada@yosimasa.com

Follow me!