Le moteur de requêtes alternatif (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.

Le moteur de requêtes alternatif (DFE) Amazon Neptune

Amazon Neptune dispose d'un moteur de requêtes alternatif appelé DFE qui utilise les ressources des instances de base de données telles que les cœurs de processeur, la mémoire et les E/S de manière plus efficace que le moteur Neptune d'origine.

Note

La prise en Support d'OpenCypher dépend du moteur de requête DFE de Neptune.

Le moteur DFE a été disponible pour la première fois en mode laboratoire enVersion 1.0.3.0 du moteur Neptune, et en commençant parVersion 1.0.5.0 du moteur Neptune, il est devenu activé par défaut, mais uniquement pour être utilisé avec les indices de requête et pour le support d'OpenCrypher.

Commence parVersion 1.1.1.0 du moteur Neptunele moteur DFE n'est plus en mode laboratoire et est désormais contrôlé à l'aide duneptune_dfe_query_engineparamètre d'instance dans le groupe de paramètres de base de données d'une instance.

Note

Avec des ensembles de données volumineux, le moteur DFE peut ne pas fonctionner correctement sur les instances t3.

Le moteur DFE exécute des requêtes SPARQL, Gremlin et OpenCypher et prend en charge une grande variété de types de plans, y compris les plans à gauche, les plans touffus 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 concernant vos données graphiques Neptune pour prendre des décisions éclairées sur la manière de structurer les requêtes. VoirStatistiques du DFEpour plus d'informations sur la manière dont ces statistiques sont générées.

Le choix du type de plan et du nombre de threads de calcul utilisés se fait automatiquement sur la base de statistiques prégénérées et des ressources disponibles dans le nœud principal 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 Neptune DFE est utilisé

Par défaut, leneptune_dfe_query_enginele paramètre d'instance d'une instance est défini surviaQueryHint, ce qui entraîne l'utilisation du moteur DFE uniquement pour les requêtes OpenCypher et pour les requêtes Gremlin et SPARQL qui incluent explicitementuseDFEindice de requête défini surtrue.

Vous pouvez activer complètement le moteur DFE afin qu'il soit utilisé dans la mesure du possible en réglantneptune_dfe_query_engineparamètre d'instance pourenabled.

Vous pouvez également désactiver le DFE en incluant leuseDFEindice de requête pour un particulierrequête Gremlinourequête SPARQL. Cette astuce de requête vous permet d'empêcher le DFE d'exécuter cette requête en particulier.

Vous pouvez déterminer si le DFE est activé ou non dans une instance à l'aide d'unStatut d’une instanceAppelez, comme suit :

curl -G https://your-neptune-endpoint:port/status

La réponse d'état 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"} }

Le Gremlinexplainetprofileles résultats vous indiquent si une requête est en cours d'exécution par le DFE. VoirInformations contenues dans un GremlinexplainrapportpourexplainetDFEprofilerapportspourprofile.

De même, SPARQLexplainvous indique si une requête SPARQL est en cours d'exécution par le DFE. VoirExemple de SPARQLexplainsortie lorsque le DFE est activéetDFENodeopérateurpour plus d'informations.

Constructions de requêtes prises en charge par le Neptune DFE

Actuellement, le Neptune DFE prend en charge un sous-ensemble de constructions de requêtes SPARQL et Gremlin.

Pour SPARQL, il s'agit du sous-ensemble de la conjonctivemodèles graphiques 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 contiennent pas certaines des étapes les plus complexes.

Pour savoir si l'une de vos requêtes est exécutée en tout ou en partie par le DFE, procédez comme suit :