Informations générales sur la migration de Neo4j vers Neptune - 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.

Informations générales sur la migration de Neo4j vers Neptune

Grâce à la prise en charge du langage de openCypher requête par Neptune, vous pouvez déplacer la plupart des charges de travail Neo4j qui utilisent le protocole Bolt ou vers Neptune. HTTPS Cependant, il openCypher s'agit d'une spécification open source qui contient la plupart des fonctionnalités prises en charge par d'autres bases de données telles que Neo4j, mais pas toutes.

Bien qu'il soit compatible à bien des égards, Neptune ne remplace pas directement Neo4j. Neptune est un service de base de données orientée graphe entièrement géré et doté de fonctionnalités d'entreprise telles que la haute disponibilité et la haute durabilité. Son architecture est différente de celle de Neo4j. Neptune repose sur une instance, avec une seule instance d'enregistreur principale et jusqu'à 15 instances de réplica en lecture qui vous permettent de mettre à l'échelle horizontalement la capacité de lecture. Avec Neptune sans serveur, vous pouvez automatiquement augmenter ou diminuer la capacité de calcul en fonction du volume de requêtes. Cela est indépendant du stockage Neptune, qui est mis à l'échelle automatiquement à mesure que vous ajoutez des données.

Neptune prend en charge la spécification openCypher standard open source, version 9. Chez AWS, nous pensons que l'open source est bénéfique pour tout le monde et nous nous engageons à la fois à apporter la valeur de l'open source à nos clients et à apporter l'excellence opérationnelle AWS aux communautés open source.

Cependant, de nombreuses applications exécutées sur Neo4j utilisent également des fonctionnalités propriétaires qui ne sont pas open source et que Neptune ne prend pas en charge. Par exemple, Neptune ne prend pas en charge APOC les procédures, certaines clauses et fonctions spécifiques à Cypher, ni les types de donnéesChar. Date Duration Neptune convertit automatiquement les types de données manquants en types de données pris en charge.

Neptune prend également en openCypher charge le langage de requête Apache TinkerPop Gremlin pour les graphes de propriétés (ainsi que SPARQL pour les RDF données). Gremlin peut interagir avec openCypher le même graphe de propriétés et, dans de nombreux cas, vous pouvez utiliser Gremlin pour fournir des fonctionnalités qui openCypher ne le sont pas. Vous trouverez ci-dessous une comparaison rapide des deux langages :

openCypher Gremlin

Style

Déclaratif

Impératif

Syntaxe

Mise en correspondance des modèles

Match p=(a)-[:route]->(d) WHERE a.code='ANC' RETURN p

Basé sur la traversée

g.V().has('code', 'ANC'). out('route').path(). by(elementMap())

Facilité d'utilisation

SQL-inspiré, lisible par les non-programmeurs

Courbe d'apprentissage plus abrupte, similaire à celle des langages de programmation tels que Java

Flexibilité

Faible

Élevé

Prise en charge des requêtes

Requêtes basées sur des chaînes

Requêtes basées sur des chaînes ou code intégré pris en charge par les bibliothèques clientes

Clients

HTTPSet Bolt

HTTPSet Websockets

En général, il n'est pas nécessaire de modifier votre modèle de données pour migrer de Neo4j vers Neptune, car Neo4j et Neptune prennent en charge les données étiquetées property graph (). LPG Neptune présente toutefois certaines différences d'architecture et de modèle de données dont vous pouvez tirer parti pour optimiser les performances. Par exemple :

N'hésitez pas à contacter l'équipe chargée AWS de votre AWS compte ou à contacter l'équipe chargée de votre compte si vous avez des questions. Nous tenons compte de vos commentaires pour traiter en priorité les nouvelles fonctionnalités qui répondront à vos besoins.