Usare Gremlin con il motore di interrogazione Neptune DFE - Amazon Neptune

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Usare Gremlin con il motore di interrogazione Neptune DFE

Se abiliti completamente il motore di query alternativo Neptune noto come modalità in lab (impostando DFE il parametro del cluster DB su), Neptune traduce neptune_lab_mode le DFEQueryEngine=enabled interrogazioni/traversals Gremlin di sola lettura in una rappresentazione logica intermedia e le esegue sul motore quando possibile. DFE

DFETuttavia, non supporta ancora tutti i passaggi di Gremlin. Quando un passaggio non può essere eseguito nativamente suDFE, Neptune torna indietro per eseguire TinkerPop il passaggio. I report explain e profile includono avvisi quando ciò accade.

Nota

A partire dalla versione 1.0.5.0 del motore, il DFE comportamento predefinito per la gestione dei passaggi di Gremlin senza supporto nativo è cambiato. Dove in precedenza il DFE motore ripiegava sul motore Neptune Gremlin, ora si ripiega sul motore vanigliato. TinkerPop

Fasi Gremlin che sono supportate nativamente dal motore DFE
  • GraphStep

  • VertexStep

  • EdgeVertexStep

  • IdStep

  • TraversalFilterStep

  • PropertiesStep

  • Supporto del filtro HasStep per vertici e archi su proprietà, ID ed etichette, ad eccezione di testo e predicati Without.

  • WherePredicateStep con filtri con ambito Path ma senza supporto della ricerca ByModulation, SideEffect o Map

  • DedupGlobalStep, ad eccezione del supporto della ricerca ByModulation, SideEffect e Map.

Interleaving della pianificazione delle query

Quando il processo di traduzione incontra una fase di Gremlin che non ha un DFE operatore nativo corrispondente, prima di tornare a usare Tinkerpop cerca di trovare altre parti intermedie di interrogazione che possano essere eseguite nativamente sul motore. DFE Lo fa applicando la logica di interleaving all'attraversamento di livello superiore. Il risultato è che i passaggi supportati vengono utilizzati laddove possibile.

Tale conversione di query intermedia, senza prefisso viene rappresentata utilizzando NeptuneInterleavingStep negli output di explain e profile.

Per confrontare le prestazioni, potreste voler disattivare l'interlacciamento in una query, continuando a utilizzare il motore per eseguire la parte relativa al prefisso. DFE In alternativa, potresti voler utilizzare solo il TinkerPop motore per l'esecuzione di query senza prefisso. A tale scopo, utilizzare l'hint di query disableInterleaving.

Proprio come il suggerimento di uso DFE interrogazione con un valore pari a false impedisce del tutto l'esecuzione di una query, il suggerimento DFE alla disableInterleaving query con un valore pari a true disattiva l'DFEinterlacciamento per la traduzione di una query. Per esempio:

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

Output aggiornato di explain e profile di Gremlin

Gremlin explain fornisce dettagli sull'attraversamento ottimizzato utilizzato da Neptune per eseguire una query. Guardate l'DFEexplainoutput di esempio per un esempio di come appare l'explainoutput quando il DFE motore è abilitato.

L'Gremlin profile API esegue un attraversamento Gremlin specificato, raccoglie varie metriche sull'esecuzione e produce un report di profile che contiene dettagli sul piano di interrogazione ottimizzato e sulle statistiche di runtime di vari operatori. Vedi l'DFEprofileoutput di esempio per un esempio di come appare l'profileoutput quando il DFE motore è abilitato.

Nota

Poiché il DFE motore è una funzionalità sperimentale rilasciata in modalità lab, il formato esatto dell'profileoutput explain e è soggetto a modifiche.