Accès au graphe de Neptune avec openCypher - Amazon Neptune

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 en utilisantopenCypher, actuellement, l'un des langages de requête les plus populaires pour les développeurs travaillant avec des bases de données de graphes. Les développeurs, les analystes commerciaux et les scientifiques des données apprécient openCypher la syntaxe SQL inspirée de S, car elle fournit une structure familière pour composer des requêtes pour les applications graphiques.

openCypherest un langage de requête déclaratif pour les graphes de propriétés initialement développé par Neo4j, puis open source en 2015, et qui a contribué au openCypherprojet sous une licence open source Apache 2. Sa syntaxe est documentée dans Cypher Query Language Reference, Version 9 (Référence du langage de requête Cypher, version 9).

Pour les limites et les différences entre Neptune et la prise en charge de la openCypher spécification, voir. openCypher conformité aux spécifications dans Amazon Neptune

Note

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, consultez Compatibilité de Neptune avec Neo4j et Réécriture des 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 il est disponible pour une utilisation en production dans Neptune.

Gremlin vs. openCypher : similarités et différences

Gkremlin est un langage openCypher de requête basé sur des graphes de propriétés, et ils sont complémentaires à bien des égards.

Gremlin est destiné aux programmeurs et s'intègre parfaitement dans le code. Par conséquent, Gremlin est intrinsèquement impératif, tandis que openCypher sa syntaxe déclarative peut sembler plus familière aux personnes expérimentées SQL ou SPARQL expérimentées. G705 peut sembler plus naturel à un data scientist qui utilise Python dans un bloc-notes Jupyter, alors qu'il openCypher peut sembler plus intuitif à un utilisateur professionnel ayant une certaine expérience. SQL

Ce qui est bien, c'est que vous n'avez pas à choisir entre Gkremlin et openCypher Neptune. Les requêtes dans l'un ou l'autre de ces langages fonctionnent sur le même graphe, quelle que soit le langage utilisé pour entrer 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 le graphe en une série d'étapes, chacune prenant en charge un flux de données, effectuant une action associée (à l'aide d'un filtre, d'un mappage, etc.), puis transmettant les résultats à l'étape suivante. Une requête Gremlin prend généralement la forme g.V(), suivie d'étapes supplémentaires.

DansopenCypher, vous utilisez une syntaxe déclarative, inspirée deSQL, 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 openCypher requête commence souvent par une MATCH clause, suivie d'autres clauses telles que WHEREWITH, etRETURN.

Mise en route avec openCypher

Vous pouvez interroger les données du graphe de propriétés dans Neptune openCypher quel que soit leur mode de chargement, mais vous ne pouvez pas les utiliser openCypher pour interroger les données chargées en tant que. RDF

Le chargeur en vrac Neptune accepte les données du graphe de propriétés dans un CSVformat pour Gremlin et dans un format pour. CSV openCypher Bien entendu, vous pouvez également ajouter des données de propriété à votre graphique à l'aide de Gremlin et/ou de openCypher requêtes.

De nombreux didacticiels en ligne permettent d'apprendre le langage de requête Cypher. Voici quelques exemples rapides de openCypher requêtes qui peuvent vous aider à vous faire une idée du langage, mais le moyen le plus efficace et le plus simple de commencer openCypher à interroger votre graphe Neptune est de loin d'utiliser les openCypher blocs-notes du pupitre Neptune. Le workbench est open source et est hébergé sur GitHub . https://github.com/aws-samples/amazon-neptune-samples

Vous trouverez les openCypher blocs-notes dans le référentiel GitHub Neptune Graph-Notebook. Consultez en particulier la visualisation des itinéraires aériens et les carnets de notes Premier Teams en anglais pour. openCypher

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 de compléter ces mappages consiste à utiliser des clauses qui exécutent des tâches telles que la correspondance de modèles, l'insertion, la mise à jour et la suppression au niveau des paires clé/valeur.

Plusieurs clauses permettent de trouver openCypher des modèles de données dans le graphique, MATCH dont la plus courante. MATCHvous permet de spécifier le modèle de nœuds, de relations et de filtres que vous souhaitez rechercher dans votre graphique. Par exemple :

  • Obtenir tous les nœuds

    MATCH (n) RETURN n
  • Trouver les nœuds connectés

    MATCH (n)-[r]->(d) RETURN n, r, d
  • Trouver un chemin

    MATCH p=(n)-[r]->(d) RETURN p
  • Obtenir tous les nœuds avec une étiquette

    MATCH (n:airport) RETURN n

Notez que la première requête ci-dessus renvoie tous les nœuds du graphe, et les deux suivantes renvoient tous les nœuds ayant une relation, ce qui n'est généralement pas recommandé. Dans presque tous les cas, il est utile d'affiner les données renvoyées. Pour ce faire, spécifiez les étiquettes et les propriétés des nœuds ou des relations, comme dans le quatrième exemple.

Vous trouverez un aide-mémoire pratique pour la openCypher syntaxe dans le référentiel d'exemples de Neptune github.