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

Kevin Bacon Number with Neo4j

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