Neo4j: WTF Is This Hipster Graph Thingy?

5a5fcbae333f071dc7a28f4958509db5?s=47 Miha Rekar
November 27, 2014

Neo4j: WTF Is This Hipster Graph Thingy?

5a5fcbae333f071dc7a28f4958509db5?s=128

Miha Rekar

November 27, 2014
Tweet

Transcript

  1. WTF IS THIS HIPSTER GRAPH THINGY?

  2. WHY • natural • graphs are everywhere • easy to

    think about
  3. EXAMPLES • Access Control

  4. EXAMPLES • Access Control • Insurance Risk Analysis • Geo

    Routing • Social Graphs
  5. EXAMPLE FOR REALZ • How do I know you? •

    How do I get to Maribor? • Where should I have lunch?
  6. Core Industries & Use Cases: Web / ISV Finance &

    Insurance Telecomm- unications Network & Data Center Management MDM Social Geo Core Industries & Use Cases: Software Financial Services Telecommu nications Web Social, HR & Recruiting Health Care & Life Sciences Media & Publishing Energy, Services, Automotive, Gov’t, Logistics, Education, Gaming, Other Network & Data Center Management MDM / System of Record Social Geo Identity & Access Mgmt Content Management Recommend-ations BI, CRM, Impact Analysis, Fraud Detection, Resource Optimization, etc. Accenture Finance Energy Aerospace Neo4j Adoption Snapshot Select Commercial Customers (Community Users Not Included)
  7. RELATIONAL DB

  8. RELATIONAL DB

  9. GRAPH DB

  10. GRAPH DB • nodes • edges / relationships • properties

    / attributes
  11. NEO4J • NoSQL • open-source • Java/Scala • the most

    popular graph DB • full DB characteristics (ACID compliance, cluster support, runtime failover)
  12. CYPHER • SQL-like • ASCII-ish

  13. CYPHER • SQL-like • ASCII-ish SELECT firstname FROM person WHERE

    person.nickname= 'The Dude' MATCH p:person WHERE p.nickname= 'The Dude' RETURN p.firstname
  14. CYPHER • SQL-like • ASCII-ish SELECT firstname FROM person WHERE

    person.nickname= 'The Dude' MATCH p:person WHERE p.nickname= 'The Dude' RETURN p.firstname FROM person JOIN team ON person.teamid = team.id WHERE person.nickname= 'The Dude' AND team.sport = 'Bowling' MATCH (p:person)-[:in]-(t:team) WHERE p.nickname= 'The Dude' AND t.sport = 'Bowling' RETURN p.firstname, t.name
  15. CYPHER • SQL-like • ASCII-ish SELECT firstname FROM person WHERE

    person.nickname= 'The Dude' MATCH p:person WHERE p.nickname= 'The Dude' RETURN p.firstname FROM person JOIN team ON person.teamid = team.id WHERE person.nickname= 'The Dude' AND team.sport = 'Bowling' MATCH (p:person)-[:in]-(t:team) WHERE p.nickname= 'The Dude' AND t.sport = 'Bowling' RETURN p.firstname, t.name MATCH (p:person)-[*]-(p2:person) WHERE p.nickname= 'The Dude' RETURN p.firstname, p2.firstname
  16. DEMO

  17. Q&A

  18. HVALA @mr_foto @RubySlovenia