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
Kevin Bacon Number with Neo4j
Search
kawakubox
August 17, 2016
Programming
0
2k
Kevin Bacon Number with Neo4j
グラフデータベースのNeo4jを使って、ケビン・ベーコン数の検証をしたLTのスライド
kawakubox
August 17, 2016
Tweet
Share
More Decks by kawakubox
See All by kawakubox
speee-eng-mtg-20160810
kawakubox
0
1.6k
speee-kaigi-160629
kawakubox
1
2.8k
Other Decks in Programming
See All in Programming
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
120
CSC307 Lecture 05
javiergs
PRO
0
500
「ブロックテーマでは再現できない」は本当か?
inc2734
0
1k
Apache Iceberg V3 and migration to V3
tomtanaka
0
170
Smart Handoff/Pickup ガイド - Claude Code セッション管理
yukiigarashi
0
150
並行開発のためのコードレビュー
miyukiw
0
1.1k
CSC307 Lecture 02
javiergs
PRO
1
780
AIと一緒にレガシーに向き合ってみた
nyafunta9858
0
250
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
650
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
380
組織で育むオブザーバビリティ
ryota_hnk
0
180
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
190
Featured
See All Featured
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
52
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
290
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
420
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Designing for Timeless Needs
cassininazir
0
130
Designing Experiences People Love
moore
144
24k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.7k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
110
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Transcript
Neo4j Ͱ έϏϯɾϕʔ ίϯʹ৮ΕͯΈΔ 2016.8.17 (Wed)
• ໊લ: Տٱอ ൟ࢙ (kawakubox) • ւ֎ࣄۀ෦ Eng • !
ϑϧϚϥιϯࢦͯ͠ ΦϑΟε to ࣗ ͷ Extreme ୀ ࣾͳΜ͔ͰτϨʔχϯάதɻ
ಥવͰ͕͢ɺέϏϯɾϕ ʔίϯͬͯͬͯ·͢ ͔ʁ
None
ΞϝϦΧ߹ऺࠃͷആ༏ ओͳग़ԋ࡞ • ʰτϨϚʔζʱ • ʰΞϙϩ13ʱ • ʰX-MEN: ϑΝʔετɾδΣωϨʔγϣϯʱ etc
etc ...
ͰɺέϏϯɾϕʔίϯ ͬͯͬͯ·͔͢ʁ
έϏϯɾϕʔίϯͱ өըആ༏ͷڞԋؔͷʮڑʯΛέϰΟϯɾϕʔίϯΛىʹ ܭଌ͞ΕΔ ϕʔίϯຊਓ͕ʮϋϦουͷશһ͕ࣗͷڞԋऀ͔ɺڞԋऀ ͷڞԋऀͩʯͱ͍͏झࢫͷൃݴͨ͜͠ͱ͕͖͔͚ͬ — wikipedia
έϏϯɾϕʔίϯͷਤ Ͱඳ͘ͱ
None
࣍ͷִͨΓ ࣍ͷִͨΓʢΖ͘͡ͷͩͨΓɺSix Degrees of Separationʣ ͱɺશͯͷਓࣄ6εςοϓҎͰܨ͕͍ͬͯͯɺ༑ୡͷ ༑ୡ…Λհͯ͠ੈքதͷਓʑͱؒతͳΓ߹͍ʹͳΔ͜ͱ͕ Ͱ͖Δɺͱ͍͏Ծઆɻ — wikipedia
• SNSͳͲͷԼʹͳ͍ͬͯΔԾઆ
·͞ʹάϥϑDBʹͱͬͯ࠷దͷͳͷͰɺNeo4jͷੑೳݕূ ݉Ͷͯେ͖ΊͳσʔλΛೖͯ͠ΈΑ͏
σʔλϞσϧ
None
Node : Person • ϓϩύςΟ • person_id • name
Relation : KNOWS • ϓϩύςΟͳ͠
લఏ • 1ਓ࠷100ਓͱΓ߹͍Ͱ͋Δ
1,000,000ਓͷੈք σʔλೖ࣌ؒ(csv import) IMPORT DONE in 7m 6s 292ms. Imported:
1000000 nodes 200000000 relationships 2000000 properties
1,000,000ਓͷੈք ϗοϓͷ # ࢼߦճ : 1,065ճ {0=>0, 1=>0, 2=>43, 3=>1021,
4=>1, 5=>0}
10,000,000ਓͷੈք IMPORT DONE in 3h 5m 4s 706ms. Imported: 10000000
nodes 2000000000 relationships 20000000 properties
10,000,000ਓͷੈք ϗοϓͷ # ࢼߦճ : 1,065ճ {0=>0, 1=>0, 2=>4, 3=>592,
4=>469, 5=>0}
֬ೝ༻ͷCYPHERΫΤϦ MATCH (a:Person {person_id: {i}}), (b:Person {person_id: {j}}), p =
shortestPath((a)-[*..6]->(b)) RETURN length(p) as len
CYPHERΫΤϦͷ༁ MATCH // person_id = i Λ࣋ͭϊʔυΛऔಘ͠ɺ a ͱ͢Δ (a:Person
{person_id: {i}}), // person_id = j Λ࣋ͭϊʔυΛऔಘ͠ɺ b ͱ͢Δ (b:Person {person_id: {j}}), // a ͱ b ͷϗοϓ͕ 6 ҎͷͷͰɺ࠷ܦ࿏Λऔಘ͢Δ p = shortestPath((a)-[*..6]->(b)) RETURN // ࠷ܦ࿏ͷ͞(len)Λฦ٫͢Δ length(p) as len
126,000,000ਓͷੈքʢຊʣ -rw-r--r-- 1 kawakubox staff 21M 8 16 22:09 person_1000000.csv
-rw-r--r-- 1 kawakubox staff 221M 8 17 01:31 person_10000000.csv -rw-r--r-- 1 kawakubox staff 2.6G 8 16 22:12 relation_1000000.csv -rw-r--r-- 1 kawakubox staff 2.9G 8 17 01:34 person_japan.csv -rw-r--r-- 1 kawakubox staff 29G 8 17 03:53 relation_10000000.csv ϦϨʔγϣϯೖ༻σʔλ͕ 10,000,000 ͷ࣌Ͱ 30G ͋ͬͨ ͷͰɺσʔλ࡞࣌Ͱஅ೦ɺɺɺ
ࠓճͬͯΈͯͷؾ͖ • ϊʔυ͕ 10,000,000 Ͱɺదʹ index షΕɺprimary ݕ ࡧࣗମ 0ms
͘Β͍Ͱฦͬͯ͘Δ • ϦϨʔγϣϯ͕ 2,000,000,000 ͘Β͍ʹͳΔͱɺ͘ͳͬͯ ͘Δ (5sec ͘Β͍) • ͍ΫΤϦɺCPUར༻ 300% ͑ͱ͔ฏؾͰ͢Δ • Enterprise൛ͬͯͷΫϥελϦϯάͳΜ͔ࢼͯ͠Έͨ ͍
END