getting started
play

Getting Started with Graph Databases rik@neotechnology.com Agenda - PowerPoint PPT Presentation

Getting Started with Graph Databases rik@neotechnology.com Agenda Introduction NO-SQL context What is Neo4j? When/why should I use it? Graph Queries Cypher query language Create and query data Graph Visualisations


  1. Getting Started with Graph Databases rik@neotechnology.com

  2. Agenda • Introduction – NO-SQL context – What is Neo4j? – When/why should I use it? • Graph Queries – Cypher query language – Create and query data • Graph Visualisations • Case Studies • Q&A

  3. Introduction

  4. NOSQL is simply… N ot O nly S QL

  5. What ’ s so bad about Relational VOLUME Complexity

  6. The Relational Crossroads

  7. KV CF Doc Denormalise Four NOSQL Categories arising from the “ relational crossroads ” Normalise Graph

  8. So what is a graph database? • OLTP database – “ end-user ” transactions • Model, store, manage data as a graph

  9. Meet Leonhard Euler • Swiss mathematician • Inventor of Graph Theory (1736) http://en.wikipedia.org/wiki/File:Leonhard_Euler_2.jpg

  10. Königsberg (Prussia) - 1736

  11. A B C D

  12. 1 A 4 2 3 B C 6 5 7 D

  13. What is a graph? Vertice Edge

  14. What is a graph? Node Relationship

  15. What are graphs good for? Complexity

  16. Data Complexity complexity = f( size , semi-structure, connectedness)

  17. Size

  18. The Real Complexity complexity = f(size , semi-structure , connectedness )

  19. Semi-Structure

  20. Semi-Structure USER_ID FIRST_NAME LAST_NAME EMAIL_1 EMAIL_2 FACEBOOK TWITTER SKYPE rik@neotechnology.com rik@vanbruggen.be @rvanbruggen rvanbruggen 315 Rik Van Bruggen NULL Email : rik@neotechnology.com Email: rik@vanbruggen.be CONTACT Twitter: @rvanbruggen Skype: rvanbruggen USER CONTACT_TYPE

  21. The Real Complexity complexity = f(size , semi-structure , connectedness )

  22. Examples of Connectedness

  23. 26

  24. Graphs Are Everywhere

  25. Neo4j is a Graph Database • JVM based • ACID transactions • Query language • Rich Java APIs • Using the Property Graph model

  26. Describing Graphs BeerBrand NeoBeer IS_A BREWS HAS_ALCOHOL_PERCENTAGE Brewery Alcohol BeerType Percentage hoge Brouweri 8 j Bockor gisting, blond PRECEDES

  27. A Hairball!

  28. Querying a Graph • Graph local – Contextualized “ ego-centric ” queries • “ Parachute ” into graph – Start node(s) • Found through Index lookups • Crawl the surrounding graph – 2 million+ joins per second • No more Index lookups: Index-free adjacency

  29. Queries: Pattern Matching Pattern

  30. Don’t worry (as much) about the Start Node Pattern

  31. Match Pattern

  32. Match Pattern

  33. Match Pattern

  34. Non-Match Pattern

  35. Non-Match Pattern Not anchored to start node

  36. Describing Graphs BeerBrand NeoBeer IS_A BREWS HAS_ALCOHOL_PERCENTAGE Brewery Alcohol BeerType Percentage hoge Brouweri 8 j Bockor gisting, blond PRECEDES PRECEDES 7.9 8.1 Alcohol Alcohol Percentage Percentage

  37. Graph Visualisations • Web Admin • Neography / Neovigator • Neoclipse • Gephi, Prefuse, d3.js, etc….

  38. Neo4j Web Admin

  39. Neoclipse

  40. Neovigator

  41. Other Visualisation options: • KeyLines • Linkurio.us 44

  42. Case Studies

  43. Contact Us • Neo Technology UK 5-11 Lavington Street London SE1 0NZ ENGLAND +44 808 189 0493 • rik@neotechnology.com or • +32 478 686800

Recommend


More recommend