Graph database - imagair.imag.fr/images/f/fc/VT2015_Graph_Databases.pdf · Introduction Motivations...
Transcript of Graph database - imagair.imag.fr/images/f/fc/VT2015_Graph_Databases.pdf · Introduction Motivations...
![Page 1: Graph database - imagair.imag.fr/images/f/fc/VT2015_Graph_Databases.pdf · Introduction Motivations Listing des BD sur le marché : Comparaison au BD relationnelles Avantages / Inconvénients](https://reader033.fdocuments.us/reader033/viewer/2022042307/5ed2dd58a079355bb26da084/html5/thumbnails/1.jpg)
Malek Mammar Veille technologique
Graph database
PrésentationMise en place d’une API
Responsables : ● D. Donsez● GP. Bonneau
RICM5École Polytech’ Grenoble
Graph DataBase
![Page 2: Graph database - imagair.imag.fr/images/f/fc/VT2015_Graph_Databases.pdf · Introduction Motivations Listing des BD sur le marché : Comparaison au BD relationnelles Avantages / Inconvénients](https://reader033.fdocuments.us/reader033/viewer/2022042307/5ed2dd58a079355bb26da084/html5/thumbnails/2.jpg)
Malek Mammar Veille technologique Sommaire
● Introduction● Motivations● Listing des BD sur le marché :
○ Comparaison au BD relationnelles○ Avantages / Inconvénients ○ Exemple de requête de graphe
● Zoom sur Neo4j● Conclusion● Démonstration avec Neo4j
Sommaire
![Page 3: Graph database - imagair.imag.fr/images/f/fc/VT2015_Graph_Databases.pdf · Introduction Motivations Listing des BD sur le marché : Comparaison au BD relationnelles Avantages / Inconvénients](https://reader033.fdocuments.us/reader033/viewer/2022042307/5ed2dd58a079355bb26da084/html5/thumbnails/3.jpg)
Malek Mammar Veille technologique
La démocratisation des BD en graphe:
● l’explosion des réseaux sociaux (facebook, twitter, linkedIn …)
● le mouvement NoSQL qui a aidé à la diffusion d’autres moyens de stockage
Introduction
![Page 4: Graph database - imagair.imag.fr/images/f/fc/VT2015_Graph_Databases.pdf · Introduction Motivations Listing des BD sur le marché : Comparaison au BD relationnelles Avantages / Inconvénients](https://reader033.fdocuments.us/reader033/viewer/2022042307/5ed2dd58a079355bb26da084/html5/thumbnails/4.jpg)
Malek Mammar Veille technologique
Quelles motivations poussant à l’utilisation des BD en graphe ? ● une structure de données en adéquation avec l’application à développer● une syntaxe de requêtes plus proche de la structure de données manipulée
Cas d’utilisations : ● centralisation des logs● réalisation d’application en graphe● ...
Motivations
![Page 5: Graph database - imagair.imag.fr/images/f/fc/VT2015_Graph_Databases.pdf · Introduction Motivations Listing des BD sur le marché : Comparaison au BD relationnelles Avantages / Inconvénients](https://reader033.fdocuments.us/reader033/viewer/2022042307/5ed2dd58a079355bb26da084/html5/thumbnails/5.jpg)
Malek Mammar Veille technologique
● Relationnelle (table) : ○ oritentée colonne : (eg. VerticaDB)○ orientée ligne : (eg. MySQL)
● NotOnlySQL ○ basé sur différents systèmes
■ clé-valeur (eg. Redis)■ document (eg. MongoDB)■ …
● Graphe○ basé sur une structuration en graphe : (eg. Neo4j)○ basé sur des BD relationnelles : FlockDB, TAO
Listings des différents types de BD
![Page 6: Graph database - imagair.imag.fr/images/f/fc/VT2015_Graph_Databases.pdf · Introduction Motivations Listing des BD sur le marché : Comparaison au BD relationnelles Avantages / Inconvénients](https://reader033.fdocuments.us/reader033/viewer/2022042307/5ed2dd58a079355bb26da084/html5/thumbnails/6.jpg)
Malek Mammar Veille technologique
Source : http://istc-bigdata.org/index.php/benchmarking-graph-databases/Un benchmark réalisé par Alekh Jindal : un post doctorant dans le groupe Data base Group du laboratoire MIT CAIL.
Comparatif de performance
![Page 7: Graph database - imagair.imag.fr/images/f/fc/VT2015_Graph_Databases.pdf · Introduction Motivations Listing des BD sur le marché : Comparaison au BD relationnelles Avantages / Inconvénients](https://reader033.fdocuments.us/reader033/viewer/2022042307/5ed2dd58a079355bb26da084/html5/thumbnails/7.jpg)
Malek Mammar Veille technologique Sommaire
BD en graphe :● Avantages :
○ une interface de requête plus adaptée aux structures en graphe● Inconvénients:
○ perte en performance en raison de l’implementation sous-jacente (voir Neo4j)
BD relationnelles : ● Avantages :
○ performance (quel que soit le type de requêtes)● Inconvénients :
○ complexification des requêtes de type graphe■ perte en temps de développement■ risque d’erreurs
Avantages / Inconvénients
![Page 8: Graph database - imagair.imag.fr/images/f/fc/VT2015_Graph_Databases.pdf · Introduction Motivations Listing des BD sur le marché : Comparaison au BD relationnelles Avantages / Inconvénients](https://reader033.fdocuments.us/reader033/viewer/2022042307/5ed2dd58a079355bb26da084/html5/thumbnails/8.jpg)
Malek Mammar Veille technologique Sommaire
Utiliser une interface de requêtes “graph-friendly” qui se mappe au moteur SQL : Giraph, Pregel
● Avantages :○ abstraction de la syntaxe SQL
● Inconvénients○ un temps de traitement supplémentaire
Exemples de “wrapper” MySQL : FlockDB (Twitter), TAO (Facebook)
Solution
Comparaison des interfaces SQL - Vertex-centric (= similaire à Giraph)Source : http://istc-bigdata.org/index.php/benchmarking-graph-databases/
![Page 9: Graph database - imagair.imag.fr/images/f/fc/VT2015_Graph_Databases.pdf · Introduction Motivations Listing des BD sur le marché : Comparaison au BD relationnelles Avantages / Inconvénients](https://reader033.fdocuments.us/reader033/viewer/2022042307/5ed2dd58a079355bb26da084/html5/thumbnails/9.jpg)
Malek Mammar Veille technologique Sommaire
Zoom sur Neo4j
Structure des données dans Neo4j
Structure :● Une liste chainée de noeud
● Chaque noeud contient :○ une référence sur une liste chainée
de relations, classé par types○ une référence sur une liste chainée
de propriétés (clé-valeur)
Inconvénients :● coût en temps et en nombre d’accès
mémoire
![Page 10: Graph database - imagair.imag.fr/images/f/fc/VT2015_Graph_Databases.pdf · Introduction Motivations Listing des BD sur le marché : Comparaison au BD relationnelles Avantages / Inconvénients](https://reader033.fdocuments.us/reader033/viewer/2022042307/5ed2dd58a079355bb26da084/html5/thumbnails/10.jpg)
Malek Mammar Veille technologique Sommaire
Conclusion
L’application à déveloper déterminera le choix du type de BD :
● performances → NoSQL
● propriétés ACID → RDBMS
● facilité de syntaxe des requêtes, pour un développement plus rapide → utiliser des “wrapper” de requêtes SQL (Giraph, Pegasus, …)→ utiliser des BD dédiés : Neo4j (Cypher)
![Page 11: Graph database - imagair.imag.fr/images/f/fc/VT2015_Graph_Databases.pdf · Introduction Motivations Listing des BD sur le marché : Comparaison au BD relationnelles Avantages / Inconvénients](https://reader033.fdocuments.us/reader033/viewer/2022042307/5ed2dd58a079355bb26da084/html5/thumbnails/11.jpg)
Malek Mammar Veille technologique Sommaire
Des questions ?
Démonstration
Fin
![Page 12: Graph database - imagair.imag.fr/images/f/fc/VT2015_Graph_Databases.pdf · Introduction Motivations Listing des BD sur le marché : Comparaison au BD relationnelles Avantages / Inconvénients](https://reader033.fdocuments.us/reader033/viewer/2022042307/5ed2dd58a079355bb26da084/html5/thumbnails/12.jpg)
Malek Mammar Veille technologique Sommaire
Exemple de requête de graphe
![Page 13: Graph database - imagair.imag.fr/images/f/fc/VT2015_Graph_Databases.pdf · Introduction Motivations Listing des BD sur le marché : Comparaison au BD relationnelles Avantages / Inconvénients](https://reader033.fdocuments.us/reader033/viewer/2022042307/5ed2dd58a079355bb26da084/html5/thumbnails/13.jpg)
Malek Mammar Veille technologique Sommaire
Requête de plus court chemin Neo4j(Syntaxe Cypher)
MATCH (jerry:Person { name:"Jerry OConnell" }),(cameron:Person { name:"Cameron Crowe" }),p = shortestPath((jerry)-[*..15]-(cameron)) RETURN p
Exemple de requête de graphe
Requête de plus court chemin BD relationnelle(Syntaxe SQL)
Algorithme récursif sur les connaissances de ’Jerry OConnell’
1ere rondeSELECT * FROM KNOWS WHERE name=’Jerry OConnell’;
2eme rondeSELECT * FROM KNOWS WHERE name=’John Smith’;
SELECT * FROM KNOWS WHERE name=’Jay Mohr’;
3eme rondeOn s’arrête, Cameron Crowe est trouvée