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
AI時代を生き抜く 新卒エンジニアの生きる道
coconala_engineer
1
510
gunshi
kazupon
1
140
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
2
450
ZJIT: The Ruby 4 JIT Compiler / Ruby Release 30th Anniversary Party
k0kubun
1
310
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
4
1.1k
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
460
大規模Cloud Native環境におけるFalcoの運用
owlinux1000
0
240
Context is King? 〜Verifiability時代とコンテキスト設計 / Beyond "Context is King"
rkaga
10
1.5k
Kotlin Multiplatform Meetup - Compose Multiplatform 외부 의존성 아키텍처 설계부터 운영까지
wisemuji
0
160
生成AI時代を勝ち抜くエンジニア組織マネジメント
coconala_engineer
0
38k
CSC307 Lecture 02
javiergs
PRO
1
750
2年のAppleウォレットパス開発の振り返り
muno92
PRO
0
180
Featured
See All Featured
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.1k
The Curse of the Amulet
leimatthew05
0
6.8k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.1k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
37
Site-Speed That Sticks
csswizardry
13
1k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.3k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
420
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
120
We Are The Robots
honzajavorek
0
130
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.3k
Leo the Paperboy
mayatellez
1
1.3k
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