Usando o Gremlin com o mecanismo de consulta Neptune DFE - Amazon Neptune

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usando o Gremlin com o mecanismo de consulta Neptune DFE

Se você habilitar totalmente o mecanismo de consulta alternativo do Neptune, conhecido como modo de laboratório (definindo DFE o parâmetro do cluster de banco de dados como), neptune_lab_mode o Neptune DFEQueryEngine=enabled traduzirá consultas/travessias do Gremlin somente para leitura em uma representação lógica intermediária e as executará no mecanismo sempre que possível. DFE

No entanto, o ainda DFE não suporta todas as etapas do Gremlin. Quando uma etapa não pode ser executada nativamente noDFE, Neptune volta TinkerPop a executá-la. Os relatórios explain e profile incluem avisos quando isso acontece.

nota

A partir da versão 1.0.5.0 do motor, o DFE comportamento padrão para lidar com etapas do Gremlin sem suporte nativo mudou. Onde antes o DFE motor recaía sobre o motor Neptune Gremlin, agora ele volta para o motor vanilla. TinkerPop

Etapas do Gremlin que são suportadas nativamente pelo motor DFE
  • GraphStep

  • VertexStep

  • EdgeVertexStep

  • IdStep

  • TraversalFilterStep

  • PropertiesStep

  • Suporte de filtragem HasStep para vértices e bordas em propriedades, IDs e rótulos, com exceção de texto e predicados Without.

  • WherePredicateStep com filtros com escopo de Path definido, mas sem suporte a pesquisa ByModulation, SideEffect ou Map

  • DedupGlobalStep, exceto suporte a pesquisa ByModulation, SideEffect e Map.

Intercalação do planejamento de consultas

Quando o processo de tradução encontra uma etapa do Gremlin que não tem um DFE operador nativo correspondente, antes de voltar a usar o Tinkerpop, ele tenta encontrar outras partes intermediárias da consulta que possam ser executadas nativamente no mecanismo. DFE Ele faz isso aplicando a lógica de intercalação ao percurso de nível superior. O resultado é que as etapas compatíveis são usadas sempre que possível.

Qualquer conversão de consulta intermediária, sem prefixo, é representada usando as saídas NeptuneInterleavingStep, explain e profile.

Para comparação de desempenho, talvez você queira desativar a intercalação em uma consulta e ainda usar o DFE mecanismo para executar a parte do prefixo. Ou talvez você queira usar somente o TinkerPop mecanismo para execução de consultas sem prefixo. Você pode fazer isso usando a dica de consulta disableInterleaving.

Assim como a dica de uso DFE consulta com um valor de false impede que uma consulta seja executada no, a DFE dica de disableInterleaving consulta com um valor de true desativa a DFE intercalação para tradução de uma consulta. Por exemplo:

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

Atualização da saída explain e profile do Gremlin

O explain do Gremlin fornece detalhes sobre o percurso otimizado que o Neptune usa para executar uma consulta. Veja o exemplo DFE explain de saída para ver um exemplo da aparência da explain saída quando o DFE mecanismo está ativado.

O Gremlin profile API executa um percurso especificado do Gremlin, coleta várias métricas sobre a execução e produz um relatório de perfil que contém detalhes sobre o plano de consulta otimizado e as estatísticas de runtime de vários operadores. Veja um exemplo DFE profile de saída para ver um exemplo da aparência da profile saída quando o DFE mecanismo está ativado.

nota

Como o DFE mecanismo é um recurso experimental lançado no modo de laboratório, o formato exato da profile saída explain e está sujeito a alterações.