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.
Version 1.4.1.0 du moteur Amazon Neptune (21/11/2024)
En date du 21/11/2024, la version 1.4.1.0 du moteur est généralement déployée. Notez que plusieurs jours sont nécessaires pour qu'une nouvelle version soit disponible dans chaque région.
Avertissement
Le cache du plan de requêtes n'est temporairement pas pris en charge dans le cas de l'exécution de requêtes paramétrées impliquant des valeurs de paramètres numériques, en raison d'un bogue dans la gestion des utilisations dupliquées d'un paramètre de type numérique dans la requête. Par exemple :
MATCH (n:movie) WHERE n.runtime>=$minutes RETURN n UNION MATCH (n:show) WHERE n.duration>=$minutes RETURN n parameters={"minutes":130}
Les requêtes qui effectuent de nombreuses recherches d'index sur des déclarations ou des index de dictionnaires peuvent entraîner une régression des performances de 5 %. Par exemple, le fait d'obtenir le nombre de tous les sommets ou d'obtenir le nombre id de tous les sommets ne serait pas affecté. L'obtention de toutes les propriétés de tous les sommets pourrait entraîner une régression allant jusqu'à 5 %.
Nouvelles fonctionnalités de cette version du moteur
-
Ajout de la prise en charge des
CALLsous-requêtes avec une sous-requête en lecture seule, permettant l'exécution d'opérations dans un périmètre défini. UneCALLsous-requête est exécutée une fois pour chaque ligne entrante et les variables renvoyées dans une sous-requête sont disponibles dans la portée externe de la requête englobante. Les variables provenant de la portée externe peuvent être importées dans uneCALLsous-requête à l'aide d'uneWITHclause d'importation. Pour plus d'informations, consultez la section Prise en charge des sous-requêtes CALL dans Neptune.MATCH (origin:airport {code:"AUS"})-[:route]->(stopover) CALL { WITH stopover MATCH (stopover)-[r:route]->(destination) RETURN destination ORDER BY r.dist DESC LIMIT 2 } RETURN stopover, destination -
Fonctions OpenCypher ajoutées. Nous introduisons huit nouvelles fonctions pour faciliter la gestion des chaînes, les opérations de collecte et le tri des collections. Il s'agit notamment
textIndexOfdes éléments suivants :collToSetcollSubtractcollIntersectioncollSort,collSortMaps,,collSortMulti, etcollSortNodes. Voir les fonctions Neptune OpenCypher pour la description, les paramètres d'entrée, la sortie et des exemples.
Améliorations apportées à cette version du moteur
Améliorations de Gremlin
-
Nouveau paramètre du mode laboratoire
AccurateQRCMemoryEstimation. Le cache des résultats des requêtes Gremlin, lorsqu'il est activé, permet la mise en cache des résultats des requêtes dans la base de données. Par défaut, une estimation approximative est utilisée pour déterminer la taille du résultat mis en cache. Lorsque ce paramètre du mode laboratoireAccurateQRCMemoryEstimationest activé, l'estimation de la taille des résultats mis en cache utilisera une estimation de taille précise au lieu d'une estimation approximative. -
Correction d'un problème d'optimisation du filtre « non » dans les requêtes Gremlin exécutées sur le moteur d'exécution par défaut. Ce problème affectait les requêtes lorsque les bords étaient filtrés à l'aide de l'étape not () combinée à l'une des étapes outV () /inV () /otherV (). Les exemples de requêtes incluent :
-
g.E().hasLabel("knows").not(outV().hasId("5")) -
g.V().has('airport','code','SDF').outE().where(not(otherV().has(id, within('1','5','7')))).count()
-
Améliorations d’openCypher
-
Performances améliorées pour les requêtes utilisant de grandes listes ou cartes statiques. Certaines requêtes utilisant UNWIND sur une longue liste de cartes imbriquées utilisées pour insérer/modifier un nœud avec des propriétés bénéficient d'améliorations de performances significatives.
-
Introduit un nouvel indice de requête OpenCypher pour indiquer au moteur de supposer des types de données cohérents pour les valeurs utilisées dans la requête. Consultez AssumeConsistentDataTypes pour plus de détails sur le nouvel indice de requête OpenCypher.
-
Introduit un ensemble de nouvelles fonctions OpenCypher pour gérer le texte et les valeurs de collection.
Défauts corrigés dans cette version du moteur
Correctifs apportés à Gremlin
-
Correction d'un problème dans le chemin de code TinkerPop OSS permettant de créer une représentation en bytecode d'une requête traversale lorsque l'une des
withStrategies()/withoutStrategies()/with()étapes est utilisée sur un objetGraphTraversalSource« g ». Le problème a incorrectement ajouté de nouvelles instructions à Bytecode au lieu de remplacer les instructions existantes pour la même stratégie et a provoqué une non-concordance de clé de cache lors de l'invalidation du cache de résultats pour effacer les résultats stockés.
Correctifs apportés à openCypher
-
Comportement corrigé pour
`~id`matchles CREATE/MERGE/MATCH clauses in. Lorsque vous utilisez une`~id`valeur non valide, telle que des types nuls ou autres que des chaînes, une exception correcte est désormais levée pour les CREATE/MERGE clauses et aucun résultat n'est renvoyé pour uneMATCHclause. -
IFE fixe lorsque l'utilisateur utilise une valeur de type non pris en charge avec des fonctions d'agrégation (c'est-à-dire sum (<string>)).
-
Correction d'un problème en raison duquel certaines requêtes de mutation à faible latence provenant d'une charge de travail importante échouaient avec une OutOfMemory erreur.
Correctifs apportés à SPARQL
-
Correction d'un problème de journal d'audit lors de la gestion des requêtes SPARQL contenant le
'%'caractère.
Query-Language Versions prises en charge dans cette version
Avant de mettre à niveau un cluster de bases de données vers la version 1.4.1.0, assurez-vous que votre projet est compatible avec les versions en langage de requête suivantes :
Première version de Gremlin prise en charge :
3.7.1Dernière version de Gremlin est prise en charge :
3.7.1Version d'openCypher :
Neptune-9.0.20190305-1.0Version de SPARQL :
1.1
Chemins de mise à niveau vers la version 1.4.1.0 du moteur
Vous pouvez effectuer une mise à niveau vers cette version à partir de la version 1.2.0.0 ou supérieure du moteur.
Mise à niveau vers cette version
Si un cluster de bases de données exécute une version de moteur à partir de laquelle il existe un chemin de mise à niveau vers cette version, il peut être mis à niveau dès maintenant. Vous pouvez mettre à niveau n'importe quel cluster éligible à l'aide des opérations de cluster de bases de données sur la console ou à l'aide du kit SDK. La commande CLI suivante met immédiatement à niveau un cluster éligible :
Pour Linux, OS X ou Unix :
aws neptune modify-db-cluster \ --db-cluster-identifier(your-neptune-cluster)\ --engine-version 1.4.1.0 \ --allow-major-version-upgrade \ --apply-immediately
Pour Windows :
aws neptune modify-db-cluster ^ --db-cluster-identifier(your-neptune-cluster)^ --engine-version 1.4.1.0 ^ --allow-major-version-upgrade ^ --apply-immediately
Au lieu d'--apply-immediately, vous pouvez spécifier --no-apply-immediately. Pour effectuer une mise à niveau de version majeure, le paramètre allow-major-version-upgrade est obligatoire. Assurez-vous également d'inclure la version du moteu. Dans le cas contraire, le moteur sera peut-être mis à niveau vers une autre version.
Si votre cluster utilise un groupe de paramètres de cluster personnalisé, veillez à inclure ce paramètre pour le spécifier :
--db-cluster-parameter-group-name(name of the custom DB cluster parameter group)
De même, si des instances du cluster utilisent un groupe de paramètres de base de données personnalisé, veillez à inclure ce paramètre pour le spécifier :
--db-instance-parameter-group-name(name of the custom instance parameter group)
Toujour effectuer des tests avant la mise à niveau
Lorsqu'une nouvelle version majeure ou mineure du moteur Neptune est publiée, testez toujours vos applications Neptune sur cette version avant de procéder à la mise à niveau. Même une mise à niveau mineure peut introduire de nouvelles fonctionnalités ou de nouveaux comportements susceptibles d'affecter le code.
Commencez par comparer les pages de notes de mise à jour de votre version actuelle à celles de la version cible pour déterminer s'il existe des modifications des versions de langage de requête ou d'autres changements majeurs.
Le meilleur moyen de tester une nouvelle version avant de mettre à niveau le cluster de bases de données de production est de cloner ce cluster pour qu'il exécute cette nouvelle version du moteur. Vous pouvez ainsi exécuter des requêtes sur le clone sans affecter le cluster de bases de données de production.
Toujours créer un instantané manuel avant de procéder à la mise à niveau
Avant la mise à niveau, nous vous recommandons vivement de toujours créer un instantané manuel du cluster de bases de données. Un instantané automatique n'offre qu'une protection à court terme, tandis qu'un instantané manuel reste disponible jusqu'à ce que vous le supprimiez explicitement.
Dans certains cas, Neptune crée un instantané manuel pour vous dans le cadre du processus de mise à niveau, mais il est préférable de ne pas compter sur ce mécanisme et de créer dans tous les cas votre propre instantané manuel.
Lorsque vous êtes certain de ne pas avoir besoin de rétablir l'état antérieur à la mise à niveau de votre cluster de bases de données, vous pouvez supprimer explicitement l'instantané manuel que vous avez créé vous-même, ainsi que celui que Neptune a éventuellement créé. Si Neptune crée un instantané manuel, il porte un nom commençant par preupgrade, suivi du nom de votre cluster de bases de données, de la version du moteur source, de la version du moteur cible et de la date.
Note
Si vous essayez de procéder à une mise à niveau alors qu'une action en attente est en cours, une erreur telle que la suivante peut survenir :
We're sorry, your request to modify DB cluster (cluster identifier) has failed. Cannot modify engine version because instance (instance identifier) is running on an old configuration. Apply any pending maintenance actions on the instance before proceeding with the upgrade.
Si vous rencontrez cette erreur, attendez que l'action en attente soit terminée ou déclenchez immédiatement une fenêtre de maintenance pour laisser la mise à niveau précédente se terminer.
Pour plus d'informations sur la mise à niveau de la version du moteur , consultez Maintenance du cluster de bases de données Amazon Neptune. Si vous avez des questions ou des préoccupations, l'équipe d' AWS assistance est disponible sur les forums de la communauté et via le support AWS Premium