使用小鬼與 Neptune 查詢引擎 DFE - Amazon Neptune

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用小鬼與 Neptune 查詢引擎 DFE

如果您完全啟用稱為實驗室模式的 Neptune 替代查詢引擎 (透過將 neptune_lab_mode DB 叢集參數設定為DFEQueryEngine=enabled),Neptune 會將唯讀的 Grimlin 查詢/遍歷轉譯為中繼邏輯表示法,並儘可能DFE在引擎上執行它們。DFE

但是,尚DFE未支援所有的小鬼步驟。當步驟無法在本機上執行時DFE,Neptune 會回頭執 TinkerPop 行步驟。explainprofile 報告包含此情況發生時的警告。

注意

引擎版本 1.0.5.0 開始,在沒有原生支援的情況下處理 Gemlin 步驟的預設DFE行為已變更。如果以前DFE發動機倒回 Neptune Grimlin 發動機,現在它回落在香草 TinkerPop 發動機。

由發動機本地支持的小精靈步驟 DFE
  • GraphStep

  • VertexStep

  • EdgeVertexStep

  • IdStep

  • TraversalFilterStep

  • PropertiesStep

  • 支援對屬性和 ID 以及標籤上的頂點和邊緣進行 HasStep 篩選,但文字和 Without 述詞除外。

  • WherePredicateStep (含 Path 範圍篩選條件),但沒有 ByModulationSideEffectMap 查詢支援

  • DedupGlobalStep,但 ByModulationSideEffectMap 查詢支援除外。

查詢規劃交錯

當翻譯過程遇到沒有對應的本機運DFE算符的 Gemlin 步驟時,在回到使用 Tinkerpop 之前,它會嘗試找到其他可以在引擎上以原生方式運行的中間查詢部件。DFE它透過將交錯邏輯應用到頂層周遊來執行此操作。結果是盡可能使用支援的步驟。

任何此類中繼、非字首查詢轉換都會在 explainprofile 輸出中使用 NeptuneInterleavingStep 來表示。

為了進行效能比較,您可能想要關閉查詢中的交錯,同時仍使用DFE引擎來執行前綴部分。或者,您可能只希望使用引 TinkerPop 擎執行非前綴查詢。您可以使用 disableInterleaving 查詢提示來做到這一點。

正如具有值的使用 DFE查詢提示可以false防止查詢DFE在所有上執行一樣,disableInterleaving查詢提示值為關true閉DFE交錯查詢翻譯。例如:

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

已更新 Gremlin explainprofile 輸出

Gemlin explain 會提供有關 Neptune 用來執行查詢的最佳化周遊的詳細資訊。如需啟用DFE引擎時DFEexplain輸explain出的範例,請參閱範例輸出。

小精靈 profile API 會執行指定的 Gemlin 周遊、收集有關執行的各種指標,以及產生設定檔報告,其中包含有關最佳化的查詢計畫和各種運算子的執行期統計資料的詳細資訊。如需啟用DFE引擎時profile輸出的範DFEprofile例,請參閱範例輸出。

注意

由於DFE引擎是在實驗室模式下發行的實驗性功能,因此explainprofile輸出的確切格式可能會有所變更。