本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
最佳實務:發揮 Neptune 的最大功用
以下是使用 Amazon Neptune 的一些一般建議。使用這裡的參考資訊,快速找到使用 Amazon Neptune 並將效能發揮到最高的建議。
內容
- Amazon Neptune 基本操作準則
- 使用 Gremlin 搭配 Neptune 的一般最佳實務
- 使用 Gremlin Java 用戶端搭配 Neptune 的最佳實務
- 請使用最新版本的 Apache TinkerPop Java 客戶端
- 跨多個執行緒重複使用用戶端物件
- 為讀取和寫入端點建立個別的 Gremlin Java 用戶端物件
- 將多個僅供讀取複本端點新增至 Gremlin Java 連線集區
- 關閉用戶端以避免連線限制
- 在容錯移轉之後建立新連線
- 將 maxInProcessPerConnection 和 maxSimultaneousUsagePerConnection 設定為相同值。
- 將查詢以位元碼形式而非字串形式傳送至伺服器
- 始終完全消耗查詢返回的 ResultSet 或迭代器
- 在批次中大量新增頂點和邊緣
- 停用 Java 虛擬機器中的DNS快取
- 或者,也可以在每個查詢層級設定逾時
- java.util.concurrent.TimeoutException 疑難排解
- Neptune 最佳實務使用 openCypher 和 Bolt
- 在容錯移轉之後建立新連線
- 適用於長期命應用的連線處理
- 的連線處理 AWS Lambda
- 偏好查詢中的定向至雙向邊緣
- Neptune 不支援交易中的多個並行查詢
- 完成後關閉驅動程式物件
- 使用明確的交易模式進行讀取和寫入
- 例外狀況的重試邏輯
- 使用單一SET子句一次設定多個屬性
- 使用參數化查詢
- 在UNWIND子句中使用平面地圖,而不是巢狀地圖
- 在變數長度路徑 (VLP) 表達式中,將更嚴格的節點放在左側
- 使用精細的關係名稱,避免多餘節點標籤檢查
- 盡可能指定邊緣標籤
- 盡可能避免使用 WITH 子句
- 在查詢中儘早放置限制性篩選條件
- 明確檢查是否存在屬性
- 請勿使用具名路徑 (除非必要)
- 避免 COLLECT(DISTINCT())
- 擷取所有屬性值時,偏好透過個別屬性查詢的屬性函數
- 在查詢之外執行靜態運算
- 使用 UNWIND 而非個別陳述式的批次輸入
- 偏好使用自訂IDs的節點/關係
- 避免在查詢中進行 ~id 運算
- Neptune 最佳實務使用 SPARQL