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.
Autre moteur de requête (DFE) Amazon Neptune
Amazon Neptune dispose d'un autre moteur de requête, appelé DFE, qui utilise les ressources des instances de base de données telles que les cœurs de CPU, la mémoire et les E/S de manière plus efficace que le moteur Neptune d'origine.
Note
Avec les jeux de données volumineux, le moteur DFE peut ne pas fonctionner correctement sur les instances t3.
Le moteur DFE exécute les requêtes SPARQL, Gremlin et openCypher, et prend en charge une grande variété de types de plans, y compris les arbres linéaires gauches, les arbres « bushy » et les plans hybrides. Les opérateurs de plan peuvent invoquer à la fois des opérations de calcul, qui s'exécutent sur un ensemble réservé de cœurs de calcul, et des opérations d'E/S, chacune s'exécutant sur son propre thread dans un pool de threads d'E/S.
Le DFE utilise des statistiques prégénérées sur les données de votre graphe Neptune pour prendre des décisions éclairées sur la manière de structurer les requêtes. Consultez Statistiques DFE pour en savoir plus sur la façon dont ces statistiques sont générées.
Le choix du type de plan et du nombre de threads de calcul utilisés est effectué automatiquement en fonction des statistiques prégénérées et des ressources disponibles dans le nœud de tête Neptune. L'ordre des résultats n'est pas prédéterminé pour les plans dotés d'un parallélisme de calcul interne.
Contrôle de l'endroit où le moteur DFE Neptune est utilisé
Par défaut, le paramètre neptune_dfe_query_engine d'une instance est défini sur viaQueryHint
, ce qui signifie que le moteur DFE n'est utilisé que pour les requêtes openCypher et pour les requêtes Gremlin et SPARQL qui incluent explicitement l'indicateur de requête useDFE
défini sur true
.
Vous pouvez activer complètement le moteur DFE afin qu'il soit utilisé autant que possible en définissant le paramètre d'instance neptune_dfe_query_engine
sur enabled
.
Vous pouvez également désactiver le DFE en incluant l'indicateur de requête useDFE
pour une requête Gremlin ou une requête SPARQL particulière. Cet indicateur de requête vous permet d'empêcher le DFE d'exécuter cette requête particulière.
Vous pouvez déterminer si le DFE est activé ou non dans une instance à l'aide d'un appel Statut d’une instance, comme ceci :
curl -G https://
your-neptune-endpoint
:port
/status
La réponse de statut indique ensuite si le DFE est activé ou non :
{ "status":"healthy", "startTime":"Wed Dec 29 02:29:24 UTC 2021", "dbEngineVersion":"development", "role":"writer", "dfeQueryEngine":"viaQueryHint", "gremlin":{"version":"tinkerpop-3.5.2"}, "sparql":{"version":"sparql-1.1"}, "opencypher":{"version":"Neptune-9.0.20190305-1.0"}, "labMode":{ "ObjectIndex":"disabled", "ReadWriteConflictDetection":"enabled" }, "features":{ "ResultCache":{"status":"disabled"}, "IAMAuthentication":"disabled", "Streams":"disabled", "AuditLog":"disabled" }, "settings":{"clusterQueryTimeoutInMs":"120000"} }
Les résultats Gremlin explain
et profile
indiquent si une requête est exécutée par le DFE. Voir Informations qui se trouvent dans un rapport Gremlin explain pour explain
et Rapports profile avec le DFE activé pourprofile
.
De même, SPARQL explain
vous indique si une requête SPARQL est exécutée par le DFE. Pour plus d'informations, consultez Exemple de sortie SPARQL explain lorsque le DFE est activé et Opérateur DFENode.
Constructions de requête prises en charge par le DFE Neptune
À l'heure actuelle, le DFE Neptune prend en charge un sous-ensemble de constructions de requêtes SPARQL et Gremlin.
Pour SPARQL, il s'agit du sous-ensemble des modèles de graphes de base
Pour Gremlin, il s'agit généralement du sous-ensemble de requêtes contenant une chaîne de traversées qui ne comporte pas certaines des étapes les plus complexes.
Pour savoir si l'une de vos requêtes est exécutée dans sa totalité ou en partie par le DFE, procédez comme suit :
-
Dans Gremlin, les résultats
explain
etprofile
indiquent quelles parties d'une requête sont exécutées par le DFE, le cas échéant. Voir Informations qui se trouvent dans un rapport Gremlin explain pourexplain
et Rapports profile avec le DFE activé pourprofile
. Consultez aussi Réglage des requêtes Gremlin à l'aide d'explain et de profile.Les détails relatifs à la prise en charge du moteur Neptune pour les différentes étapes Gremlin sont documentés dans Prise en charge des étapes Gremlin.
De même, SPARQL
explain
vous indique si une requête SPARQL est exécutée par le DFE. Pour plus d'informations, consultez Exemple de sortie SPARQL explain lorsque le DFE est activé et Opérateur DFENode.