48
36

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

KIT Developer Advent Calendar 2018

Day 10

Amazon Neptuneを使ってみる

Last updated at Posted at 2018-12-10

KIT Developer Advent Calendar 2018 10日目の記事になります.

Amazon Neptuneを使ってみます.

この記事では, まだ使ってみたなどが少ないAmazon Neptuneを使ってみます.
それと同時に, グラフ型データベースとはどのようなものかも記載していきます.

研究にて, グラフ型データベースを使用する機会があり, 自分用のメモとして残そうと考え, 書いています.

Amazon Neptuneって耳にしたことありますか?

ざっくりいうと, Amazon NeptuneはAWS(クラウド)のグラフ型データベースサービスです.
alt

Amazon Neptuneの説明をする前に, 簡単にグラフ型データベースとは何かについて書いていきます.

グラフ型データベースとは

  • 頂点(Node, Vertex)と辺(Edge)からなる構造をもつデータベース
  • 大量のオブジェクトとそれらの関係性を保持するのに適したデータベース
  • 人間関係, 通信ネットワーク, SNS, レコメンデーションエンジン, 経路案内, 物流最適化, 自動診断, 侵入検知やゲノム配列決定などネットワーク構造を持つものを表現するのに適している.

グラフ型データベースとRDBの比較

RDBだと複雑なER図になってしまうが, グラフ型データベースを用いると, 直感的にわかりやすいだけでなく, 検索クエリーも速度に加えて, コード量も減らすことができる.

  • RDBの場合だと, joinが大量に発生する

alt

グラフの記法

  • プロパティグラフ(Property Graph)
    各点, 各辺に属性データを内部情報として持つ記述方法
    alt

  • RDF Graph
    プロパティグラフが内部に持つ属性データも全て点と辺で表現する記述方法
    alt

  • 横道にそれますが, 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とだけ褒めておきます

ユースケース例

  • ソーシャルネットワーキング

alt

  • ナレッジグラフ

amazon neptune公式サイト

導入

  1. AWSアカウントがない場合は, 作成しましょう.
    AWSアカウント作成

  2. Amazon Neptuneのセットアップ
    Neptuneインスタスの生成には, Amazon Virtual Private Cloud (VPC)が必要
    Amazon Neptuneのセットアップ

  3. NeptuneDBクラスターの起動
    Amazon Neptune コンソールから, DBの詳細設定を行い, インスタンスの起動
    NeptuneDBクラスターの起動

  4. DBへのアクセス

最後に

  • ユースケース次第ですが, グラフ型データベースが使われていく場面は増えていくんじゃないでしょうか.

  • KIT Developer Advent Calendar 2018に記事の完成を間に合わせられなく, 中途半端な記事になっていることは申し訳ありませんm(_ _)m

  • 導入部分に関して, 細かい説明や画像を載せて更新していきたいと思っています.

参考サイト

48
36
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
48
36

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?