Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kevin Bacon Number with Neo4j

Avatar for kawakubox kawakubox
August 17, 2016

Kevin Bacon Number with Neo4j

グラフデータベースのNeo4jを使って、ケビン・ベーコン数の検証をしたLTのスライド

Avatar for kawakubox

kawakubox

August 17, 2016
Tweet

More Decks by kawakubox

Other Decks in Programming

Transcript

  1. • ໊લ: Տٱอ ൟ࢙ (kawakubox) • ւ֎ࣄۀ෦ Eng • !

    ϑϧϚϥιϯ׬૸໨ࢦͯ͠ ΦϑΟε to ࣗ୐ ͷ Extreme ୀ ࣾͳΜ͔ͰτϨʔχϯάதɻ
  2. 1,000,000ਓͷੈք σʔλ౤ೖ࣌ؒ(csv import) IMPORT DONE in 7m 6s 292ms. Imported:

    1000000 nodes 200000000 relationships 2000000 properties
  3. 10,000,000ਓͷੈք IMPORT DONE in 3h 5m 4s 706ms. Imported: 10000000

    nodes 2000000000 relationships 20000000 properties
  4. 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
  5. 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 ͋ͬͨ ͷͰɺσʔλ࡞੒࣌఺Ͱஅ೦ɺɺɺ
  6. ࠓճ΍ͬͯΈͯͷؾ෇͖ • ϊʔυ͕ 10,000,000 Ͱ΋ɺద੾ʹ index షΕ͹ɺprimary ݕ ࡧࣗମ͸ 0ms

    ͘Β͍Ͱฦͬͯ͘Δ • ϦϨʔγϣϯ͕ 2,000,000,000 ͘Β͍ʹͳΔͱɺ஗͘ͳͬͯ ͘Δ (5sec ͘Β͍) • ΍͹͍ΫΤϦ͸ɺCPUར༻཰ 300% ௒͑ͱ͔ฏؾͰ͢Δ • Enterprise൛࢖ͬͯͷΫϥελϦϯάͳΜ͔͸ࢼͯ͠Έͨ ͍
  7. END