Uso de Gremlin con el motor de consultas de Neptune DFE - Amazon Neptune

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de Gremlin con el motor de consultas de Neptune DFE

Si habilita completamente el motor de consultas alternativo de Neptuno, conocido como modo laboratorio (configurando el parámetro del neptune_lab_mode clúster de base de datos DFE enDFEQueryEngine=enabled), Neptune traduce las consultas/recorridos de Gremlin de solo lectura en una representación lógica intermedia y las ejecuta en el motor siempre que sea posible. DFE

Sin embargo, todavía no admite todos los pasos de Gremlin. DFE Cuando un paso no se puede ejecutar de forma nativa en elDFE, Neptune recurre a él para ejecutar el TinkerPop escalón. Los informes explain y profile incluyen advertencias cuando esto ocurre.

nota

A partir de la versión 1.0.5.0 del motor, ha cambiado el DFE comportamiento predeterminado para gestionar los pasos de Gremlin sin soporte nativo. Mientras que antes el DFE motor recaía sobre el motor Neptune Gremlin, ahora vuelve a caer sobre el motor vainilla. TinkerPop

Escalones Gremlin compatibles de forma nativa con el motor DFE
  • GraphStep

  • VertexStep

  • EdgeVertexStep

  • IdStep

  • TraversalFilterStep

  • PropertiesStep

  • Compatibilidad de HasStep para filtrar vértices y bordes en propiedades, identificadores y etiquetas, con la excepción del texto y los predicados Without.

  • WherePredicateStep con filtros Path de ámbito limitado, pero sin compatibilidad de búsqueda de ByModulation, SideEffect o Map.

  • DedupGlobalStep, excepto la compatibilidad de búsqueda de ByModulation, SideEffect y Map.

Intercalación de planificación de consultas

Cuando el proceso de traducción encuentra un paso de Gremlin que no tiene un DFE operador nativo correspondiente, antes de volver a utilizar Tinkerpop, intenta encontrar otras partes intermedias de la consulta que se puedan ejecutar de forma nativa en el motor. DFE Para ello, aplica la lógica de intercalado al recorrido de nivel superior. El resultado es que, siempre que es posible, se utilizan pasos compatibles.

Cualquier conversión de consultas intermedias sin prefijo se representa mediante NeptuneInterleavingStep en las salidas explain y profile.

Para comparar el rendimiento, es posible que desees desactivar el intercalado en una consulta y, al mismo tiempo, seguir utilizando el DFE motor para ejecutar la parte del prefijo. O bien, puede que desee utilizar solo el TinkerPop motor para la ejecución de consultas sin prefijo. Puede hacerlo mediante la sugerencia de consulta disableInterleaving.

Del mismo modo que la sugerencia de usar DFE consulta con un valor de false impide en DFE absoluto que se ejecute una consulta, la sugerencia de disableInterleaving consulta con un valor de true desactiva el DFE intercalado para la traducción de una consulta. Por ejemplo:

g.with('Neptune#disableInterleaving', true) .V().has('genre','drama').in('likes')

Se ha actualizado la salida explain y profile de Gremlin

explain de Gremlin proporciona detalles sobre el recorrido optimizado que Neptune utiliza para ejecutar una consulta. Consulte el ejemplo DFE explain de salida para ver un ejemplo de cómo se ve la explain salida cuando el DFE motor está activado.

Gremlin profile API ejecuta un recorrido de Gremlin específico, recopila varias métricas sobre la ejecución y produce un informe de profile que contiene detalles sobre el plan de consultas optimizado y las estadísticas de tiempo de ejecución de varios operadores. Consulte un ejemplo DFE profile de salida para ver un ejemplo de cómo se ve la profile salida cuando el DFE motor está activado.

nota

Como el DFE motor es una función experimental lanzada en modo laboratorio, el formato exacto de la profile salida explain y está sujeto a cambios.