亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Gremlin 查詢的 Union 方法的使用及其對 Neptune 交易的影響

Gremlin 查詢的 Union 方法的使用及其對 Neptune 交易的影響

暮色呼如 2023-07-28 16:50:50
假設我在 AWS Neptune 上創建了一個圖,并且想要獲取有關某個頂點的多個信息。我使用 union 方法通過以下查詢獲取多個信息,this.graphTraversalSource.V().hasLabel("label1").hasId("id1")                .union(__.valueMap(true) ,__.outE().groupCount().by(T.label).unfold(),                   __.inE("created_post").outV().valueMap(true))簡單來說,查詢試圖獲取以下內容: 1. 頂點本身的屬性。2. 出邊及其計數 3. 創建 id1 帖子的用戶的屬性 上面的查詢返回一個Gremlin-Server 上上述查詢的示例結果如下所示=>{label=label1, id=id1, text=[My sample text]}==>has_comment=1==>has_like=1==>{label=user, id=user1}現在,假設我要用 Java 編寫這些內容,正如您所知,查詢必須以 next() 或 iterate() 結束。如果我輸入 next(),那么將返回上述結果中的第一項。{label=label1, id=id1, text=[My sample text]}。但是,如果我嘗試使用 next(4) 那么我將得到完整的結果?;蛘?,我知道我可以使用next() and hasNext()GraphTraversal 根據需要獲取結果,而無需使用next(4)我擔心提交給海王星的交易,因為根據他們的說法事務 Neptune 在每次 Gremlin 遍歷開始時打開一個新事務,并在成功完成遍歷后關閉事務。當出現錯誤時,事務會回滾。單個事務中包含由分號 (;) 或換行符 (\n) 分隔的多個語句。除最后一條語句之外的每個語句都必須以要執行的 next() 步驟結束。只返回最終的遍歷數據。不支持使用 tx.commit() 和 tx.rollback() 的手動事務邏輯。根據上面的內容,我了解到每個 .next() 語句都會導致在 Neptune 上發生一次 tx。說了這么多,我的問題是,我對海王星交易技術的理解是否屬實?如果是,這是否意味著每次我寫.next()一個事務都會發生?其行為如何.next(int),例如使用是否.next(4)意味著將發生 4 筆交易?我該如何優化這個?使用一次數據庫訪問和一項事務來獲取所有需要的數據?即有沒有更好的方法來滿足我的需求?如何使用一行獲取上述查詢的所有結果?即不使用 hasNext() 和 next() 方法?有沒有辦法知道結果集的大小,從而使用 next(result-set-size) 方法?謝謝哈迪
查看完整描述

1 回答

?
慕容森

TA貢獻1853條經驗 獲得超18個贊

next()您可以通過and之外的多種方式終止遍歷iterate()- 例如toList()抓取所有結果并將它們打包到一個List對象中。我想說這是人們終止遍歷的最常見方式(并且最容易使用),假設您不介意List在客戶端上實現內存中。

由于 Neptune 使用 TinkerPop 驅動程序,我可以說對next()(或toList() or other terminators) on bytecode-based traversals will not trigger additional requests to Neptune and therefore not start new transactions. The call tonext() ,toList()` 的調用以及其他終止步驟對流回客戶端的數據進行操作。

我相信您指出的這部分文檔:

單個事務中包含由分號 (;) 或換行符 (\n) 分隔的多個語句。除最后一條語句之外的每個語句都必須以要執行的 next() 步驟結束。只返回最終的遍歷數據。

與基于腳本的執行相關,并且可能不適用,因為您似乎正在使用基于字節碼的遍歷。


查看完整回答
反對 回復 2023-07-28
  • 1 回答
  • 0 關注
  • 165 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號