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.

Base de données graphe, Noe4j concepts et mise en oeuvre

6,051 views

Published on

Cette étude vise à présenter les concepts clés d’une base de données orientée graphe. La modélisation et la mise en œuvre des cas d’utilisation seront réalisées avec la base de données NEO4J, version 3.1.

Published in: Data & Analytics
  • You might get some help from ⇒ www.HelpWriting.net ⇐ Success and best regards!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THE BOOK INTO AVAILABLE FORMAT (New Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THE 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 THE 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 eBOOK .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, CookBOOK, 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, EBOOK, 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 THE 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 THE 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 THE Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THE BOOK INTO AVAILABLE FORMAT (New Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THE 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 THE 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 eBOOK .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, CookBOOK, 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, EBOOK, 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 THE 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 THE 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 THE Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THE BOOK INTO AVAILABLE FORMAT (New Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THE 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 THE 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 eBOOK .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, CookBOOK, 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, EBOOK, 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 THE 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 THE 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 THE Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THE BOOK INTO AVAILABLE FORMAT (New Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THE 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 THE 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 eBOOK .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, CookBOOK, 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, EBOOK, 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 THE 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 THE 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 THE Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Base de données graphe, Noe4j concepts et mise en oeuvre

  1. 1. NOSQL: BASE DE DONNÉES GRAPHE, NOE4J, CONCEPTS ET MISE EN ŒUVRE MODÉLISATION ET IMPLÉMENTATION DU CAS D’USAGE SLIDESSHARE.NET DR MUSTAPHA MICHRAFY CONTACT : DATASCIENCE.KM@GMAIL.COM
  2. 2. PLAN 1. Contexte 2. Objectif et prérequis 3. Les base de données NoSQL 4. Les modèles NoSQL : axes volume et complexité 5. Classification des bases de données NoSQL 6. Modèle graphe : pour quelle activité 7. Concepts des Bases de données Graphe 8. Base de données graphe : force et faiblesse 9. D’une BD relationnelle vers une BD graphe 10.Console web Neo4j 11.Le langage de requêtes Cypher 12. Les clauses dans Cypher 13. Les fonctions dans Cypher 14.Les distributions Neo4j 15. Les drivers de la base 16. Types de données supportés 17. Mise en œuvre avec Cypher 2 M.MICHRAFY
  3. 3. CONTEXTE Cette étude a été menée dans le cadre des rencontres de travail organisées au Laboratoire CERMSEM, dans le cadre du séminaire « DataScience, concepts et applications », Centre d'Économie de la Sorbonne (CES). Elle vise à présenter les différentes opérations portant sur la préparation des données 3 M.MICHRAFY
  4. 4. OBJECTIF ET PRÉREQUIS • Notions de graphes • Notions de SQL • Expressions régulières ou pattern maching Cette étude vise à présenter les concepts clés d’une base de données orientée graphe. La modélisation et la mise en œuvre des cas d’utilisation seront réalisées avec la base de données NEO4J, version 3.1. PrérequisObjectif 4 M.MICHRAFY
  5. 5. BASE DE DONNÉES GRAPHE NEO4J? • Adaptée pour la modélisation des réseaux sociaux • Adaptée pour les données fortement connectées • Adapté pour parcourir des modèles complexes à partir d'un ou de plusieurs points de départ. • Dispose d’un langage d’interrogation similaire à SQL • Concepts basés sur la théorie des graphes • Modèle de données accessibles au métier • Langage, similaire à SQL, pour la manipulation des données de la base • API pour différents langages ( JAVA, SCALA, Python, R, ….) • API REST Motivations? Fonctionnalités 5 M.MICHRAFY
  6. 6. LES BASE DE DONNÉES NOSQL 6  Les bases de données de type clé/valeur sont basiques.  Chaque objet est identifié par une clé unique.  Elles offrent de meilleurs performances.  Pas de schéma disponible  Adaptée à le gestion des évènements, à la gestion des traces, ect.  BD orientées Clé/Valeur : Accumulo, Dynamo, Voldemort, Redis, Riak BD de type Clé/Valeur  Elle stocke les données par colonne et non par ligne.  Elle est proche des bases de données relationnelles.  La mise en œuvre est relativement complexe.  Ce type de base de données fait appel aux notions de clé et famille de colonnes.  BD orientées colonne : Hbase, Cassendra, Hypertable, BigTable BD de type Colonne  Collections de documents, composés chacun de champs et de valeurs associées,  Les valeurs peuvent être requêtées  Adaptée au stockage de profils utilisateur, aux données session, au contenu d’une page web, ect.  BD orientées document : MongoDB CouchDB, Couchbase BD de type document  Elle est adaptée pour la gestion des données fortement interconnectées, s’inspire des graphes, composée de nœuds et de relations matérialisant des liens entre les nœuds.  BD orientées graphe : ArangoDB, FlockDB, Orientdb, BD de type Graphe  Les BD NoSQL n’ont pas vocation à remplacer les bases de données relationnelles.  Chaque base de données répond a un besoin et adapté pour un cas d’usage.
  7. 7. LES MODÈLES NOSQL : AXES VOLUME ET COMPLEXITÉ 7 Orientée Clé/valeur Orientée Colonne Orientée Document Orientée Graphe Volumededonnées Complexité des données
  8. 8. CLASSIFICATION DES BASES DE DONNÉES NOSQL 8 NoSQL Colonne Document Clé/valeur Graphe Dynamo Redis Riak Voldemort Accumulo Hbase Cassendra Hypertable BigTable MongoDB CouchDB Couchbase NEO4J ArangoDB FlockDB Orientdb
  9. 9. MODÈLE GRAPHE : POUR QUELLE ACTIVITÉ 9 Graphe Base de données Graphe Graphe pour le « processing » Ce modèle est adapté pour le stockage de données. Ce sont les API proposant des algorithmes venant de la théorie des graphes Important : Ici, nous présentons les base de données graphe pour le stockage de données
  10. 10. BASE DE DONNÉES GRAPHE : CONCEPTS 10 • Une base de données orientée graphe vise à modéliser et stocker des données sous forme de graphe • Pour cela, il s’appuie sur : • Les nœuds • Les relations : pour relier les nœuds • Propriétés : données sous forme de clé - valeurs Modélisation • Le modèle de données est un ensemble de nœuds qui sont reliés par des relations. • Les nœuds et les relations sont typés, c-à-d, ils sont associés à un même label. • Les relations sont orientées • Des données sous forme de clé/valeur sont stockées dans les nœuds et les relations. Modèle de données Graphe Nœud Relation données Se compose Relie
  11. 11. LES CONCEPTS DE NEO4J 11 Schema Paths Propriétés Contraints Index Noeuds Relations Labels Concepts • Nœuds : dans un graphe, nous avons des nœuds qui sont reliés. Pour un réseau de Metro, les nœuds désignent les stations et dans un réseau social, le nœud désigne la personne. • Relations : elles matérialisent le lien entre deux nœuds. Pour le réseau de métro, les relations représentent la distance ou le temps de parcours. • Propriétés : permet de persister des données sous forme de clé/valeur pour les nœuds ou relations • Labels : ils permettent d’associer un rôle ou un type à un nœud. • Path : il désigne un chemin entre deux nœuds • Index : une structure de donnée associée à des nœuds ou des relations favorisant la performance. • Contraintes : elles permettent de renforcer l’intégrité des données (nœuds et relations). • Schema : la notion de « schema », en Neo4j, est optionnel. Il s’applique seulement sur la machine maitre dans un cluster Neo4j. • Traversal : les stratégies de parcours pour identifier un path. Traversal
  12. 12. BASE DE DONNÉES GRAPHE : FORCE ET FAIBLESSE 12  Des gains de performance : • la performance des BD orientées graphe restent identiques quand le jeu de données s'accroît. • Ce n’est pas le cas pour les BD relationnelles, les performances des requêtes se dégradent avec la croissance des jointures  Des gains de flexibilité : • L’ajout des nœuds et des relations n’impactent ni les requetés ni les cas d’usage développés.  Des gains d’agilité • Le modèle de données graphe favorise l’évolution de la base en cohérence avec les nouveaux cas d’usage métier • Le modèle de données graphe favorise l’échange avec le métier.  Partitionnement des graphe • Les bases de données Graphe rencontrent parfois des problèmes de partitionnement puisque il est difficile d’opérer un partitionnement d’un graphe en tenant compte les latences de réseau.  Calcul agrégé pour un volume important • Les BD orientées graphe ne sont pas adaptées pour le calcul agrégé pour un volume important de données. Dans ce cas, il est pertinent d’explorer une BD relationnelle ou une base de données orientée colonne. Force Faiblesse
  13. 13. D’UNE BD RELATIONNELLE VERS UNE BD GRAPHE 13 Table Ligne d’une Table Clé étrangère Label Nœud Relation Colonnes d’une table Propriétés
  14. 14. 14 BASE DE DONNÉES ORIENTÉE GRAPHE : EXEMPLE SYSTÈME DE FICHIER Root Directory C Directory D File F • Un système de fichiers dispose d’un nœud racine. • Il est composé de répertoire et fichiers • Chaque répertoire peut comporter des dossiers et de fichiers • Un nœud désigne un dossier ou un fichier • Le nœud Root n’a pas de parent • La relation entre deux nœud est « Parent de ». • Dans notre cas, Root est parent de tout les nœuds. « C » est un parent du fichier « F » et du dossier « D » Parent_de Parent_de Parent_de
  15. 15. BASE DE DONNÉES ORIENTÉE GRAPHE : EXEMPLE FLIGHT 15 AirPort AirPort Flight Ticket destination origination assign • Un vol est associé à • Un Airport de départ • Et un Airport de destination • Un vol est associé à un horaire : • Heure de départ • Heure d’arrivé • Ticket est associé à un vol.
  16. 16. BASE DE DONNÉES ORIENTÉE GRAPHE : EXEMPLE DE SLIDESHARE.NET 1/2 16 Stefan Claire Apache Spark Scala Joe Java 8 Follow Follow Like Language BigData Like Category of
  17. 17. BASE DE DONNÉES ORIENTÉE GRAPHE : EXEMPLE DE SLIDESHARE.NET 2/2 17 Person Person Slides Flow Licence Domaine Category of Like Person Visualise Has a Person Comment • SlideShare est un site web d'hébergement et de partage de présentations et d'autres contenus professionnels. • Les personnes peuvent publier, visualiser, commenter, télécharger, ou apprécier une présentation. • Un adhérent peut suivre un autre adhérent
  18. 18. CONSOLE WEB NEO4J 18  Console est une interface web, basé sur une API REST  Cette console est accessible par défaut sur le port 7474.  Elle est adaptée pour le test et le prototypage  Cette console permet :  d’éditer, et d’exécuter des requêtes  de visualiser le résultat de la requête sous forme d’un graphe  de visualiser les nœuds sous d’autres format  de visualiser la réponse du serveur Neo4j.  d’exporter le résultat de retour sous différents formats (CSV, JSON, SVG, PNG) Console ?  Il permet d’éditer une requête, sur plusieurs lignes ; il basé sur le langage d’interrogation Cypher.  Supporte la coloration syntaxique  Permet d’exécuter la requête  permet de mémoriser ou d’annuler une requête. Editeur  L’onglet Graphe : de visualiser le résultat de lail permet requête exécutée sous forme d’un graphe  L’onglet ROWS : Il offre aussi la possibilité de voir les nœuds comme des tables.  L’onglet TEXT permet de voir les nœuds en format JSON  L’onglet code affiche la réponse du serveur Neo4j. C’est le résultat de l’API REST. Le format est JSON. Interface de visualisation
  19. 19. LE LANGAGE DE REQUÊTES CYPHER 19  CYPHER est le langage d’interrogation de la base de données NEO4J.  Cypher est un langage déclaratif.  Il s’appuie sur des motifs (pattern) pour décrire ou interroger la base de données  Il utilise une syntaxe similaire à celle de SQL et insensible à la casse CYPHER?  Le langage CYPHER permet de créer des nœuds et aussi des relations.  Il s’agit d’une opération d’écriture puisqu’elle permet de créer et persister des nœuds et des relations dans la base. Opération : Créer  CYPHER permet d’interroger la base de données pour extraire des données respectant un motif ( pattern)  La syntaxe utilisée est similaire aux expressions régulières (pattern matching) Opération : rechercher  Comme toutes les bases de données, il est possible d’analyser une requête d’écriture ou de lecture. Opération : profiling
  20. 20. LES CLAUSES DANS CYPHER 20 Clause Clause d’écriture Clause de lecture Clause générale • Une clause est une sorte d’opération/primitive en Cypher. • La clause est une notion fondamentale. • elles sont dédiées à la création des nœuds, des relations, à la recherche des données dans le graphe, au filtrage, au projection, au trie des données, etc. • En Neo4j, nous distinguons 3 type de clauses : 1. Clauses de lecture : ce sont des opérations de filtrage ou de recherche de données dans la base selon des critères spécifiques. 2. Clauses d’écriture : ce sont des opérations permettant de créer, supprimer ou modifier des données (nœuds relations, ou propriétés) 3. Clauses générales : ce sont des opérations qui ne font partie ni de clauses de lecture ni de clause d’écriture Est-un
  21. 21. LE LANGAGE CYPHER : CLAUSES DE LECTURE 21 Read Clauses Match Optional Match Where Start Aggregation Load CVS count sum AVG max max • Match : spécifier le pattern à chercher • Optional Match : similaire a Match, mais il retourne null en cas d’absence de résultat • Where : permet de filtrer les résultats d'une requête de Match ou Optional Match.. • Start : permet de trouver des points de départ (nœud ou Relations). Start concerne seulement les éléments indexés. • Load CSV : permet d’importer un fichier csv • Aggregation : permet d’utiliser des fonctions d’agrégation : • Count : pour compter le nombre d’éléments • Sum : pour sommer des valeurs • AVG : pour faire la moyenne • Max/min : pour le min ou le max • Ect.
  22. 22. LE LANGAGE CYPHER : CLAUSES D’ÉCRITURE 22 Write Clauses Create Merge Set Remove Delete Foreach • Create : créer un nœud ou une relation • Merge: s’assure que le motif existe, sinon, il faut le créer • Set : actualiser les labels ou les propriétés des nœuds ou des relations • Delete: supprimer un nœud, une relation ou un path • Remove : supprimer des propriétés et des labels d’un nœud ou une relation • Create Unique : il fait appel à la fois a la clause Match et Create. Il peut créer un nœuds s’il n’existe pas. • Load CSV : importer un fichier csv et ou créer les éléments associés • Foreach : actualiser les valeurs d’une liste appartenant à un Path ou un résultat d’agrégation • Periodic Commit : limiter le nombre de lignes par transaction. il est utile pour éviter la surcharge de la mémoire lors d’un chargement de fichier csv.Create Unique Load CSV Periodic Commit
  23. 23. LE LANGAGE CYPHER : CLAUSES GENERALES 23 General Clauses Return Order by Limit Unwind With • Ce sont des clauses générales qui s’utilisent avec celles de lecture ou d’écriture. • Return : permet de définir les données à inclure dans le résultat de la requête. • With : permet d’enchainer des requêtes, similaire à pipe. Par conséquent le résultat d’une requête pourrait être accessible pour la seconde requête. • Order by : permet de trier le résultat de retour, similaire à order by de SQL. Il est utilisé avec les clauses Return ou With. • Limit : permet de limiter le nombre d’éléments retournés par la clause Return. Elle est similaire à la clause Limit de SQL. • Skip : comme en SQL, il permet de retourner les resulats à partir d’une ligne donnée. • Unwind : permet de transformer une liste d’éléments en une séquence de lignes. La liste peut être des paramètres ou des résultats. • Union : comme en SQL, cette clause permet de fusionner des jeux de données sans répétition. • Call : permet d’invoquer une procédure déployée sur le serveur Neo4j. Call Union Skip
  24. 24. LES FONCTIONS DANS CYPHER 24 Fonction Booléenne Fonction Scalaire Fonction mathématique Fonction Liste Fonction • Neo4j dispose une API de fonctions. • Les fonctions sont classées en 4 classes : • Les fonctions booléennes : ce sont des prédicats. • Les fonctions scalaires : ce sont les fonctions qui retournent un scalaire de type String, Entier, nœud, …. • Les fonctions mathématiques : ce sont des fonctions numériques (abs, ceil, …), trigonométriques, logarithmique (exp, log, sqrt, …) et fonctions de traitement de chaine de caractère • Les fonctions qui retournent une liste • Ces fonctions peuvent être utilisées dans les clauses. • La majorité de fonctions peuvent retourner des valeurs nulles
  25. 25. DISTRIBUTIONS NEO4J 25 Distribution Communautaire Distribution Entreprise Distribution • Deux distributions Neo4j • Distribution communautaire • Distribution entreprise • Distribution communautaire • Adaptée aux projets test/pilote • Supporte les fonctionnalités clés • ACID (Atomicité, Cohérence, Isolation, Durabilité) • Langage Cypher • API de programmation • La distribution Entreprise : • + Haute disponibilité • + Scalabilité horizontale • + Monitoring • + Système de cache • + Outils d’administration
  26. 26. DRIVER POUR NEO4J 26 Natif Java C# PythonJavascript Driver R PHP Ruby Erlang C/C++ Haskell • Neo4j offre plusieurs drivers. • On distingue deux types : • Driver natif : ce sont les drivers fournis par Neo4j • Driver non natif : ce sont les drivers fournis par la communauté • Les drivers natifs portent sur • Java : par conséquent les langages Java, Groovy, Clojure ou Kotlin sont supportés • .Net : le langage C# est supporté et d’autres. • Python • Javascript • Les drivers non natifs portent sur : • R, PHP, Ruby, Erlang, C/C++, Haskel
  27. 27. TYPE DE DONNÉES SUPPORTÉS 27 Type Boolean Integer Float String Map List Node Relationship Path • Neo4j dispose d’un système de types de données pour le traitement et le stockage des données. • Le driver permet de traduire les données d’un format à un autre. • Les types de données supportés par Noe4j sont • Boolean • Integer • Float • String • List • Map • Node • Relationship • Path
  28. 28. CAS D’UTILISATION 28 • Cette section présente la mise en œuvre d’un cas d’usage • L’objectif consiste à modéliser et mettre en ouvre le site de partage www.slideshare.net • Les points abordés sont : 1. La modélisation 2. La mise en œuvre • La mise en œuvre est réalisée avec CYPHER 3.1 et console web Neo4J.
  29. 29. CAS D’UTILISATION : DESCRIPTION DU MODÈLE DE DONNÉES 29 • Sur Slideshare.net, nous avons : • des adhérents • des documents : ce sont des présentations publiées par des adhérents. • Un document est associé à un domaine et disposant d’une licence. • Un document peut être : • visualisé par un adhérent ou un internaute • apprécié par un adhérent • commenté par un adhérent • Un adhérent peut être suivi par un autre Adhérent. • Un document et un adhérent disposent des propriétés : • Adhérent : nom et émail • Document : nom, nombre de pages, format, tag
  30. 30. CAS D’USAGE : MODÈLE DE DONNÉES 30 Person Person Slides Follow Licence Domain Category of Like Person View Has a Person Comment
  31. 31. CAS D’USAGE : MODÈLE DE DONNÉES 31 Person Person Slides Follow Licence Domain Category of Has a Statistic • De point de vue métier, il n’est important de connaitre : • Le nombre de visualisation d’un slides par personne • Le nombre de téléchargement d’un document par personne • Le nombre de Like par personne • Par conséquent, nous créons un neoud Statistic associé à chaque document. • Le nœud Statistic permet de persister les statistiques globales (téléchargement, like, visualisation) associés à un document Stat_Of
  32. 32. CAS D’USAGE : PROPRIÉTÉS 32 • Nom • Email • Nom • Format • Nombre de pages • Tag • Nom • Info • Nom • Views • Downloads • Comments • Likes • Shares Person Slides Licence Domain Statistic
  33. 33. CAS D’USAGE : ETAPES DE LA CRÉATION DU MODÈLE DE DONNÉES 33 Créer les nœuds de type Slides Créer les nœuds de type Adhérent Créer la relation « publier » entre les adhérents et les slides Créer la relation « publier » entre les adhérents et les slides Créer la relation « Follow » entre deux adhérents Créer les nœuds « Domain » et « Licence » Créer la relation « Has a » entre « Slides » et « Domain » Créer la relation « Is » entre « Slides » et « Licence » Créer la relation « Like » Supprimer la relation « Like » Pour chaque « slides », créer un nœud « Statistic » et créer la relation « Statistic_Of » Afficher le graphe des données 1 2 3 4 5 6 7 8 9 10 11 12
  34. 34. CRÉER LES ADHÉRENTS : CLAUSES CREATE  Create permet de créer des nœuds et relations.  Lors de la création, il est possible de spécifier les propriétés sous forme de clé valeur  Les propriétés sont entourées par des accolades {}  Les propriétés sont séparées par « ; ».  Chaque adhérent a deux propriétés : Nom, Email  Il est possible de faire un commentaire sur une ligne. Clause create // creer les adhérents : Blanc, Roux, Morel et Roche CREATE // creer l’adhérent Blanc Olivier // specifier la propriètes nom et email (BalancO:Adherent {name:'Blanc Olivier', email:'o.blanc@gmail.com'}), // créer le reste des adhérents en specifiant le nom et l’email (RouxS:Adherent {name:'Roux Stefan', email:'s.roux@gmail.com'}), (MorelA:Adherent {name:'Morel Alain', email:'a.morel@gmail.com'}), (RocheL:Adherent {name:'Roche Lara', email:'l.roche@gmail.com'}) Créer 4 adhérents 34 M.MICHRAFY
  35. 35. AFFICHER LES ADHÉRENTS : CLAUSES MATCH  La clause MATCH permet d’interroger les données, c-à-d des nœuds et des relations.  Cette clause doit utiliser la clause return pour afficher.  Sans la clause return, une erreur sera obtenue.  La clause LIMIT permet de limiter le nombre d’éléments affichés. Clause MATCH // Chercher les noeuds sur la base de données MATCH (p) // afficher les noeuds trouvés RETURN (p) // limiter l’affichage à quatre noeud LIMIT 4 Créer 4 neouds de la base 35 M.MICHRAFY Blanc Olivier Morel Alain Roux Stefan Roche Lara Vue graphe
  36. 36. CRÉER LES DOCUMENTS ET AFFICHER LES NŒUDS DOCUMENTS  L’objectif est de créer 3 documents de type Slides.  La notion LABEL permet de regrouper le même nœud sous la même catégorie.  La clause RETURN permet d’afficher les 3 slides. Pour cela, il faut spécifier le nom de chaque slide.  Pour chaque document, on précise le nom, le format, le numéro de page et le tag. Clause create // creer les documents ave le Label Slides : ApacheSpark, Scala, MongoDB CREATE (ApacheSpark:Slides {name:'Apache SPark', format:'pdf', numPages:40, tag:['spark', 'rdd', 'big Data', 'mapreduce']}), (Scala:Slides {name:'Scala', format:'powerpoint', numPages:45, tag:['scala', 'programmation fonctionnelle', 'pattern matching', 'trait']}), (MongoDB:Slides {name:'MongoDB', format:'pdf', numPages:45, tag:['MongoDB', 'Sharding', 'NoSQL', ' Fault Tolerance']}) // la claude retourn le nom associé à chaque document RETURN ApacheSpark, Scala, MongoDB Créer 3 documents 36 M.MICHRAFY Scala MongoDB Apache Spark Vue graphe
  37. 37. CRÉER LA RELATION PUBLIER  La clause CREATE permet de créer des relations (en spécifiant les extrémités)  On suppose qu’Olivier a publié tous les documents  Par conséquent, on associe la relation publier avec Olivier et les documents.  Le processus est le suivant :  Trouver Olivier  Associer Olivier à chaque document  Afficher le voisinage de Olivier Clause create // Trouver Blanc Olivier en utilisant la clause Where MATCH (BlancO:Adherent) where BlancO.name='Blanc Olivier‘ // Pointer tout les slides ( s designe tout les slides) MATCH (s:Slides) // Créer la relation publier en Lara et les documents identifiers CREATE (BlancO)-[r:Publish]-> (s) // afficher le noeud Blanc Olivier et son voisinage RETURN BlancO,s,r Créer 3 relation « Publier » 37 M.MICHRAFY Scala MongoDB Apache Spark Vue graphe Blanc Olivier
  38. 38. CRÉER LA RELATION SUIVRE  Avec la clause CREATE, nous créons deux relations «suivre».  Stefan et Alain vont suivre Olivier  Le processus est le suivant :  Trouver Olivier, Stefan et Alain  Créer la relation suivre entre Alain et Olivier et aussi entre Stefan et Olivier  Afficher le voisinage de Olivier Clause create // Trouver Olivier MATCH (BlancO:Adherent) where BlancO.name='Blanc Olivier‘ // Trouver Alain MATCH (MorelA:Adherent) where MorelA.name='Morel Alain‘ // Trouver Stefan MATCH (RouxS:Adherent) where RouxS.name='Roux Stefan‘ // Creer la relation «Suivre» entre Olivier, Stefan, Alain CREATE (MorelA)-[:Follow]-> (BlancO) CREATE (RouxS)-[:Follow]-> (BlancO) // Afficher Oliver et son voisiange RETURN BlancO, MorelA, RouxS Créer 2 relations « Suivre » 38 M.MICHRAFY Vue graphe Blanc Olivier Morel Alain Roux Stefan
  39. 39. CRÉER LES NŒUDS DE TYPE DOMAINE ET LICENCE  Avec la clause CREATE, nous allons créer :  Les nœuds Domaine  Les nœuds Licence Clause create // créer trois domaines : Lanagage, BigData, MongoDB CREATE (scala:Domain {name:'Lanagage'}), (spark:Domain{name:'BigData'}), (mongoDB:Domain{name:'NoSQL'}) // créer deux Licence : CC et CC By By-NC CREATE (cc:Licence{name:'CC', info:'cc by attribution'}), (ccbync:Licence{name:'CC BY-NC', info:'attribution pas de modification'}) RETURN scala, spark, mongoDB, cc, ccbync Créer les domaines et les licences 39 M.MICHRAFY Vue graphe NoSQL BigData CC CC BY-NCLangages
  40. 40. CRÉER LES RELATIONS SÉMANTIQUES DOCUMENT, DOMAINE  L’objectif est de créer des relations :  Entre un document et un domaine  Entre un document et une licence  Les étapes sont :  Trouver les documents  Trouver les domaines  Trouver les licences  créer les relations Clause create MATCH (spark:Slides) where spark.name='Apache SPark' MATCH (scala:Slides) where scala.name = 'Scala' MATCH (mongoDB:Slides) where mongoDB.name = 'MongoDB' MATCH (lang:Domain) where lang.name='Langage' MATCH (bigdata:Domain) where bigdata.name = 'BigData' MATCH (nosql:Domain) where nosql.name='NoSQL' CREATE (spark)-[:Category_Of]-> (bigdata) CREATE (scala)-[: Category_Of]-> (lang) CREATE (mongoDB)-[: Category_Of]-> (nosql) RETURN spark,scala, mongoDB, lang, bigdata, nosql Créer 3 relations « Category_Of» 40 M.MICHRAFY Vue graphe Scala MongoDB Apache Spark NoSQL BigData Langages
  41. 41. CRÉER LES RELATIONS SÉMANTIQUES DOCUMENT, DOMAINE  L’objectif est de créer des relations :  Entre un document et un domaine  Entre un document et une licence  Les étapes sont :  Trouver les documents  Trouver les licences  Créer les relations  Afficher le résultat Clause create // identifier les documents MATCH (spark:Slides) where spark.name='Apache SPark' MATCH (scala:Slides) where scala.name = 'Scala' MATCH (mongoDB:Slides) where mongoDB.name = 'MongoDB' // identifier les licences MATCH (cc:Licence) where cc.name='CC' MATCH (ccbync:Licence) where ccbync.name = 'CC BY-NC' // créer les relations entre les documents et les licences CREATE (spark)-[:Has_a]->(cc) CREATE (scala)-[:Has_a]->(cc) CREATE (mongoDB)-[:Has_a]->(ccbync) // afficher le resultat RETURN spark, scala, mongoDB, cc, ccbync Créer 2 relations « Flow » 41 M.MICHRAFY Vue graphe Scala MongoDB Apache SparkCC BY-NC CC BY-NC
  42. 42. CRÉER LES RELATIONS : VISUALISER  L’objectif est d’enregistrer le nombre de fois qu’un adhérent à visualiser un document.  Si la personne visualise le document pour la première fois, nous créons une relation « View » entre l’adhérent et le document et Views = 1. Si la relation existe, nous incrémentons la propriété Views par 1.  Pour cela, nous utilisons la clause MERGE avec la clause ON CREATE. Clause create // identifier l’adherent ‘Roche Lara’ OPTIONAL MATCH (p:Adherent) where p.name = 'Roche Lara‘ // identifier le document ‘Scala’ OPTIONAL MATCH (s:Slides) where s.name = 'Scala‘ // Créer la relation Like si’il existe pas et fixer Views à 0 MERGE (p)-[r:View]->(s) ON CREATE SET r.Views = 0 // Incrementer la value de Views par 1 Set r.Views = r.Views+ 1 // retourner,p,s RETURN r,p,s Créer une relation visualiser 42 M.MICHRAFY Vue graphe ScalaRoche Lara View
  43. 43. SUPPRIMER LA RELATION VISUALISER  Pour supprimer une relation, il faut d’abord identifier les nœuds associées.  La clause DELETE permet de supprimer une relation.  La clause REMOVE permet de supprimer une propriété d’une relation ou d’un nœud.  Pour supprimer un nœud, il nécessaire de supprimer d’abord les relations associées. Clause create // identifier l’adherent ‘Roche Lara’ MATCH (p:Adherent) where p.name = 'Roche Lara‘ // identifier le document ‘Scala’ MATCH (s:Slides) where s.name = 'Scala‘ // identifier la relation entre p et s OPTIONAL MATCH (p)-[r:View]->(s) // supprimer la relation r delete r Supprimer une relation 43 M.MICHRAFY Sortie Deleted 1 relationship, statement completed in 5 ms.
  44. 44. CRÉER UN NŒUD STATISTIC ASSOCIÉ A CHAQUE DOCUMENT  La clause with joue le rôle d’un pipe.  La clause set permet de mettre à jour les propriétés.  Chaque nœud Slides est associé à un nœud Statistic, le nom de la relation est stat_of.  Le nœud Statistic comporte les propriétés Views, Downloads, Comments, Likes, Share.  Le processus est le suivant :  Pour nœud Slides 1. Créer un neoud Statistic 2. Créer une relation stat_of 3. Ajouter les propriétés au nœud Statistic. Clause create, with et set MATCH (p:Slides) WITH p CREATE (q:Statistic{name:'Statistic ' + p.name}) WITH p,q CREATE (p)-[r:stat_of]->(q) WITH p,q SET q.Views=0 SET q.Downloads=0 SET q.Comments=0 SET q.Likes=0 SET q.Shares=0 RETURN p,q Créer 3 nœuds Statistic et 3 elations « stat_of » 44 M.MICHRAFY Vue graphe Scala MongoDB Apache Spark Statistic MongoDB Statistic Apache Spark Statistic Scala
  45. 45. VISUALISER LES DONNÉES 45 // afficher le graphe des données Match (p) return p
  46. 46. ENREGISTRER LA VISUALISATION D’UN DOCUMENT // identifier le document : name = ‘Scala’ optional match (p:Slides) where p.name = 'Scala‘ // render p accessible pour la requête suivante with p // Chercher le voisin de p avec relation = stat_of optional match (p)-[r:stat_of]->(q) // Rendre q accessible pour la requête suivante with q Set q.Views= q.Views + 1 return q Actualiser le nœud Statistic 46 M.MICHRAFY Vue graphe Statistic Scala Vue Rows Views 1 Comments 0 name Statistic Scala Downloads 0 Likes 0 Shares 0  L’objectif est de mette à jour les propriétés du nœud Statistic suite à la lecture du document Scala.  Cette mise à jour se fait via la clause SET  Le principe est le suivant :  Chercher le nœud en question  Chercher le voisin du nœud  Mettre à jour les propriètés Clause create, with et set
  47. 47. IDENTIFIER LE DOCUMENT LE PLUS LU // p est une variable de type Statistic match (p:Statistic) // Rendre le scalaire m visible pour la requete suivante with max(p.Views) as m // identifier le noeud respectant la condition optional match (p:Slides)-[r:stat_of]->(q:Statistic) where q.Views = m // retourner les noeuds return p Identfier le nœud cible 47 M.MICHRAFY Statistic Scala  L’objectif est de retourner le document le plus lu.  Le principe est le suivant :  Identifier les nœuds Statistic  Calculer m qui est le max des Views  Identifier le nœud Slides dont le nœud associé Statistic avec Views=m  Retourner le nœud en question Clause match, with Vue graphe
  48. 48. DR MUSTAPHA MICHRAFY CONTACT : DATASCIENCE.KM@GMAIL.COM

×