Le Blog Amazon Web Services

Améliorez vos applications orientées Graphe grâce à Amazon Neptune, openCypher et Gremlin

Nous avons annoncé la disponibilité d’openCypher pour Amazon Neptune en Avril 2022. Vous pouvez désormais utiliser openCypher et Apache TinkerPop Gremlin pour construire ou migrer des applications basées sur des graphes de propriétés (« property graph »). Le moteur d’Amazon Neptune spécialement conçu pour les bases de données graphe prend désormais en charge trois langages de requêtes : Apache TinkerPop Gremlin, openCypher et SPARQL 1.1 du World Wide Web Consortium (W3C). Plus de langages, donc plus de choix pour les développeurs !

Nous avons construit le service Amazon Neptune car nos clients nous ont fait part de leur besoin de pouvoir exploiter les liens existants dans leurs données. Depuis la sortie de Neptune, de nombreux clients tels que Netflix, NBC Universal, Cox Automotive ou encore Yahoo Knowledge Graph construisent des graphes de connaissances pour lier et découvrir des données, des graphes d’identité pour mieux comprendre leurs clients ou leurs équipements, des graphes de fraude pour mieux détecter les activités frauduleuses ainsi que bien d’autres cas d’usage.

Chez AWS, 90% de la roadmap des nos services est construite directement grâce à vos retours. Et vous nous avez demandé un moyen simple d’interroger vos bases de données graphe avec un langage déclaratif. Neptune propose désormais un point de terminaison REST pour exécuter des requêtes openCypher et importer des données en masse. Il est possible d’utiliser tant openCypher que Gremlin sur le même graphe de propriétés. Les clients de Neptune qui ne sont pas très familiers avec les bases de données orientées graphe mais qui ont l’habitude des langages déclaratifs comme le SQL ont désormais un choix supplémentaire pour construire leurs requêtes. Les clients qui connaissent déjà openCypher ou qui ont des applications utilisant le protocole Bolt peuvent désormais bénéficier d’un nouveau moteur de bases de données orienté graphe, fiable, rapide et entièrement géré. Amazon Neptune est hautement disponible grâce aux répliquas de lecture, à la sauvegarde continue sur Amazon S3 et à la réplication à travers les zones de disponibilité. Neptune est sûr, il est compatible avec des connexions client chiffrées HTTPS et supporte le chiffrement des données au repos. Neptune étant entièrement géré, vous n’avez plus besoin de vous soucier des tâches de gestion de base de données, comme la mise en service de matériel, l’application de correctifs logiciels, l’installation, la configuration ou les sauvegardes.

Le concept des bases de données orientées graphe n’est pas nouveau. Comme l’a écrit Werner Vogels en 2019 dans son article de blog sur les relations dans les données, “les bases orientées graphe sont en fait antérieures aux bases relationnelles”. Pourtant, aujourd’hui il y a beaucoup plus de clients qui pourraient bénéficier de l’utilisation de bases de données orientées graphe que de clients qui connaissent bien les bases graphes, les langages de requêtes ou les modèles associés.

Lorsque nous parlons avec nos clients, nous nous rendons compte que bien souvent ils ne s’attachent pas aux détails d’implémentation des graphes, tels que les modèles, les langages de requête ou les APIs. C’est pour cette raison que nous avons fait le choix avec Neptune de supporter les deux modèles principaux de bases de données orientées graphe : les graphes de propriétés et les graphes de ressources, ou W3C Resource Description Framework (RDF). L’ajout d’openCypher pour les graphes de propriétés vous donnera un élément de décision supplémentaire pour choisir le langage qui sera le plus adapté à vos besoins.

Examinons l’extrait de code suivant. Les deux blocs font la même chose : chercher jusqu’à cinq chemins composés de deux vols entre Austin et Anchorage. L’un est écrit en mode impératif avec Gremlin, l’autre en mode déclaratif avec openCypher.

La possibilité d’écrire tant en openCypher qu’en Gremlin sur le même jeu de données permet de profiter du meilleur des deux mondes : impératif et déclaratif. L’impératif avec Gremlin est très utile lorsque l’on a des besoins spécifiques et programmatiques lors de l’accès au graphe. Le déclaratif avec openCypher pour écrire rapidement des requêtes qui ressemblent à du SQL.

Parallèlement, nous avons également ajouté le support d’openCypher via le protocole Bolt dans AWS Graph Notebook, un notebook Jupyter open-source, pour aider les développeurs à bien démarrer le développement de leurs applications graphe. Le support de Bolt vous permet d’exécuter des requêtes openCypher et d’obtenir en retour une représentation graphique, comme le montre la capture d’écran suivante.

Vous trouverez sur GitHub des exemples et des notebooks pour les trois langages. Le notebook Graph est inclus dans Neptune Workbench via la console AWS. Si vous préférez déployer les notebooks vous même, vous pouvez exécuter la commande pip install graph-notebook et l’utiliser avec Neptune ou tout autre moteur de base de données orienté graphe supportant Apache TinkerPop, openCypher ou SPARQL 1.1. Si vous utilisez déjà ce notebook, vous pouvez le mettre à jour grâce à la commande suivante : pip install graph-notebook --upgrade

Conclusion

Si les bases de données orientées graphe vous intéressent, que vous souhaitez tirer meilleur profit des relations qui existent dans vos données ou si vous êtes un utilisateur avancé des bases de données orientées graphe, essayez openCypher pour Neptune sur vos graphes. Vous pouvez créer un nouveau cluster Neptune ou mettre à jour un cluster existant vers la version 1.0.5.0 ou supérieure. Surtout, faites-nous part de vos retours et remarques, que nous puissions nous améliorer et itérer rapidement.

Article initialement publié par Brad Bebee, General Manager d’Amazon Neptune et adapté en français par Alexis GÜNST HORN, Solutions Architect dans les équipes AWS France.