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.

201301 - Focus Neo4j

3,018 views

Published on

Published in: Technology
  • DOWNLOAD THAT BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book that can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer that is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story That Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money That the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths that Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes ,Download or read Ebooks here ... ......................................................................................................................... Download FULL PDF EBOOK here { http://bit.ly/2m6jJ5M }
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • If you want to download or read this book, copy link or url below in the New tab ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { https://urlzs.com/UABbn } .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

201301 - Focus Neo4j

  1. 1. NEO4J ET SON ECOSYSTÈME Sylvain ROUSSY Ingénieur conseil – HINNOYA sroussy@hinnoya.fr @SylvainRoussy JUG Lyon : – Neo4j et son ecosystème 15 Janvier 2013 – sroussy@hinnoya.frJUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  2. 2. Plan Qu’est-ce que NEO4j ? Qu’est qu’une BDD orientée « Graphe » ? Pourquoi utiliser une BDD orientée « Graphe » ? A propos de NEO4j… NEO4j avec Java NEO4j sans Java Interroger NEO4j Intégrer NEO4j S’abstraire de NEO4j Outillage ConclusionsJUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  3. 3. QU’EST-CE QUE NEO4J ?JUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  4. 4. Qu’est-ce que NEO4j ?JUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  5. 5. Qu’est-ce que NEO4j ?JUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr 5
  6. 6. Qu’est-ce que NEO4j ?JUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr 6
  7. 7. Qu’est-ce que NEO4j ?JUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr 7
  8. 8. Qu’est-ce que NEO4j ?JUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr 8
  9. 9. Qu’est-ce que NEO4j ?JUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr 9
  10. 10. Qu’est-ce que NEO4j ?JUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr 10
  11. 11. QU’EST-CE QU’UNE BASE DE DONNÉES ORIENTÉE « GRAPHE »?JUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  12. 12. Base de données orientée « Graphe »* Une base dont la structure est représentée sous forme de « graphe » (théorie des graphes) Ce graphe est basé sur des Nœuds et des Arcs NEO4j : Node – Relationships Blueprints : Vertex – EdgesJUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  13. 13. Base de données orientée « Graphe »* Dans cette structure de données, nous considérons que la relation est aussi importante que l’entité La relation est identifiée par un nom (sémantique)JUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  14. 14. Quelques bases de données orientées « Graphe » NEO4j (Java) Neo Technology OrientDB (Java) Nuvela Base DEX (C++) Sparsity Technologies TinkerGraph (Java) TinkerPopJUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  15. 15. POURQUOI UTILISER UNE BASE DE DONNÉES ORIENTÉE « GRAPHE »?JUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  16. 16. Reconnaître des structuresJUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  17. 17. Reconnaître des structuresJUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  18. 18. Reconnaître des structuresJUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  19. 19. Reconnaître des structures Quels sont, dans mon cercle d’amis, les victimes et les revendeurs de mes livres ? Sylvain -> « PRETE » -> Ami Ami -> « VENDS » -> Ami2 Ami2 -> « OFFRE » -> SylvainJUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  20. 20. Cas d’utilisations Où la relation est importante ! Réseaux sociaux (Viadeo, LinkedIn, etc.) Où la reconnaissance de structure est importante ! Fraudes, Excellences Mes amis qui n’en sont pas… Où le chemin est important ! (Shortest Path, …) Généalogie (Héritage) Système d’information géographique Séquence (Groupware, etc.)JUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  21. 21. A PROPOS DE NEO4JJUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  22. 22. A propos de NEO4j Editeur : Neo Technology (créée en 2000 – Suède/USA) Version stable à ce jour : 1.8.1 (14/12/2012) Version en cours de stabilisation : 1.9 M03 30 Milliards de nœuds 30 Milliards de relations 64 Milliards de propriétés www.neo4j.org « HEROKU »JUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  23. 23. A propos de NEO4j Deux types d’utilisation : Embedded GraphDatabaseService graph = new EmbeddedGraphDatabase("/var/mydb"); Server (JETTY) REST APIJUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  24. 24. NEO4J AVEC JAVAJUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  25. 25. Créer des nœuds… // Création d’un premier nœud Node node1 = graph.createNode(); node1.setProperty("name", "Base de données"); // Création d’un second nœud Node node2 = graph.createNode(); node1.setProperty("name", « NEO4j");JUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  26. 26. … et créer des relations // Création dune relation "EST" du second noeud vers le premier Relationship rel = node2.createRelationshipTo(node1, DynamicRelationshipType.withName("EST")) ;JUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  27. 27. Indexer des propriétés (Lucène) Basé sur triplette : propriété, valeur, objet Implicitement par configuration node_auto_indexing=true node_keys_indexable=name,age relationship_auto_indexing=true relationship_keys_indexable=name,age Explicitement Par le code (IndexManager) Manuellement (Shell) RESTJUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  28. 28. Utiliser les transactions (ACID) // Ouverture et Commit d’une transaction Transaction tx = graph.beginTx (); […] tx.success (); // RollBack tx.failure (); Fermeture de la transaction (relâchement des verrous) tx.finish ();JUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  29. 29. NEO4J SANS JAVAJUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  30. 30. Créer des nœuds… // Création d’un premier noeud POST http://localhost:7474/db/data/node Accept: application/json Content-Type: application/json { "name" : "base de données" } // Création d’un second noeud POST http://localhost:7474/db/data/node Accept: application/json Content-Type: application/json { "name" : « NEO4j" }JUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  31. 31. … et créer des relations // Création d’un premier noeud POST http://localhost:7474/db/data/node/1/relationships Accept: application/json Content-Type: application/json { "to" : "http://localhost:7474/db/data/node/0", "type" : « EST" }JUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  32. 32. Batch Transaction atomique POST http://localhost:7474/db/data/batch Accept: application/json Content-Type: application/jsonJUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  33. 33. INTERROGER NEO4JJUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  34. 34. CYPHER : Langage d’interrogation Langage d’interrogation propriétaire à NEO4j Proche de SQL Permet l’interrogation et la modification des données Basé sur quatre éléments clés : START : nœud(s) ou relation(s) de départ MATCH : motif relationnel WHERE : restriction RETURN : éléments à retournerJUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  35. 35. CYPHER : Langage d’interrogation Quels sont, dans mon cercle d’amis, les victimes et les revendeurs de mes livres ?START sylvain=node(0)MATCH sylvain-[:PRETE]->ami-[:VENDS]->ami2-[:OFFRE]->sylvainRETURN ami.Nom AS REVENDEUR, ami2.Nom AS VICTIMEJUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  36. 36. CYPHER : Langage d’interrogation CYPHER s’utilise depuis : Le code JAVA L’API REST La console d’administration Web Le ShellJUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  37. 37. Code Java : Utiliser un « traversier » (Traversal) TraversalDescription description = Traversal.description() .breadthFirst() .relationships (PRETE, Direction.OUTGOING ) .relationships(VENDS, Direction.OUTGOING ) .relationships(OFFRE, Direction.OUTGOING ) .evaluator( Evaluators.toDepth( 5 ) ) .uniqueness (Uniqueness.RELATIONSHIP_PATH);JUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  38. 38. Code Java : Utiliser un traversier (Traversal) Node sylvain = graph.getNodeById(0); for (Path position : description.traverse( sylvain ) ) { System.out.println ("Path :"+position.toString()); } Path :(0) Path :(0)--[PRETE,1]-->(2) Path :(0)--[PRETE,1]-->(2)--[VENDS,2]-->(3) Path :(0)--[PRETE,1]-->(2)--[VENDS,2]-->(3)--[OFFRE,3]-->(0)JUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  39. 39. GREMLIN : Langage d’interrogation (Tinkerpop) GREMLIN est Groovy NEO4J, Tinkergraph, DEX, OrientDB, etc.JUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  40. 40. INTÉGRER NEO4J (DAO)JUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  41. 41. En pure Java public class Person { static final String NAME = "name"; private final Node underlyingNode; Person( Node personNode ) { this.underlyingNode = personNode; } protected Node getUnderlyingNode() { return underlyingNode; } public String getName() { return (String)underlyingNode.getProperty( NAME ); } […]JUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  42. 42. Avec Spring DATA @NodeEntity public class Movie { @GraphId Long id; @Indexed(type = FULLTEXT, indexName = "search") String title; Person director; @RelatedTo(type="ACTS_IN", direction = INCOMING) Set<Person> actors; @RelatedToVia(type = "RATED") Iterable<Rating> ratings; @Query("start movie=node({self}) match movie-->genre<--similar return similar") Iterable<Movie> similarMovies; } http://www.springsource.org/spring-data/neo4jJUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  43. 43. S’ABSTRAIRE DE NEO4JJUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  44. 44. TinkerpopJUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  45. 45. Tinkerpop : Blueprints Graph blueGraph = new Neo4jGraph("/var/mydb"); Vertex v1 = blueGraph.addVertex(1); v1.setProperty("name", "Base de données"); Vertex v2 = blueGraph.addVertex(2); v2.setProperty("name", "NEO4j"); Edge rel = blueGraph.addEdge(3, v1, v2, "EST");JUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  46. 46. Tinkerpop : Frames public interface FramesPerson extends VertexFrame { @Property ("lastname") public String getLastname (); @Property ("lastname") public void setLastName (String lastname); @Adjacency (label = "KNOWS") public Iterable<FramePerson> getFriends (); @Adjacency (label = "KNOWS") public void addFriend (FramesPerson friend); }JUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  47. 47. OUTILLAGEJUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  48. 48. Shell Permet la consultation d’une base en cours d’utilisation ! $> Neo4jShell -path /var/mydb -readonlyJUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  49. 49. Console Web - Dashboard http://monserveur_db:7474JUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  50. 50. Console Web – Data browserJUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  51. 51. Console Web – ConsoleJUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  52. 52. NeoclipseJUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  53. 53. POURQUOI NEO4J ?JUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  54. 54. Pourquoi NEO4j ? Support d’un éditeur : Neo Technology • Version communautaire (GPL) • Version Advanced (AGPL) • Advanced monitoring • Version Enterprise (AGPL) • Sauvegarde à chaud • HA Documentation dense (+500 pages pour le manuel)JUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  55. 55. CONCLUSIONJUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  56. 56. Conclusion Représentation naturelle des relations « Data driven » Savoir-faire en cours…JUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr
  57. 57. Merci de votre attention ! Questions ?JUG Lyon : – Neo4j et son écosystème 15 Janvier 2013 – sroussy@hinnoya.fr

×