Amazon NeptuneでグラフDBを使ってみる
Amazon Neptuneを使ってグラフDBに触れてみたいと思います。
![](https://www.blog.danishi.net/wp-content/uploads/2021/02/image-1024x225.png)
適当にマネコンの項目を埋めてデータベースを作成します。
RDSと設定項目は似ています。
![](https://www.blog.danishi.net/wp-content/uploads/2021/02/image-1.png)
![](https://www.blog.danishi.net/wp-content/uploads/2021/02/image-2.png)
![](https://www.blog.danishi.net/wp-content/uploads/2021/02/image-3.png)
![](https://www.blog.danishi.net/wp-content/uploads/2021/02/image-4.png)
データベースを作成。
しばらくするとクラスターとインスタンスができます。
![](https://www.blog.danishi.net/wp-content/uploads/2021/02/image-5-1024x179.png)
![](https://www.blog.danishi.net/wp-content/uploads/2021/02/image-6-1024x557.png)
簡単にDB構築できました。
このDBインスタンスのエンドポイントに対して、同一VPC内のEC2なりなんなりからアクセスして使うみたいです。
そこで、Neptune ワークベンチとして提供されているJupyter Notebookからデータベースを利用できるのでこれを作ります。
![](https://www.blog.danishi.net/wp-content/uploads/2021/02/image-7-1024x208.png)
![](https://www.blog.danishi.net/wp-content/uploads/2021/02/image-8.png)
![](https://www.blog.danishi.net/wp-content/uploads/2021/02/image-9.png)
接続先のクラスターを選択して作成します。
![](https://www.blog.danishi.net/wp-content/uploads/2021/02/image-10.png)
作成完了するとそこからJupyter Notebookへリンクで飛ぶことができます。
裏ではSageMakerが使われているのでSageMakerのノートブックインスタンスが立ち上がっています。![](https://www.blog.danishi.net/wp-content/uploads/2021/02/image-11.png)
![](https://www.blog.danishi.net/wp-content/uploads/2021/02/image-12-1024x291.png)
![](https://www.blog.danishi.net/wp-content/uploads/2021/02/image-13.png)
折角なので新しくノートブックを作ってGremlinを試してみます。
Python3の新しいノートブックを作成して、ノードやエッジの追加・表示をやってみました。
![](https://www.blog.danishi.net/wp-content/uploads/2021/02/image-14.png)
![](https://www.blog.danishi.net/wp-content/uploads/2021/02/image-15.png)
触ってみることでなんとなくグラフDBの雰囲気は掴めました。
ちゃんと使うにはもっと勉強が必要そうですが。
RDBやNoSQL DBしか利用経験のない私ですが、AWSの提供する完全マネージドのグラフ型データベース、
データベースの作成
![](https://www.blog.danishi.net/wp-content/uploads/2021/02/image-1024x225.png)
適当にマネコンの項目を埋めてデータベースを作成します。
RDSと設定項目は似ています。
![](https://www.blog.danishi.net/wp-content/uploads/2021/02/image-1.png)
![](https://www.blog.danishi.net/wp-content/uploads/2021/02/image-2.png)
![](https://www.blog.danishi.net/wp-content/uploads/2021/02/image-3.png)
![](https://www.blog.danishi.net/wp-content/uploads/2021/02/image-4.png)
しばらくするとクラスターとインスタンスができます。
![](https://www.blog.danishi.net/wp-content/uploads/2021/02/image-5-1024x179.png)
![](https://www.blog.danishi.net/wp-content/uploads/2021/02/image-6-1024x557.png)
このDBインスタンスのエンドポイントに対して、同一VPC内のEC2なりなんなりからアクセスして使うみたいです。
Jupyter Notebookの作成
とはいえEC2を作ってクライアントツール入れてアクセスとかは面倒です。そこで、Neptune ワークベンチとして提供されているJupyter Notebookからデータベースを利用できるのでこれを作ります。
![](https://www.blog.danishi.net/wp-content/uploads/2021/02/image-7-1024x208.png)
![](https://www.blog.danishi.net/wp-content/uploads/2021/02/image-8.png)
![](https://www.blog.danishi.net/wp-content/uploads/2021/02/image-9.png)
接続先のクラスターを選択して作成します。
![](https://www.blog.danishi.net/wp-content/uploads/2021/02/image-10.png)
裏ではSageMakerが使われているのでSageMakerのノートブックインスタンスが立ち上がっています。
![](https://www.blog.danishi.net/wp-content/uploads/2021/02/image-11.png)
ノートブックからNeptuneを使う
Jupyter Notebookを開くとチュートリアルのノートが用意してあるので、それを読んで実行しながら使い方を学んでいくことができます。![](https://www.blog.danishi.net/wp-content/uploads/2021/02/image-12-1024x291.png)
![](https://www.blog.danishi.net/wp-content/uploads/2021/02/image-13.png)
Python3の新しいノートブックを作成して、ノードやエッジの追加・表示をやってみました。
%%gremlin
// クリア
g.V().drop().iterate()
// ノード登録
g.addV('person').property('name', 'taro').property('age', 20).toSet()
g.addV('person').property('name', 'hanako').property('age', 18).toSet()
// ノードの表示
g.V().valueMap()
![](https://www.blog.danishi.net/wp-content/uploads/2021/02/image-14.png)
%%gremlin
// エッジ登録
g.addE('like')
.from_(g.V().has('name', 'taro'))
.to(g.V().has('name', 'hanako')).toSet()
// エッジの表示
g.E().toList()
![](https://www.blog.danishi.net/wp-content/uploads/2021/02/image-15.png)
ちゃんと使うにはもっと勉強が必要そうですが。
ディスカッション
コメント一覧
まだ、コメントがありません