Autre moteur de requête (DFE) Amazon 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.

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 conjonctifs.

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 :