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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

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

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

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

1 回答

?
慕容森

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個(gè)贊

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

由于 Neptune 使用 TinkerPop 驅(qū)動(dòng)程序,我可以說(shuō)對(duì)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)用以及其他終止步驟對(duì)流回客戶端的數(shù)據(jù)進(jìn)行操作。

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

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

與基于腳本的執(zhí)行相關(guān),并且可能不適用,因?yàn)槟坪跽谑褂没谧止?jié)碼的遍歷。


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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