5 points pour mieux comprendre les bases de données Graph
18
Juil
Les bases de données Graph, qui utilisent des structures graphiques pour répondre à des requêtes, sont devenues une évidence pour beaucoup depuis que les réseaux sociaux comme Facebook et Twitter en ont fait le cœur de leur gestion de base de données. Twitter a créé FlockDB pour gérer des réseaux Graph larges, et peu profonds. Le projet Cayley de Google s’est directement inspiré de la base de données Graph qui propulse son Knowledge Graph, la base de connaissances reliée à son moteur de recherche. Facebook utilise de son côté Apache Giraph, construit pour assurer une grande évolutivité.
- Que peuvent faire les bases de données Graph ?
Rappelez-vous du moteur de recherche Alta Vista, très populaire avant que Google ne prenne les rênes en matière de search sur le Web. Alta Vista était un bon outil, mais Google est meilleur parce qu’il comprend comment toutes les pages Web sont reliées entre elles. Car les bases de données Graph du moteur trouvent non seulement des connexions entre les différents points de données (des pages web par exemple), mais elles peuvent aussi classer la pertinence ou le poids de ces relations. Oui, le fameux indicateur PageRank utilise une base de données Graph (que l’on imagine gigantesque) pour déterminer l’influence d’un site, et indirectement son positionnement dans les résultats de requête sur Google.
Les données sont stockées dans des nœuds individuels. Il peut s’agir d’une personne, d’un produit, d’une pag Web. Et les relations entre ces nœuds contiennent des propriétés. Et cela crée des listes chaînées. La relation entre deux nœuds va indiquer par exemple qu’un client d’un site de e-commerce (un nœud) achète régulièrement un type de produit particulier (un autre nœud). Ce produit est aussi acheté par d’autres clients, dont l’historique d’achat est également stocké en base. Une requête Graph va donc permettre de proposer cet historique d’achat au premier client, par le jeu des relations de la base. Oui, vous avez bien compris, nous parlons ici de la fonctionnalité de recommandation d’Amazon.
« Les bases de données Graph mettent en application la théorie mathématique des graphes. Ce pan des mathématiques cache de l’or. Jusqu’à présent il manquait un outillage pour mettre en application cette théorie qui est bien connue dans de nombreuses entreprises » contextualise Cédric Fauvet, responsable commercial France de Neo4j.
- Comment fonctionnent les bdd Graph, et quand sont-elles plus performantes les bdd relationnelles ou NoSQL ?
Quelle est le parfum de glace préféré des personnes dégustent régulièrement des expresso, mais détestent les choux de Bruxelles ? Une base de donnée Graph peut vous le dire. Comment ? Avec des données de qualité, les bases de données Graph permettent de modéliser les données et de les stocker de la manière dont nous pensons et raisonnons dans le monde réel.
« Les bases de données Graph permettent de traiter des données connectées grâce à un travail sur les jointures » explique Cédric Fauvet. « Les autres technologies de type NoSQL permettent de mieux traiter les données, pour en tirer plus de valeur. Le monde de la Business Intelligence a fortement évolué ces dernières années. Nous, nous travaillons sur la « matière noire », c’est à dire ce existe entre les données. Ce « vide » a une valeur, il s’agit de la connexion entre les données ».
Une qualité que peine à reproduire les bases de données relationnelles classiques. En cause, leur difficulté à gérer les jointures, c’est à dire les relations entre les données. Pour ce faire, la modélisation des données doit être effectuée en liant les tables par des clés étrangère. D’où des performances de calcul faibles. Et donc des latences incompatibles avec la réactivité exigée des applications en ligne. Autre inconvénient, plus on rajoute de clés, plus la gestion de la base devient complexe. L’évolutivité en fonction des nouveaux besoins métiers des entreprises est donc fortement compromise. Concrètement, à la différence des bases de données relationnelles, les bases de données Graph stockent la connexion des données directement sur les disques durs.
« Ensuite nous utilisons les mêmes grands principes que les bases de données classiques pour le fonctionnement, avec des drivers Python, Java ou encore PHP. Mais nous interrogeons la base avec un langage spécifique, et chez nous c’est Cypher ».
Enfin, un outil de visualisation des données est nécessaire, à l’image de Qlik ou Gephi. « Mais nous voyons beaucoup de développements en interne, parce que chaque cas est spécifique » assure Cédric Fauvet. Côté apprentissage, « il y a un effort a faire pour sortir son esprit du tableau (ndlr. la référence pour les bdd relationnelles), il faut changer de point de vue. Mais quand cet effort là à été fait, on a du mal a revenir en arrière ».
- Quels sont les principaux cas d’usage pour les bases de données Graph ?
« Le principal cas d’usage est la recommandation » note Cédric Fauvet. « Meetic utilise une base de donnée Graph pour obtenir des recommandations pertinentes entre les membres. Par exemple pour connaître les amis d’amis qui ont le même âge. Et ce principe de filtrage collaboratif, calculé avec un algorithme de recommandation, est très difficile à utiliser avec des bases de données relationnelles ».
C’est avec cette technologie également que eBay peut optimiser ses livraisons en Californie, promises en moins de deux heures. « 7 lignes de code Cypher ont suffit pour mettre en place un système où le livreur peut récupérer un nouveau colis et le livrer alors même qu’il effectue déjà une livraison » mentionne le responsable de Neo4j. « Cela permet de faire deux à trois tournées au lieu d’une seule dans le même temps ».
Pour lire la suite de l’article depuis sa source, cliquez sur ce lien