Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
[LT]Amazon Neptuneで始める初めてのグラフDB ー グラフDBを使う意味を考える ー
Search
Satoshi Kaneyasu
September 06, 2024
Programming
570
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
今から学ぶベクトルデータベース基礎知識からAmazon Bedrock Knowledge Basesまで
satoshi256kbyte
0
0
Amazon Managed Grafana で Amazon DynamoDB のデータを可視化する Infinity Plugin + プライベート API 構成
satoshi256kbyte
1
22
AI駆動開発にグラフDBを重ねてみた
satoshi256kbyte
2
810
AWS Transform Customによる Spring Boot 2.xから4.xへのVerUp
satoshi256kbyte
2
160
運用ダッシュボードの設計を誰も教えてくれないのだけどみなさんどうしてるんですか? - チームに監視するという文化を根付かせるための第一歩を踏みたい -
satoshi256kbyte
1
210
AWS CDK ExpressモードとCI/CDの組み合わせ
satoshi256kbyte
1
63
AWS re:Invent 2025の少し振り返り + DevOps AgentとBacklogを連携させてみた
satoshi256kbyte
3
250
Amazon_Cognito_で構築する_スケーラブルな_Web_アプリケーション__シングルページ_Web_アプリケーションに認証を組み込む
satoshi256kbyte
0
55
人間とAI、どちらが書いたコードもCI/CDでチェックしてみよう
satoshi256kbyte
0
64
Other Decks in Programming
See All in Programming
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
140
Family mrubyの進捗
kishima
1
130
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
400
個人開発基盤をまるごとCloudflareに引っ越して爆速で総合的体験を向上させた話
tinykitten
0
190
巨大モノリシックアプリ モダン化大作戦
ktcryomm
1
1k
thread_parallel_with_free-threaded_Python_and_NumPy.pdf
riku_sakamoto
0
340
数年滞っていたダークモード対応をおよそ2週間で完了させる
chigichan24
0
730
Go × SIMDで高速化するベクトル検索 ~ルーフラインモデルでSIMDが効く境界を探れ! ~
po3rin
1
1.7k
モバイル交通系ICへのチャージ実例から考える、クロスプラットフォーム開発におけるiOS実機テスト設計とCI運用
yusuga
1
510
PL/pgSQLはなぜ「ふつうのSQL」より遅いのか
tameguro
0
110
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
5
3.3k
Kiroで創り、AgentCoreで繋ぐ!AWSで実践する「AI-DLC」から「AIエージェント統合」までの最新地図
licux
4
700
Featured
See All Featured
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
540
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
690
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
GraphQLとの向き合い方2022年版
quramy
50
15k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
The Pragmatic Product Professional
lauravandoore
37
7.4k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.6k
Speed Design
sergeychernyshev
33
2.1k
Agile that works and the tools we love
rasmusluckow
331
22k
Making the Leap to Tech Lead
cromwellryan
135
10k
Paper Plane (Part 1)
katiecoart
PRO
2
11k
Claude Code のすすめ
schroneko
67
230k
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