本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用小鬼與 Neptune 查詢引擎 DFE
如果您完全啟用稱為實驗室模式的 Neptune 替代查詢引擎 (透過將 neptune_lab_mode
DB 叢集參數設定為DFEQueryEngine=enabled
),Neptune 會將唯讀的 Grimlin 查詢/遍歷轉譯為中繼邏輯表示法,並儘可能DFE在引擎上執行它們。DFE
但是,尚DFE未支援所有的小鬼步驟。當步驟無法在本機上執行時DFE,Neptune 會回頭執 TinkerPop 行步驟。explain
和 profile
報告包含此情況發生時的警告。
注意
從引擎版本 1.0.5.0 開始,在沒有原生支援的情況下處理 Gemlin 步驟的預設DFE行為已變更。如果以前DFE發動機倒回 Neptune Grimlin 發動機,現在它回落在香草 TinkerPop 發動機。
由發動機本地支持的小精靈步驟 DFE
GraphStep
VertexStep
EdgeVertexStep
IdStep
TraversalFilterStep
PropertiesStep
支援對屬性和 ID 以及標籤上的頂點和邊緣進行
HasStep
篩選,但文字和Without
述詞除外。WherePredicateStep
(含Path
範圍篩選條件),但沒有ByModulation
、SideEffect
或Map
查詢支援DedupGlobalStep
,但ByModulation
、SideEffect
和Map
查詢支援除外。
查詢規劃交錯
當翻譯過程遇到沒有對應的本機運DFE算符的 Gemlin 步驟時,在回到使用 Tinkerpop 之前,它會嘗試找到其他可以在引擎上以原生方式運行的中間查詢部件。DFE它透過將交錯邏輯應用到頂層周遊來執行此操作。結果是盡可能使用支援的步驟。
任何此類中繼、非字首查詢轉換都會在 explain
和 profile
輸出中使用 NeptuneInterleavingStep
來表示。
為了進行效能比較,您可能想要關閉查詢中的交錯,同時仍使用DFE引擎來執行前綴部分。或者,您可能只希望使用引 TinkerPop 擎執行非前綴查詢。您可以使用 disableInterleaving
查詢提示來做到這一點。
正如具有值的使用 DFE查詢提示可以false
防止查詢DFE在所有上執行一樣,disableInterleaving
查詢提示值為關true
閉DFE交錯查詢翻譯。例如:
g.with('Neptune#disableInterleaving', true) .V().has('genre','drama').in('likes')
已更新 Gremlin explain
和 profile
輸出
Gemlin explain 會提供有關 Neptune 用來執行查詢的最佳化周遊的詳細資訊。如需啟用DFE引擎時DFEexplain輸explain出的範例,請參閱範例輸出。
小精靈 profile API 會執行指定的 Gemlin 周遊、收集有關執行的各種指標,以及產生設定檔報告,其中包含有關最佳化的查詢計畫和各種運算子的執行期統計資料的詳細資訊。如需啟用DFE引擎時profile
輸出的範DFEprofile例,請參閱範例輸出。
注意
由於DFE引擎是在實驗室模式下發行的實驗性功能,因此explain
和profile
輸出的確切格式可能會有所變更。