Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Neo4j

1,089 views

Published on

Graph Database的中文入門簡介.
更多內容可到 http://neo4j.tw
講者 : http://vonstark.co

Published in: Technology
  • Be the first to comment

Neo4j

  1. 1. Build Facebook Like Relationships with Neo4j by Von Stark
  2. 2. Von StarkI am : Starter, Programmer ,BackpackerUse : Ruby, Rails, Erlang, Neo4j co-founder at meetcliv.com founder at neo4j.tw Engineer at Roodo tech co-founder at theprosbank.com co-founder at envionow.com Sales at 365biotech
  3. 3. 4 W & 1 HWhat Why Who When How
  4. 4. What is Neo4jJava & Lucene - NeoTechnologyEmbedded DocumentHigh Availability & FailOver.A(atomicity) C(consistency) I(isolation) D(durability) Graph Database
  5. 5. What can it do?Social NetworkGraph NetworkComplex RelationshipsMake database like natural
  6. 6. What is the difference as Object Oriented DBData preset as Node & Edge (Objects)More functions to traverseFriendly APISchema = set of Class (Independent)
  7. 7. Why to use graph - Web3.0 1999 2000 2010 2020
  8. 8. Why to use Graph - Complexity
  9. 9. Why to use Graph - Whiteboard Friendly
  10. 10. Why to use Graph - Whiteboard Friendly
  11. 11. Why to use graph - Reasons ( ) -> , ->SQL SQL Join
  12. 12. Who use graph
  13. 13. When to use graph GraphSQL Key/Vale NoSQL
  14. 14. When to use graph GraphSQL Key/Vale NoSQL
  15. 15. How is the performance
  16. 16. Interested?
  17. 17. ConnectRuby / Python / Clojure / PHP /Java / Scala / Erlang / Groovy /Restful ....Rails / Grails / Griffon / Qi4j /Roo...
  18. 18. ClientsPHP - Thrift / Protobuffers / PHP-Java BridgeRuby - JRuby + Neo4j.rbPython - JPython / CPython + JCC /Neo4j.py
  19. 19. Some Examples
  20. 20. Remember It RelationshipNode Node
  21. 21. Remember It RelationshipNode Node RelationshipNode Node
  22. 22. Remember It RelationshipNode Node RelationshipNode Node
  23. 23. Relationship - FoF - 1 level Meme.outgoing(:friends).depth(1)
  24. 24. Relationship - FoF - 2 level Meme.outgoing(:friends).depth(2)
  25. 25. Relationship - FoF - 3 level Meme.outgoing(:friends).depth(3)
  26. 26. Relationship - FoF - n levelme.outgoing(:friends).depth(n)
  27. 27. Filtersfilter / pruneEvaluator - INCLUDE_AND_CONTINUE INCLUDE_AND_PRUNE EXCLUDE_AND_DISCONTINUE EXCLUDE_AND_CONTINUE
  28. 28. Complex Example FoF who lives in Taipei also like Jazz Taipei Jazz MeLives LikeFriend
  29. 29. Complex Example FoF who lives in Taipei also like Jazz Taipei Jazz MeLives LikeFriend
  30. 30. SQL ?&^@#%$@)JOIN *&@^ JOIN *@^$ JOIN &@&# JOIN (*@#^ JOIN !&@ JOINNeo4jme.outgoing(:friend).depth(:all).filter{|path_to_m| path_to_m.end_node.outgoing(:lives).filter{|path_to_live| path_to_live==”Taipei” }.outgoing(:like).filter{|path_to_like| path_to_live==”Jazz” }}
  31. 31. BranchSelectorpreorderDepthFirst - ,postorderDepthFirst - ,preorderBreadthFirst - ,postorderBreadthFirst - ,
  32. 32. Other CRUDBatch InsertionRange QueryCompound QueryUniquenessExpand and more...
  33. 33. Caching File Buffer Cache Object Cache5~10 times faster as file cache for readMemory eater
  34. 34. Scale - 1
  35. 35. Scale - 2
  36. 36. Web-AdminDashboard ConsoleData Browser
  37. 37. Visual ToolsNeoClipse Flare DraculaArbor.js more...
  38. 38. Other Graph DBDexOrientDBVertexDBPregel - Very MysteryAllegro - Performance just fineFlockDB - One Layer, Based on MySQLInfiniteGraph
  39. 39. NoSQL1 NoSQL , , , ...
  40. 40. ,
  41. 41. ,
  42. 42. ,MarketingAngel InvestorBackend Engineer
  43. 43. Q & ABlog : vonstark.coFB : facebook.com/vonstarkTwitter : vonstark32Contact : von@vonstark.co

×