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à.
Utilizzo di Gremlin con il motore di query Neptune DFE
Se abiliti il motore di query alternativo di Neptunes noto come DFE in modalità lab (impostando il parametro del cluster neptune_lab_mode
DB suDFEQueryEngine=enabled
), Neptune traduce Gremlin di sola lettura queries/traversals in una rappresentazione logica intermedia e li esegue sul motore DFE quando possibile.
Tuttavia, il motore DFE non supporta ancora tutti i passaggi Gremlin. Quando un passaggio non può essere eseguito in modo nativo sul DFE, Neptune torna a eseguire il passaggio. TinkerPop I report explain
e profile
includono avvisi quando ciò accade.
Nota
A partire dalla versione 1.0.5.0 del motore, quando il DFE incontra uno step che non supporta nativamente, ricorre al motore di base TinkerPop anziché al motore Neptune Gremlin come accadeva in precedenza.
Interleaving della pianificazione delle query
Quando il processo di conversione incontra un passaggio Gremlin che non ha un operatore DFE nativo corrispondente, prima di tornare a usare Tinkerpop cerca di trovare altre parti di query intermedie che possano essere eseguite in modo nativo 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, si potrebbe voler disattivare l'interleaving in una query, continuando a utilizzare il motore DFE per eseguire la parte del prefisso. 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 l'hint di query useDFE con il valore false
impedisce del tutto l'esecuzione di una query sul motore DFE, l'hint di query disableInterleaving
con il valore true
disattiva l'interleaving del motore DFE per la conversione 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. Consultare l'output di esempio di explain del motore DFE per un esempio di come appare l'output di explain
quando il motore DFE è abilitato.
L'API Gremlin profile 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. Consultare l'output di esempio di profile del motore DFE per un esempio di come appare l'output di profile
quando il motore DFE è abilitato.
Nota
Poiché il motore DFE è una funzionalità sperimentale rilasciata in modalità di laboratorio, il formato esatto dell'output di explain
e profile
è soggetto a modifiche.