第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

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

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

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

1 回答

?
慕容森

TA貢獻1853條經(jīng)驗 獲得超18個贊

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

由于 Neptune 使用 TinkerPop 驅(qū)動程序,我可以說對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()` 的調(diào)用以及其他終止步驟對流回客戶端的數(shù)據(jù)進行操作。

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

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

與基于腳本的執(zhí)行相關(guān),并且可能不適用,因為您似乎正在使用基于字節(jié)碼的遍歷。


查看完整回答
反對 回復(fù) 2023-07-28
  • 1 回答
  • 0 關(guān)注
  • 176 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號