Your SlideShare is downloading. ×
0
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Tackling Complex Data with Neo4j by Ian Robinson
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Tackling Complex Data with Neo4j by Ian Robinson

596

Published on

Today's complex data is not only big, but also semi-structured and densely connected. In this session we'll look at how size, structure and connectedness have converged to change the data world. We'll …

Today's complex data is not only big, but also semi-structured and densely connected. In this session we'll look at how size, structure and connectedness have converged to change the data world. We'll then go on to look at some of the new opportunities for creating end-user value that have emerged in a world of connected data, illustrated with practical examples implemented using Neo4j, the world's leading graph database.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
596
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Tackling  Complex  Data  with   Neo4j   @ianSrobinson  ian.robinson@neotechnology.com     #neo4j  
  • 2. Outline  •  Data  complexity  •  Graph  databases  –  features  and  benefits  •  Querying  graph  data  •  Use  cases   #neo4j  
  • 3. Data  Complexity  complexity = f(size, semi-structure, connectedness) #neo4j  
  • 4. Data  Complexity  complexity = f(size , semi-structure, connectedness) #neo4j  
  • 5. Semi-­‐Structure   #neo4j  
  • 6. Semi-­‐Structure   USER_ID   FIRST_NAME   LAST_NAME   EMAIL_1   EMAIL_2   FACEBOOK   TWITTER   SKYPE   315   Ian   Robinson   ian@neotechnology.com   iansrobinson@gmail.com   NULL   @iansrobinson   iansrobinson  Email:  ian@neotechnology.com  Email:  iansrobinson@gmail.com   CONTACT  Twi*er:  @iansrobinson   0..n  Skype:  iansrobinson   USER   CONTACT_TYPE   #neo4j  
  • 7. Connectedness   #neo4j  
  • 8. #neo4j  
  • 9. #neo4j  
  • 10. #neo4j  
  • 11. #neo4j  
  • 12. #neo4j  
  • 13. #neo4j  
  • 14. #neo4j  
  • 15. Graphs  Are  Everywhere   #neo4j  
  • 16. #neo4j  
  • 17. Neo4j  is  a  Graph  Database  •  Store  •  Manage  •  Query   data   as  a  graph   #neo4j  
  • 18. Property  Graph  Data  Model   #neo4j  
  • 19. Graph  Database  Benefits  “Minutes  to  milliseconds”  performance   •  Millions  of  ‘joins’  per  second   •  Consistent  query  `mes  as  dataset  grows  Fit  for  the  domain   •  Lots  of  join  tables?  Connectedness   •  Lots  of  sparse  tables?  Semi-­‐structure  Business  responsiveness   •  Easy  to  evolve   #neo4j  
  • 20. Querying  Graph  Data  •  Describing  graphs  •  Crea`ng  nodes,  rela`onships  and  proper`es  •  Querying  graphs   #neo4j  
  • 21. Describing  Graphs   #neo4j  
  • 22. Cypher  (graphs)<-[:INTERESTED_IN]-(ben)-[:INTERESTED_IN]->(rest), (ben)-[:WORKS_FOR]->(acme) #neo4j  
  • 23. Cypher  (ben)-[:INTERESTED_IN]->(graphs), (ben)-[:INTERESTED_IN]->(rest), (ben)-[:WORKS_FOR]->(acme) #neo4j  
  • 24. Create  Some  Data  CREATE ben = { name : Ben }, acme = { name : Acme }, rest = { name : REST }, graphs = { name : Graphs }, ben-[:WORKS_FOR]->acme, ben-[:INTERESTED_IN]->rest, ben-[:INTERESTED_IN]->graphs RETURN ben #neo4j  
  • 25. Create  Nodes  CREATE ben = { name : Ben }, acme = { name : Acme }, rest = { name : REST }, graphs = { name : Graphs }, ben-[:WORKS_FOR]->acme, ben-[:INTERESTED_IN]->rest, ben-[:INTERESTED_IN]->graphs RETURN ben #neo4j  
  • 26. Create  Rela`onships  CREATE ben = { name : Ben }, acme = { name : Acme }, rest = { name : REST }, graphs = { name : Graphs }, ben-[:WORKS_FOR]->acme, ben-[:INTERESTED_IN]->rest, ben-[:INTERESTED_IN]->graphs RETURN ben #neo4j  
  • 27. Return  Node  CREATE ben = { name : Ben }, acme = { name : Acme }, rest = { name : REST }, graphs = { name : Graphs }, ben-[:WORKS_FOR]->acme, ben-[:INTERESTED_IN]->rest, ben-[:INTERESTED_IN]->graphs RETURN ben #neo4j  
  • 28. Eventually…   #neo4j  
  • 29. Querying  a  Graph  Graph  local:  •  One  or  more  start  nodes  •  Explore  surrounding  graph  •  Millions  of  joins  per  second   #neo4j  
  • 30. Queries:  Padern  Matching  Padern   #neo4j  
  • 31. Start  Node  Padern   #neo4j  
  • 32. Match  Padern   #neo4j  
  • 33. Match  Padern   #neo4j  
  • 34. Match  Padern   #neo4j  
  • 35. Non-­‐Match  Padern   #neo4j  
  • 36. Non-­‐Match  Padern   #neo4j  
  • 37. Colleagues  Who  Share  My  Interests   #neo4j  
  • 38. Cypher  Padern  me-[:INTERESTED_IN]->topic, me-[:WORKS_FOR]->company, colleague-[:INTERESTED_IN]->topic, colleague-[:WORKS_FOR]->company #neo4j  
  • 39. Find  Colleagues  START me=node:users(name = "sarah") MATCH me-[:INTERESTED_IN]->topic, me-[:WORKS_FOR]->company, colleague-[:INTERESTED_IN]->topic, colleague-[:WORKS_FOR]->company RETURN colleague.name AS name, count(topic) AS score, collect(topic.name) AS interests ORDER BY score DESC #neo4j  
  • 40. Find  Start  Node  START me=node:users(name = "sarah") MATCH me-[:INTERESTED_IN]->topic, me-[:WORKS_FOR]->company, colleague-[:INTERESTED_IN]->topic, colleague-[:WORKS_FOR]->company RETURN colleague.name AS name, count(topic) AS score, collect(topic.name) AS interests ORDER BY score DESC #neo4j  
  • 41. Describe  Padern  START me=node:users(name = "sarah") MATCH me-[:INTERESTED_IN]->topic, me-[:WORKS_FOR]->company, colleague-[:INTERESTED_IN]->topic, colleague-[:WORKS_FOR]->company RETURN colleague.name AS name, count(topic) AS score, collect(topic.name) AS interests ORDER BY score DESC #neo4j  
  • 42. Construct  Results  START me=node:users(name = "sarah") MATCH me-[:INTERESTED_IN]->topic, me-[:WORKS_FOR]->company, colleague-[:INTERESTED_IN]->topic, colleague-[:WORKS_FOR]->company RETURN colleague.name AS name, count(topic) AS score, collect(topic.name) AS interests ORDER BY score DESC #neo4j  
  • 43. Case  Studies   #neo4j  
  • 44. Network  Impact  Analysis  •  Which  parts  of  network   does  a  customer   depend  on?  •  Who  will  be  affected  if   we  replace  a  network   element?   #neo4j  
  • 45. Asset  Management  &  Access  Control  •  Which  assets  can  an   admin  control?  •  Who  can  change  my   subscrip`on?   #neo4j  
  • 46. Logis`cs  •  What’s  the  quickest   delivery  route  for  this   parcel?   #neo4j  
  • 47. Social  Network  &  Recommenda`ons  •  Which  assets  can  I   access?  •  Who  shares  my   interests?   #neo4j  
  • 48. Community   Advanced   Enterprise  hdp://neo4j.org/download/   #neo4j  
  • 49. Thank  You   @iansrobinson  ian.robinson@neotechnology.com     #neo4j  

×