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 predicatiWithout
.WherePredicateStep
con filtri con ambitoPath
ma senza supporto della ricercaByModulation
,SideEffect
oMap
DedupGlobalStep
, ad eccezione del supporto della ricercaByModulation
,SideEffect
eMap
.
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'explain
output 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'profile
output quando il DFE motore è abilitato.
Nota
Poiché il DFE motore è una funzionalità sperimentale rilasciata in modalità lab, il formato esatto dell'profile
output explain
e è soggetto a modifiche.