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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend