🦑

グラフデータベースを使って株式ポートフォリオを可視化したお話(前編: Neo4j導入まで)

2024/06/13に公開

データを保存する方法は表の形で保存するRDB意外にも、NoSQLというくくりに含まれる、SQLだけじゃない("N"ot "O"nly!)データベースがあります。

その中のグラフデータベースを使って、持っている株式の傾向を可視化してみた。そんな記事。

1. グラフデータベースとは

RDBでは表の形でデータを取り扱いますが、グラフデータベースではデータ同士のつながりの形でデータを取り扱います。

この記事を書くために触って、作ってみたデータはこんな感じ。

オレンジが銘柄、青が業種、赤が保有する主な目的を表して、それぞれが線で結ばれた形になっています。

乙女ゲーでよくありそうな人物相関図みたいな感じ。キャラクターのことをノード、矢印をリレーション(あるいはエッジ/パス)と呼ぶそうだ。
矢印でたくさん参照されているキャラクターは目立っているキャラってことだね。

実際には通販サイトなんかで、"この商品を買った人は他にほげほげをかっています"みたいな表示で使われます。商品他ユーザーたち他ユーザーが買った商品みたいな繋がりからとってこれるわけですね。

他にもユーザー情報の繋がりがチグハグだと、そのユーザーは不正なんじゃないか?という指標にしたりもできるようです。へー。

そんな繋がりを表すのが得意なグラフデータベース。neo4jというサービスで触ってみよう。

2. neo4j AuraDB

neo4j AuraDBはグラフデータベースを作ってくれるDBaaSです。
無料枠でできることでは、20万のノードと40万のリレーションを貼れるGraphDBを1つだけ作れます。
あとクレジットカード無しで行けるのが面倒がなくて良い。

公式ページGet Started for Freeから新規アカウント作成して、メール認証まで済ませてしまいます。
すると新規インスタンスを作成する選択肢が出てくるので、Free instanceを起動します。

有料と無料ではバックアップ関連とか3日たつと停止、30日間無操作だと削除されるといった違いがあるらしい。

作成後、DBにアクセスするためのユーザー名とパスワードが発行されるのでどこかに保存しておきましょう。

わたしは後にブラウザからログインするときに使うので、iPadのパスワード保存機能で覚えておいてもらいました。

ここまできたら、インスタンス一覧から作ったDBを探し、Openボタンからワークスペースを開きましょう。

開こうとするとDBのユーザー名とパスワードを聞かれるので、先ほど記録しておいたパスワードで接続。接続するとneo4jをいじることができるワークスペースが表示されます。(画像はいろいろ追加した後)

さぁ、ここからいろいろいじっていこう。とおもうのだけど、文字数が多すぎになってしまいそうなのでこの記事は導入までで一区切り。

次回に続く。

Discussion