🍣

amazon neptuneをほんの少し触ったときのメモ

2021/08/14に公開

背景

AWSの基礎を学ぼう 特別編 最新サービスをみんなで触ってみる 初めてのグラフデータベース に参加した。
この記事はそのときのメモや雑感の記録。

Amazon Neptuneをためす。Neptuneを起動するときにオプションでjupyter notebookをあわせて起動できる。このnotebookにハンズオン資料があるので、これにそってハンズオンを実施した。
参考資料https://github.com/harunobukameda/Amazon-Neptune

Amazon Neptune とは?ってなったら、Amazon Neptuneってなんだろ?の記事がわかりやすいと聞いた。
このあと読む。

やったこと

構築

  • デフォルトVPCでneptuneをnotebook作成オプション指定してDB作成。
    • SageMakerでアクセスを指定
    • ハンズオン資料を少しさわる分ならばインスタンスタイプはデフォルトのもので十分だった
      • 遅いとは感じなかった

ハンズオン

ノートブックにアクセスすると、01-04の4つのフォルダがあり、その中で01を最初2つ、02を1つ順番に実施した。
01でSPARQLのサンプルコードとglemrinのサンプルコードを動かした。
02で少し大きいデータでサンプルコードを動かした。

削除

とくに残す必要がないなら、今回試したDBとノートブックを削除する。起動しっぱなしだと時間単位で課金されるため。

  • Neptune -> データベースで「変更」ボタン押してDB削除保護を外す。その後削除。
    • DBインスタンスを起動した状態じゃないと削除できないので誤って停止しないように注意。
    • インスタンスを削除すると、ロール クラスターも合わせて削除される
  • Notebook -> 停止してから削除

このイベントは、無駄にお金がかからないように、削除まで丁寧にフォローしてくれるので安心。

ハンズオン資料に沿って実施してわかったこと

gremlineでノード追加だとこんな感じのコードになる。

g.addV('person').property('name', 'justin')

Vはノードの別名Vertex(バーテックス)のVだろう。

他のコードを見てもクエリから何をしているかなんとなく読み取れそうだった。
これはエッジに対して〜という条件かけて検索しているなとか。

Neptune ユースケース

ハンズオン中に聞いたNeptuneユースケース

グラフDBの強みはこの値を持っているノードの一覧をだしたい。この値に近いノード一覧を出したいとか。

そういうRDBならば全行検索することになって処理時間がかかるものに対して速く検索できるのが売りらしい。

以下のようなことをしたいときに使われるのだとか

  • レコメンド
  • ネットワークのログの解析
  • ソーシャルネットワークのユーザー間の関係解析

感想

肝心のグラフDBの概念を理解していないので、こういうのがあるんだーで終わりそう。
リトライするときはグラフDBのこともあわせて復習しようと思う。

Discussion