はじめに
・記事を投稿しようと思った背景
資格の勉強を実施している中で「Amazon Neptune」が登場したことと、新卒の方々から「Amazon Neptune」の質問を2件ほど続けていただいたため、知識を整理しようと思ったことがきっかけです。
・誰に向けて書いたのか
「Amazon Neptune」を触ったことのない方や、どのような機能がありどのようなユースケースで使用するのか確認したい場合、また「グラフ型データベース」とはそもそもどんなものか確認したい方に見ていただきたい記事です。
※具体的な設定値の詳細な説明までは含みません。
Amazon Neptuneとは
簡潔にまとめると以下の通りです。
・完全マネージド型のグラフデータベース
・数十億の関係性を持つデータを高速に処理できる
・スケーラビリティと可用性に優れ、
Neptune Analyticsではベクトル検索やインメモリ計算を活用して、
数秒でインサイトを抽出できる
グラフ型データベースとは
〇定義
-グラフ型データベースとは、データの構造がネットワーク状である場合に、
その関係性を効率的に表現・検索するために用いられるデータベース
-ノード(データの単位)とエッジ(ノード間の関係)で構成される
〇主なメリット
-複雑な関係性の表現が得意:人間関係、取引履歴、ネットワーク構造などを自然に表現できる
-高速なクエリ処理:関係性をたどるクエリ(例:友達の友達を探す)を高速に実行できる
-可視化が容易:ノードとエッジの構造により、データのつながりを視覚的に理解しやすい
〇可視化の例
説明
・ユーザーAとユーザーBは同じ商品Xを購入している。
・両者がそれぞれレビュー(レビュー1とレビュー2)を投稿している。
・商品Xは電子機器カテゴリに属している。
・ユーザーAとユーザーBは「友達」という関係性がある。
〇活用例
-SNSのユーザー関係分析
-不正検知(金融取引のパターン分析)
-レコメンドエンジン(ユーザーと商品との関係性)
-IT資産の構成管理
RDBとグラフ型データベースの違い
| 項目 | RDB(RDS) | グラフ型DB (Neptune) |
|---|---|---|
| データモデル | テーブル、行、列 | ノード、エッジ、プロパティ |
| 関係性の表現 | 外部キーとJOIN | エッジで直接表現 |
| 複雑な関係のクエリ | 複数のJOINで性能低下 | 関係をたどるクエリが高速 |
| スキーマ | 固定スキーマ | 柔軟なスキーマ |
| 適用例 | 構造化データ、トランザクション | ソーシャルネットワーク、推薦システム |
Neptune ノートブックとは
Neptune ノートブックは、グラフデータベースを対話的に操作・分析するための Jupyter(※補足1)ベースの開発環境です。
※補足1
Jupyter Notebookとは、プログラムとその実行結果、Markdown形式のドキュメント、LaTeX形式(MathJax)の数式、図表などをまとめて記述・格納できるウェブアプリケーション
概要
- 実行環境: Amazon SageMaker 上でホスティング
- 用途: グラフクエリの開発、データ分析、可視化
- 言語サポート: Gremlin(Property Graph)、SPARQL(RDF)、Python
- 統合: Neptune データベースに直接接続して即座にクエリ実行可能
実際のコンソール画面
NeptuneのDBクラスターを作成するにあたり、どのような設定が必要か以下に記載します。
・タイプ:「Provisioned」か「Serverless」から選択可能
・エンジンバージョン:複数のバージョンから選択可能

・テンプレート:「本番稼働用」か「開発とテスト」から選択可能
・DBクラスター名,DBインスタンス名:任意の名前を設定可能

・クラスターストレージ設定:「Neptune Standard」or「Neptune I/O 最適化」から選択可能
・インスタンスクラス:「メモリ最適化クラス (r クラスと x クラスを含む)」か「バースト可能クラス (t クラスを含む)」から選択可能
・マルチAZ配置:「別のゾーンでリードレプリカを作成」か「なし」から選択可能

・VPC,サブネットグループ:任意のものを選択可能
・パブリックアクセス可能:「あり」か「なし」で選択可能
・VPCのSG:任意のものを選択可能

・タグ:任意のものを選択可能
・ノートブック設定:「作成」か「作成しない」で選択可能
・ノートブックインスタンスタイプ:複数のタイプから選択可能
・ノートブック名,IAMロール:任意のものを選択可能
・インターネットアクセス:「Amazon SageMaker を介した直接アクセス」か「VPC を介したアクセス」で選択可能

・DB クラスターパラメータグループ,DB インスタンスパラメータグループ:任意のものを選択可能
・IAM DB 認証:「有効」か「無効」から選択可能
・スナップショットにタグをコピー:「有効」か「無効」から選択可能

さいごに
今回は、Neptune(グラフ型データベース)とは何かに注目しました。
ユースケースをまとめ、RDBとは使用用途が全く異なることを理解することが出来ました。
ネクストアクションとして、コスト面が気になるので、実際にデータベースを作成しつつ、Notebookを触ってみたいと思っております。
この記事が、これから Amazon Neptune を触ってみたい方の参考になれば幸いです。
参考
