Neo4j Sandbox Introduction

Neo4j が提供する開発環境・デモ・学習用のグラフデータベースとして、Neo4j Sandbox が提供されています。本ブログでは、Neo4j Sandbox の基本機能について紹介します。

特徴

Neo4j Sandbox の特徴として、以下の点が挙げられます。

  • Download 不要、ブラウザ上で完結する開発環境を作成可能
  • 3 日間でデータベースが削除される
  • 一度だけ追加の 7 日間の期間延長を申請できる

開発環境やデモ、学習用のグラフデータベースとして最適ですが、仮にその後 Neo4j Aura やオンプレミスのデータベースへの移行を行いたい場合、データの移行も可能です。

バックアップも作成可能で、30 日間ダウンロード可能なリンクが生成されます。

また、メールアドレスを招待することで他のユーザーにアクセス権限を付与することもできます。

ユースケース

Neo4j Sandbox のユースケースとして、以下の点が挙げられます。

  • 一時的な開発環境として
  • 発表や講義用のデモとして
  • 自主学習用として
  • イベントアプリケーションのグラフデータベースとして

最大 10 日間無料で利用できるので、意外と利用できるユースケースは多いことでしょう。

利用例

例えば、新しいプロジェクトとして自分の Twitter アカウントを利用したケースについて考えてみましょう。

Twitter Graph

Neo4j Sandbox から新規プロジェクトを作成する場合、雛形として Twitter Graph を利用できます。ぜひ試してみてください。

今回は、筆者自身の Twitter アカウント (@kenwagatsua) のデータを利用した例を紹介します。

相互フォロー

はじめの例として、相互フォローをしているユーザーを 10 人抽出してみましょう。グラフで結果を表示させます。

MATCH (m:Me)<-[:FOLLOWS]->(u:User)
RETURN m, u
LIMIT 10

Twitter Mutual follow

人気 Tweet に含まれる URL

次に、お気に入り数が 5 つ以上の Tweet に含まれる URL の一覧をテーブルで表示させてみましょう。

どんな URL がより多くの人に閲覧されたかがわかります。

MATCH (t:Tweet)-[:CONTAINS]->(l:Link)
WHERE t.favorites > 5
RETURN t.text, l.url

Twitter favorite tweets URL

Follower の中のインフルエンサー

自分のフォロワーの内、最もフォロワー数が多いユーザーの TOP 10 を表示させてみましょう。

MATCH (follower:User)-[:FOLLOWS]->(u:User:Me)
RETURN follower.screen_name AS user, follower.followers AS followers
ORDER BY followers DESC
LIMIT 5

Twitter influencers within followers

最後に

以上、Neo4j Sandbox の特徴とユースケース、及び Twitter Graph テンプレートを利用した利用例について紹介しました。

2021-09-27