KIT Developer Advent Calendar 2018 10日目の記事になります.
Amazon Neptuneを使ってみます.
この記事では, まだ使ってみたなどが少ないAmazon Neptuneを使ってみます.
それと同時に, グラフ型データベースとはどのようなものかも記載していきます.
研究にて, グラフ型データベースを使用する機会があり, 自分用のメモとして残そうと考え, 書いています.
Amazon Neptuneって耳にしたことありますか?
ざっくりいうと, Amazon NeptuneはAWS(クラウド)のグラフ型データベースサービスです.
Amazon Neptuneの説明をする前に, 簡単にグラフ型データベースとは何かについて書いていきます.
グラフ型データベースとは
- 頂点(Node, Vertex)と辺(Edge)からなる構造をもつデータベース
- 大量のオブジェクトとそれらの関係性を保持するのに適したデータベース
- 人間関係, 通信ネットワーク, SNS, レコメンデーションエンジン, 経路案内, 物流最適化, 自動診断, 侵入検知やゲノム配列決定などネットワーク構造を持つものを表現するのに適している.
グラフ型データベースとRDBの比較
RDBだと複雑なER図になってしまうが, グラフ型データベースを用いると, 直感的にわかりやすいだけでなく, 検索クエリーも速度に加えて, コード量も減らすことができる.
- RDBの場合だと, joinが大量に発生する
グラフの記法
-
横道にそれますが, RDFグラフはセマンティック・ウェブの実現手段として使われていたりします.
WEB上の情報をトリプル化,グラフ化し,オントロジーをコンピュータに教えることで, コンピュータが効率よくWEB上の情報を収集したり, 解釈したりできるようにするために使われていたりします. -
↓RDFについて優しく書かれており, セマンティック・ウェブについても記述があるのでお薦めです.
RDF入門
本題に戻すと,
Amazon Neptuneとは
- AWSのサービスの1つ
- クラウド上でグラフ型データベースを利用できるサービス
特徴
-
オープングラフAPIをサポート
- GremlinとSPARQLに対してオープングラフ API を対応
- Property Graph モデルとそのオープンソースクエリ言語である Apache TinkerPop Gremlin
- W3C 標準の Resource Description Framework (RDF) モデルとその標準クエリ言語である SPARQL(スパークル)
- つまり, どちらのグラフ記法に対応し, それに対するクエリ言語が使える!
- 高い安全性
- 優れたパフォーマンスとスケーラビリティ
- 完全マネージド型
- 高可用性と耐久性
- ココらへんは流石AWSとだけ褒めておきます
ユースケース例
- ソーシャルネットワーキング
- ナレッジグラフ
導入
-
AWSアカウントがない場合は, 作成しましょう.
AWSアカウント作成 -
Amazon Neptuneのセットアップ
Neptuneインスタスの生成には, Amazon Virtual Private Cloud (VPC)が必要
Amazon Neptuneのセットアップ -
NeptuneDBクラスターの起動
Amazon Neptune コンソールから, DBの詳細設定を行い, インスタンスの起動
NeptuneDBクラスターの起動 -
DBへのアクセス
- Gremlin Gremlin を使用した Neptune グラフへのアクセス
- SPARQL SPARQL を使用した Neptune グラフへのアクセス
最後に
-
ユースケース次第ですが, グラフ型データベースが使われていく場面は増えていくんじゃないでしょうか.
-
KIT Developer Advent Calendar 2018に記事の完成を間に合わせられなく, 中途半端な記事になっていることは申し訳ありませんm(_ _)m
-
導入部分に関して, 細かい説明や画像を載せて更新していきたいと思っています.