Amine Lies Benhenni François-Xavier Bois Bases de données orientées graphes avec Manipuler et exploiter vos bases de données orientées graphes Vl (l) 0 ' > w ID ....-i 0 N © ...... ..c Ol ·;:::: >- 0. EYROLLES 0 u Ces dernières années, les besoins relatifs au traitement des Bases de données orientées graphes avec données ont évolué à un rythme soutenu. Les sites web aux Neo4j millions d'utilisateurs (réseaux sociaux, plates-formes de diffusion de contenus) sont à l'origine de l'essor de la plus dynamique des familles de moteurs de données : le NoSQL. Une base de données optimisée pour le big data Avec plus de sept ans d"expérience dans la modéli Parmi les bases de données NoSQL, celles orientées « graphes H connaissent sation et l'analyse de données. Amine Lies Benhennl un succès fulgurant du fait de leur souplesse et de leur évolutivité extrême. s'est spécialisé dans le développement d'applica Ne reposant sur aucun schéma, un graphe peut accepter de nouveaux flux tions data-driven à base de modèles prédictifs. de données sans nécessiter d'interventions lourdes. À l'heure où les sociétés d"analyse de graphes et de traitement automatique ont compris que la fusion de leurs silos de données (CRM, ERP, Web, etc.) est du langage. Il est aujourd.hui spécialiste en data une condition sine qua non pour créer de la valeur (solutions d'intelligence science et data engineering. prédictive, moteurs de recommandation), cette propriété du graphe se révèle Ingénieur en sciences cognitives et en intelligence essentielle. artificielle. François-Xavier Bois est le fondateur de En considérant les relations entre objets comme des données de premier ordre, la société Kernix. où il dirige la stratégie et l'innova de nouvelles perspectives d'exploration et d'analyse apparaissent et favorisent tion. li est également expert auprès du pôle de com la découverte d'informations inédites. L'absence de barrieres logiques ouvre pétitivité Cap Digital et auteur de plusieurs ouvrages également la porte à des modalités d'exploitation de la donnée en profon consacrés au Web. deur, sans nuire aux performances. Installés depuis de nombreuses années au cœur des infrastructures des géants du Web (Google, Facebook, Linkedln), les graphes sont désormais accessibles au plus grand nombre grâce a I' émer Sommaire gence des moteurs de graphes et notamment au leader du domaine : Neo4j. Réseaux et graphes • Qu'est-ce qu'un graphe ? Un ouvrage de référence sur Neo4j • Notions et terminologie • Bases de données et Le présent ouvrage s'adresse a tous les publics confrontés au volet data d'un modèles de graphes • Les bases relationnelles • projet informatique: développeurs, DSI, directeurs techniques, chefs de projets, Bases de données NoSQL • Installation de Neo4j • data miners et data scientists. Son objectif majeur est de vous aider à identifier Prise en main • Opérations de maintenance • Le lan les projets informatiques qui gagneront à mettre en œuvre un graphe. gage Cypher • Création d'entités • Lecture et impor Apres une introduction au concept de graphe et une présentation de Neo4j tation de données • Performance • Serveur Neo4j et de son langage de requête (Cypher), le présent ouvrage illustre a l'aide • API REST • Extensions • Exemples pratiques de d'exemples concrets la puissance des graphes pour traiter des problèmes aussi modélisation des données • Modélisation en graphe pointus que la recommandation et l'analyse de réseaux sociaux. Les grandes dans Neo4j • Gestion de projets • Analyse prédictive étapes d'un projet data-driven reposant sur le graphe sont illustrées de la et recommandation • La recommandation. un bref pa conception à la mise en place de modèles prédictifs, en passant par l'ingestion norama • Quelques mots sur la validation des modèles des données et l'analyse. • Outils de visualisation • sigma.js • Graphes et Vl réseaux sociaux • Données Twitter • Twitter et medias (l) Àq ui s'adresse cet ouvrage ? sociaux. une source d'information incontournable? 0 ' > • Aux administrateurs de bases NoSQL de type graphe. w • Aux développeurs et architectes, pour mettre en pratique les concepts ID ....-l avec Neo4j. 0 N • Aux data scientists qui trouveront avec les graphes un outil complémentaire © pour concevoir leurs modèles. ...... www.editions-eyrolles.com ..c Ol ·;:::: >- 0. 0 u Bases de données orientées graphes avec • Manipuler et exploiter vos bases de données orientées graphes Vl (l) 0 ' > w ID ....-i 0 N © ...... ..c Ol ·;:::: >- 0. 0 u DANS LA MÊME COLLECTION R. GoETTER. - CSS 3 Flexbox. N°l4363, 2016, 152 pages. C. BLAESS. - Solutions temps réel sous Linux. N° 14208, 2015, 300 pages. W. McK1NNEY. - Analyse de données en Python. N° 14109, 2015, 488 pages. E. BIERNAT, M. LuTZ. - Data science: fondamentaux et études de cas. N° 14243, 2015, 312 pages. B. PHILTBERT. - Bootstrap 3 : le framework 100 % web design. N°l4132, 2015, 318 pages. C . CAMJN. - Développer avec Symfony2. N° 141 3 1, 20 15 , 4 7 4 pages. S. P1n10N, B. S1EBMAN. - Applications mobiles avec Cordova et PhoneGap. N° 14052, 2015, 184 pages. H. ÜJRAUDEL, R. GoETTER. - CSS 3 : pratique du design web. N°l4023, 2015, 372 pages. C. DELANNOY. - Le guide complet du langage C. N°l4012, 2014, 844 pages. K. AYARJ. - Scripting avancé avec Windows PowerShell. N°13788, 2013, 358 pages. W. BoRrES, O. MrRJAL, S. PAPP. - Déploiement et migration Windows 8. N° 13645, 2013, 480 pages. W. BORIES, A. LAACHIR, D. THJBLEMONT, P. LAFEJL, F.-X. VITRANT. - Virtualisation du poste de travail Windows 7 et 8 avec Windows Server 2012. N°13644, 2013, 218 pages. J.-M. DEFRANCE. - jQuery-Ajax avec PHP. N°13720, 4° édition, 2013, 488 pages. L.-G. MORAND, L. Vo VAN, A. ZANCHETTA. - Développement Windows 8 -Créer des applications pour le Windows Store. N°l3643, 2013, 284 pages. Y. ÜABORY, N. FERRARI, T. PETJLLON. - Django avancé. N° 13415, 2013, 402 pages. P. ROQUES. - Modélisation de systèmes complexes avec SysML. N°l3641, 2013, 188 pages. SUR LE MÊME THÈME R. BRUCHEZ. - Les bases de données NoSQL et le Big Data. N°14155, 2015, 322 pages. M .-R. AMJNl. - Apprentissage machine, de la théorie à la pratique. N° 13800, 2015, 272 pages. Vl (l) M.-R. AMJNl, E. ÜAUSSJER. - Recherche d'information. 0 1.... N° 13532, 2013, 234 pages. > w A. CoRNUÉJOLS, L. M1cLET. - Apprentissage artificiel. ID N° 12471, 2010, 804 pages . ....-i 0 N © ...... Retrouvez nos bundles (livres papier+ e-book) et livres numériques sur ..c Ol http://izibook.eyrolles.com ·;:::: >- 0. 0 u Amine Lies Benhenni François-Xavier Bois Bases de données orientées graphes avec Manipuler et exploiter vos bases de données orientées graphes Vl (l) 0 ' > w ID ....-i 0 N © ...... ..c Ol ·;:::: >- EYROLLES 0. 0 u ÉDITIONS EYROLLES 61, bd Saint-Germain 75240 Paris Cedex 05 www.editions-eyrolles.com Vl (l) 0 ' > w ID En application de la loi du 11mars 1957, il est interdit de reproduire intégralement ou partiellement le présent ouvrage, ....-i 0 N sur quelque support que ce soit, sans l'autorisation de !'Éditeur ou du Centre Français d'exploitation du droit de copie, © 20, rue des Grands Augustins, 75006 Paris. ...... ..c © Groupe Eyrolles, 2016, ISBN: 978-2-212-13804-7 Ol ·;:::: >- 0. 0 u Avant-propos Les besoins relatifs au traitement des données ont évolué à un rythme soutenu ces dernières années. Il faut en effet être en mesure de répondre aux contraintes toujours plus importantes de sites web aux millions d'utilisateurs (réseaux sociaux, plates-formes de publication et de diffusion de contenus, etc.). Ces enjeux en termes de cfustering et de scalabilité ont fait naître la plus dynamique des familles de moteurs de données : le NoSQJ.,. Le graphe : une base à part Parmi ces moteurs de données, ceux orientés «graphes » connaissent un succès fulgurant du fait de leur souplesse et de leur évolutivité extrême. Ne reposant sur aucun schéma, un graphe peut accepter de nouveaux flux/jeux de données sans imposer d'interventions lourdes. À l'heure où les sociétés ont compris que la fusion de leurs silos de données (CRM, ERP, Web, etc.) est une condition sine qua non pour créer de la valeur (solutions d'intelligence prédic tive, moteurs de recommandation), cette propriété du graphe se révèle essentielle. Le présent ouvrage s'adresse à tous les publics confrontés de près ou de loin à la dimension data d'un projet informatique : développeurs, DSI, directeurs techniques, chefs de projets. Son objectif majeur est de vous aider à identifier les projets informatiques qui gagneront à mettre en œuvre un graphe. Les deux premiers chapitres vous familiariseront avec les principaux concepts relatifs aux gra phes. Le chapitre 3 vous dotera d'un moteur de données Neo4j grâce auquel vous créerez (Vl)l votre premier graphe. Le chapitre 4 présentera le langage utilisé par Neo4j pour réaliser des .0... . opérations (lecture/écriture) sur le graphe : Cypher. > w Les chapitres suivants illustreront avec des cas concrets l'utilisation des graphes. Nous abor ID ....-i derons à la fois des aspects liés à la programmation, l'algorithmie et la datavisualisation. 0 N Le dernier chapitre montre un exemple d'application data-driven, avec une ingestion en © ...... temps réel de flux de données complexes au sein du graphe . ..c Ol ·;:::: >- 0. 0 u Bases de données orientées graphes avec Neo4j À l'issue de ce livre, les lecteurs seront ainsi capables de développer une application reposant sur la base Neo4j pour répondre à différentes problématiques orientées data. De par la diver sité des sujets et le potentiel offert par l'outil, ce livre fournit une porte d'entrée royale et ori ginale sur le monde des données, du big data, de la Data Science et des modèles prédictifs. Présentation des auteurs Avec plus de sept ans d'expérience dans la modélisation mathématique et l'analyse statistique des données, Amine Lies Benhenni s'est spécialisé ces dernières années dans le développe ment d'applications data-driven à base de modèles prédictifs, d'analyse de graphes et de trai tement automatique du langage. Il est aujourd'hui spécialiste en data science et data enginee ring et il a accompagné entre autres de grands comptes du CAC 40 et du Nasdaq, ainsi que de jeunes startups, en travaillant en parallèle sur la solution technologique et les usages métier. Il est également docteur en physique théorique, siège au comité scientifique de l'École polytechnique d'assurances en tant qu'expert big data. Il est par ailleurs responsable du module d'analyse de données au sein de la licence Sciences et ingénierie à l'institut Villebon Georges Charpak, labellisé Initiative d'excellence en formations innovantes. Ingénieur en sciences cognitives et en intelligence artificielle, François-Xavier Bois est le fon dateur de la société Kernix, où il dirige la stratégie et l'innovation. Créée en 2001, cette agence parisienne repose sur deux piliers : une Digital Factory spécialisée dans la conception d'applications web et mobiles, et un Data Lab travaillant, pour de grands groupes industriels, sur des missions stratégiques dans l'univers des Smart Data. Les réalisations du Data Lab (outils d'aide à la décision, plates-formes d'intelligence collective) reposent sur l'analyse com binée des graphes et des données non structurées (textes, images, vidéos). Le Data Lab est lauréat de plusieurs concours d'innovation nationaux et européens. François-Xavier Bois est également expert auprès du pôle de compétitivité Cap Digital et auteur de plusieurs ouvrages consacrés à des technologies du Web. Remerciements Nous tenons à remercier pour leur relecture et leurs conseils Imen El Karoui et Joseph Pelle grino, collaborateurs au sein du Kernix Lab. Olivier Marillier, directeur artistique de Kernix, (Vl)l a également contribué à cet ouvrage en nous fournissant un certain nombre de visuels. 0 Remercions enfin nos épouses et enfants pour leur patience, leur soutien et leurs encourage ' > w ments. ID ...-i 0 N © ...... ..c Ol ·;:::: >- 0. 0 u Table des matières Introduction................................................................................... 1 CHAPITRE 1 Réseaux et graphes .. ... ...... ..... ........ ........ ... ... .. ... ........ ........ ... ... ...... 3 ~'est-ce qu'un graphe ? ................. ....... ........ .. ..... .... . 4 Un monde de réseaux ........................... ....... ... ..... .... . 5 Graphes et réseaux sociaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... . 6 Graphes et Web ................................................... 7 Graphes et informatique ............................................. 8 Notions et terminologie . . . . . . . . . . . . . . . . . . .......................... 10 Concepts ........ . ........................................... 10 Graphes particuliers . . . . . . . . . . . . . . . . . . . . . . . . . . . ................. 12 Autres structures de données .. . ...... . .............................. 13 CHAPITRE 2 Bases de données et modèles de graphes................................. 17 Les bases relationnelles ........................................ . . . .. 18 Caractéristiques des bases relationnelles ....................... . ..... 19 Normalisation des bases de données et jointure . . . . . . . . . . . . . . . . . . . . . . . . . 20 Gestion des transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Limitations ................................... . .. . ... ... . .... 22 Bases de données N oS~ .......................................... 22 Bases de graphes ...... . ...... . ............... . ...... . . ... .... ..... 26 Intérêt du graphe . ... ...... . ...... . ...... .. ....... .. ........... 26 (Vl)l Comparatif avec les autres modèles ................................. 27 0 Normalisation, dénormalisation et structure en graphe. . . . . . . . . . . . . . . . . . . 27 ' > w Réseaux sociaux et associations multiples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 ID Intégration de données et Master Data Management . . . . . . . . . . . . . . . . . . . 30 ....-i 0 N Conclusion ...................................................... 32 © ...... ..c Ol ·;:::: >- 0. 0 u Bases de données orientées graphes avec Neo4j CHAPITRE 3 Installation de Neo4j ................................................................... 35 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ................. 3 7 Sous OSX .. . ...... . ............... . ...... . ........ ....... .. . 37 Sous Windows et Linux ........ ....... ......... . ........ . . ..... . 38 Prise en main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ...... . 3 8 Démarrage du serveur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... .... . 3 9 Arborescence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ................ 3 9 Fichiers de configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Opérations de maintenance ......................................... 40 Réaliser une sauvegarde . ... . . . . .. .. . .. .. .. .... . ... ... .. . .. .. . . . . 40 Mettre à jour Neo4j ........... . . .... . . . . . .... . . . .. .. .. . . ...... . 40 L'interface web .................. .. .... .. ..... . ........... ... .... . 41 Le menu général ..... ....... . ...... . . . ...... . ........ ....... ... 41 La console web .... ... .... ... ....... .. ..... ..... .... ... ... . . ... 41 L'invite de commande .... . ... . ..... . .. .. . .. ........ . ..... . .... . .. 42 Les panneaux de réponse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Les commandes disponibles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Commande :PLAY ...... ..... .. . ........ .. . ... . ... . .... .. . ... . .. 44 Commandes :GET et :POST ...................................... 45 Commande :HELP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Autres commandes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Webadmin ......................... ... .... ............... . ... 51 CHAPITRE 4 Le langage Cypher.. ........ .. ....... .. .. ...... .......... ...... ... .. ......... .. ... ... ... . 53 Création d'entités ...... . ...... . ...... . ...... . ........ . ...... . . . ... 55 Créer un nœud ................................................ 55 Associer un label .............................................. 56 Utiliser des identifiants .................... ... .... ...... .. ..... .. 56 Associer des propriétés .................................. . ...... . 57 Créer un chemin ...................................... . ...... . 58 Personnaliser l'affichage .... . ................................. . . . 61 Créer dynamiquement une relation ...... . ... . .... . .. .... . .. ........ 62 Vl Lecture de données ................................................ 62 (l) 0 Réinitialiser le graphe .. . ...... . . . ...... . ........ . ...... . ........ 62 ' > w Principe général ............ . ...... . . ..... .. . ........ .... ... ... 65 ID Utiliser les motifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 ....-i 0 Filtrer les collections ........................... . ...... . . ..... .. . 69 N © Définir le format des réponses .............................. .. .... 70 ...... ..c Ol ·;:::: >- 0. 0 u
Description: