Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Accès au graphe de Neptune avec OpenCypher
Neptune prend en charge la création d'applications graphiques à l'aide d'OpenCypher, actuellement l'un des langages de requête les plus populaires pour les développeurs travaillant avec des bases de données graphiques. Les développeurs, les analystes commerciaux et les scientifiques des données apprécient la syntaxe inspirée du langage SQL d'OpenCypher, car elle fournit une structure familière pour composer des requêtes pour les applications graphiques.
OpenCypher est un langage de requête déclaratif pour les graphes de propriétés qui a été initialement développé par Neo4j, puis open source en 2015, et qui a contribué au projet OpenCypher
Pour connaître les limites et les différences relatives à la prise en charge de la spécification OpenCypher par Neptune, consultezConformité aux normes OpenCypher dans Amazon Neptune.
L'implémentation actuelle du langage de requête Cypher dans Neo4j s'écarte à certains égards de la spécification OpenCypher. Si vous migrez le code Neo4j Cypher actuel vers Neptune, consultezCompatibilité de Neptune avec Neo4j etRéécriture de requêtes Cypher pour les exécuter dans OpenCypher sur Neptune pour obtenir de l'aide.
À partir de la version 1.1.1.0 du moteur, OpenCypher est disponible pour une utilisation en production dans Neptune.
Gremlin contre OpenCypher : similitudes et différences
Gremlin et OpenCypher sont tous deux des langages de requête de graphes de propriétés qui se complètent à bien des égards.
Gremlin a été conçu pour plaire aux programmeurs et s'intégrer parfaitement dans le code. Par conséquent, Gremlin est conçu comme impératif, tandis que la syntaxe déclarative d'OpenCypher peut sembler plus familière aux personnes ayant de l'expérience en SQL ou SPARQL. Gremlin peut sembler plus naturel à un data scientist utilisant Python dans un bloc-notes Jupyter, alors qu'OpenCypher peut sembler plus intuitif à un utilisateur professionnel ayant une certaine formation SQL.
Ce qui est bien, c'est que vous n'avez pas à choisir entre Gremlin et OpenCypher dans Neptune. Les requêtes dans l'une ou l'autre langue peuvent fonctionner sur le même graphique, quelle que soit la langue utilisée pour saisir ces données. Vous trouverez peut-être plus pratique d'utiliser Gremlin pour certaines choses et OpenCypher pour d'autres, selon ce que vous faites.
Gremlin utilise une syntaxe impérative qui vous permet de contrôler la façon dont vous vous déplacez dans votre graphique en plusieurs étapes, chacune prenant en compte un flux de données, effectuant une action sur celui-ci (à l'aide d'un filtre, d'une carte, etc.), puis renvoyant les résultats à l'étape suivante. Une requête Gremlin prend généralement la formeg.V()
, suivie d'étapes supplémentaires.
Dans OpenCypher, vous utilisez une syntaxe déclarative, inspirée du langage SQL, qui spécifie un modèle de nœuds et de relations à rechercher dans votre graphe à l'aide d'une syntaxe de motif (comme()-[]->()
). Une requête OpenCypher commence souvent par uneMATCH
clause, suivie d'autres clauses telles queWHERE
WITH
, etRETURN
.
Démarrer avec OpenCypher
Vous pouvez interroger des données de graphes de propriétés dans Neptune à l'aide d'OpenCypher, quelle que soit la façon dont elles ont été chargées, mais vous ne pouvez pas utiliser OpenCypher pour interroger des données chargées au format RDF.
Le chargeur en masse Neptune accepte les données des graphes de propriétés au format CSV pour Gremlin et au format CSV pour OpenCypher. Bien entendu, vous pouvez également ajouter des données de propriété à votre graphe à l'aide de requêtes Gremlin et/ou OpenCypher.
De nombreux didacticiels en ligne sont disponibles pour apprendre le langage de requête Cypher. Quelques exemples rapides de requêtes OpenCypher peuvent vous aider à vous faire une idée du langage, mais le moyen le plus simple et le plus efficace de commencer à utiliser OpenCypher pour interroger votre graphe Neptune est de loin d'utiliser les blocs-notes OpenCypher du workbench Neptune. Le workbench est open source et est hébergé GitHub sur https://github.com/aws-samples/amazon-neptune-samples
Vous trouverez les blocs-notes OpenCypher dans le référentiel de blocs-notes GitHub Neptune
Les données traitées par OpenCypher prennent la forme d'une série non ordonnée de cartes clé/valeur. Le principal moyen d'affiner, de manipuler et d'augmenter ces cartes consiste à utiliser des clauses qui effectuent des tâches telles que la mise en correspondance de modèles, l'insertion, la mise à jour et la suppression sur les paires clé/valeur.
OpenCypher contient plusieurs clauses permettant de trouver des modèles de données dans le graphe, la plus couranteMATCH
étant la plus courante. MATCH
vous permet de spécifier le modèle de nœuds, de relations et de filtres que vous souhaitez rechercher dans votre graphe. Par exemple :
-
Obtenez tous les nœuds
MATCH (n) RETURN n
-
Trouvez des nœuds connectés
MATCH (n)-[r]->(d) RETURN n, r, d
-
Trouvez un chemin
MATCH p=(n)-[r]->(d) RETURN p
-
Obtenez tous les nœuds avec une étiquette
MATCH (n:airport) RETURN n
Notez que la première requête ci-dessus renvoie chaque nœud de votre graphe, et les deux suivantes renvoient tous les nœuds ayant une relation, ce qui n'est généralement pas recommandé ! Dans la plupart des cas, vous souhaitez affiner les données renvoyées, ce que vous pouvez faire en spécifiant des étiquettes et des propriétés de nœud ou de relation, comme dans le quatrième exemple.
Vous pouvez trouver un aide-mémoire pratique pour la syntaxe OpenCypher dans le référentiel d'exemples de Neptune sur github