Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
[LT]Amazon Neptuneで始める初めてのグラフDB ー グラフDBを使う意味を考える ー
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Satoshi Kaneyasu
September 06, 2024
Programming
560
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
[LT]Amazon Neptuneで始める初めてのグラフDB ー グラフDBを使う意味を考える ー
Satoshi Kaneyasu
September 06, 2024
More Decks by Satoshi Kaneyasu
See All by Satoshi Kaneyasu
運用ダッシュボードの設計を誰も教えてくれないのだけどみなさんどうしてるんですか? - チームに監視するという文化を根付かせるための第一歩を踏みたい -
satoshi256kbyte
0
28
AWS CDK ExpressモードとCI/CDの組み合わせ
satoshi256kbyte
1
38
AWS CDK ExpressモードとCI/CDの組み合わせ
satoshi256kbyte
0
16
AWS re:Invent 2025の少し振り返り + DevOps AgentとBacklogを連携させてみた
satoshi256kbyte
3
220
Amazon_Cognito_で構築する_スケーラブルな_Web_アプリケーション__シングルページ_Web_アプリケーションに認証を組み込む
satoshi256kbyte
0
43
人間とAI、どちらが書いたコードもCI/CDでチェックしてみよう
satoshi256kbyte
0
45
今こそ押さえておきたい アマゾンウェブサービス(AWS)の データベースの基礎 おもクラ #6版
satoshi256kbyte
1
290
今こそ押さえておきたい アマゾンウェブサービス(AWS)の データベースの基礎
satoshi256kbyte
1
63
人間とAI、どちらが書いたコードもCICDでチェックしてみよう
satoshi256kbyte
1
93
Other Decks in Programming
See All in Programming
才能?センス?知らん、 続けたもん勝ちだ。-- 結婚・出産・癌を越えてなお、私がプロダクトを創り続ける理由
16bitidol
2
910
The Bowling Game- From Imperative to Functional Programming - Part 1
philipschwarz
PRO
0
340
初めてのKubernetes 本番運用でハマった話
oku053
0
130
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
410
JAWS-UG横浜 #102 AWSサ終供養LT会 成仏できない AWS サービスたち 〜本日、三体供養します〜
maroon1st
0
240
【SRE NEXT 2026 Lunch Session】一人目専任SREの立ち上げを加速する ― AIと進めたオンボーディングで2分を0.04秒にした話
pkshadeck
PRO
0
3.1k
作るコストが小さくなった時代 幸せに働くために改めて考えたいこと 〜エンジニアとして価値を出し続けるために注視している二分野〜
yuppeeng
0
130
What's New in Android 2026
veronikapj
0
210
AI時代のPHPer生存戦略 ~「言語、もうなんでもよくない?」に本気で向き合う~
vivion
0
170
分散システム、なんですぐ死んでしまうん?耐障害性を高めたいあなたのためのレジリエンスパターン入門
mshibuya
7
6.9k
エンジニアにデザインハーネスを 〜デザインプロセスを規定するためのハーネス〜 / Design harness from an engineer's perspective
rkaga
2
1.7k
Embedded SREと共に達成した会員管理システムのAWS移行 - SRE NEXT 2026 ランチスポンサーセッション
niftycorp
PRO
1
3.1k
Featured
See All Featured
How to Talk to Developers About Accessibility
jct
2
440
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
350
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
First, design no harm
axbom
PRO
2
1.2k
Are puppies a ranking factor?
jonoalderson
1
3.7k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
230
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
450
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
210
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
67
56k
Mind Mapping
helmedeiros
PRO
1
290
The Curse of the Amulet
leimatthew05
2
13k
Transcript
Amazon Neptuneで始める初めてのグラフDB -グラフDBを使う意味を考える- 2024.09.07
2 自己紹介 氏名:兼安 聡 所属:株式会社サーバーワークス アプリケーションサービス部 在住:広島(フルリモート) 担当:DevOps、PM、SM 2024 Japan
AWS Top Engineers (Database) 2024 Japan AWS All Certifications Engineers 認定スクラムマスター X:@satoshi256kbyte
3 今回のLTについて Amazon NeptuneはグラフDBが扱えるマネージドサービス です これを用いて生まれて初めてグラフDBを触ってみました 触ってみた結果自分が感じたグラフDBの意味を共有します
4 Amazon Neptuneで表現したグラフDB API Gateway CPU 最適化 メモリ 最適化 一般
EC2 ALB ECS オンプレ Tom Sawyerで出力してますが、 発表用に見やすさ重視で加工してます
5 Amazon Neptuneで表現したグラフDB わかる人にはわかる知識のつながり を表現している API Gateway CPU 最適化 メモリ
最適化 一般 EC2 ALB ECS オンプレ
6 Amazon Neptuneで表現したグラフDB つまりベテランの頭の中を 図示したもの、マインドマップ API Gateway CPU 最適化 メモリ
最適化 一般 EC2 ALB ECS オンプレ
7 Amazon Neptuneで表現したグラフDB ある程度の知識があれば、 これを見て新たな気づきが得られる API Gateway CPU 最適化 メモリ
最適化 一般 EC2 ALB ECS オンプレ ALBって、オンプレとも連携できる かもしれないのか(気づき)
8 グラフのモデルとクエリ言語 モデル クエリ言語 構造 プロパティグラフ • Gremlin (Apache TinkerPop)
• Cypher (Neo4j) • ノード(頂点)とエッジ(辺)で構成 • ノードとエッジに任意のプロパティを持つ • ノード: エンティティやオブジェクト • エッジ: ノード間の関係 RDF • SPARQL • トリプル形式(主語、述語、目的語) • 主語: リソースやエンティティ • 述語: 関係やプロパティ • 目的語: 関係の相手やプロパティの値
9 グラフのモデルとクエリ言語 モデル クエリ言語 構造 プロパティグラフ • Gremlin (Apache TinkerPop)
• Cypher (Neo4j) • ノード(頂点)とエッジ(辺)で構成 • ノードとエッジに任意のプロパティを持つ • ノード: エンティティやオブジェクト • エッジ: ノード間の関係 RDF • SPARQL • トリプル形式(主語、述語、目的語) • 主語: リソースやエンティティ • 述語: 関係やプロパティ • 目的語: 関係の相手やプロパティの値 今回はプロパティグラフと Gremlinを使用
10 構成図 グラフDBにAmazon Neptuneを使用 データ登録はPython+Gremlin プログラムはJupyter Notebookで実行 勉強目的なのであえてプログラムでデータ 投入 データの参照はマーケットプレイスの、
Tom Sawyerを使用 Tom Sawyerはグラフの可視化に優れる 自前でグラフDBをインストールして 準備するより圧倒的に楽
11 Amazon Neptuneへのデータ投入 port = 8182 server = '{Amazon Neptuneのエンドポイント}'
endpoint = f'wss://{server}:{port}/gremlin' graph = Graph() connection = DriverRemoteConnection(endpoint, 'g', transport_factory=lambda: AiohttpTransport(call_from_event_loop=True)) g.addV('compute').property(T.id, '1').property('name', 'EC2').iterate() g.addV('networking & container delivery').property(T.id, '4').property('name', 'ELB').iterate() # エッジ(繋がり)を追加 (ELBとEC2) g.V('4').addE('connect').to(__.V('1')).iterate() 雰囲気だけ感じてください 一見面倒に見えるが、 新たな繋がりを作る時にテーブル定義の 変更が発生しないのが大きい
12 一部を切り出すこともできる g.V().has('name', 'EC2').outE('instance type') CPU 最適化 メモリ 最適化 一般
EC2
13 一部を切り出すこともできる import pandas as pd # EC2とインスタンスタイプの情報を取得し、表形式で表示する ec2_instance_type_info =
g.V().has('name', 'EC2') \ .as_('ec2') \ .outE('instance type').inV() \ .project('compute_name', 'instance_type_name', 'first_character') \ .by(__.select('ec2').values('name')) \ .by(__.values('name')) \ .by(__.values('first character')) \ .toList() # 結果をDataFrameに変換 df = pd.DataFrame(ec2_instance_type_info) compute_name instance_type_name first_character EC2 一般 m EC2 コンピューティング最適化 c EC2 メモリ最適化 r
14 知識のデータの話なのでベクトルDBとグラフDBの違いを考える ベクトルDB 生成AIに使われる 類似性検索を得意としている グラフDB 複雑な関係をより自然に表現できる 人に理解と気づきを与えるのに適している データの準備に時間がかかるのは同じ
16 <まとめ>私が感じたグラフDBの意味 グラフDBはわかる人にはわかる繋がりを表現できる つまり、ベテランの頭の中であり、これを見たほうが 早く理解と気づきを得られる可能性がある という方向性でグラフDBを試行錯誤してます 同士がいたら一緒に活用方法を考えさせてください
17 ありがとうございました
None
19 Appendix 今回検証に使用したソースコード https://github.com/satoshi256kbyte/study-graphdb-neptune