版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1圖數(shù)據(jù)庫(kù)組會(huì)匯報(bào)報(bào)告人2024年09月25日任務(wù)進(jìn)度
徐柴俊工作進(jìn)度Introduction:動(dòng)機(jī)、方法介紹、例子、貢獻(xiàn)Preliminaries:屬性圖模型、查詢語(yǔ)言、PatternGraphRelatedWork:關(guān)系型數(shù)據(jù)庫(kù)、圖數(shù)據(jù)庫(kù)3徐柴俊工作進(jìn)度Introduction例子視圖創(chuàng)建視圖維護(hù)4n:Commentm:Postr:replyOf*..n:Commentm:Postr:ROOT_POSTn:Comment{id:1}m:Postr:replyOf*..n:Commentm:Postr1:replyOf*..:Comment{id:1}r2:replyOf*0..徐柴俊工作進(jìn)度Introduction例子使用視圖優(yōu)化查詢5c:Commentp:Postr1:replyOf*..f:Forumr2:containerOfc:Commentp:Post@M_r1:ROOT_POSTf:Forumr2:containerOf魏星迪工作進(jìn)度為了在Neo4j里測(cè)試優(yōu)化效果,要把使用視圖優(yōu)化后的PatternGraph反向重寫(xiě)為Cypher語(yǔ)句。比如match(n:Comment)?[r:replyOf?1..]?>(m:Post)returnn,m這里有兩個(gè)replyOf?1..可以用ROOT_POST優(yōu)化,可以重寫(xiě)為match(n:Comment)?[r:ROOT_POST]?>(m:Post)returnn,m輸出為優(yōu)化后的查詢語(yǔ)句,測(cè)試時(shí)在需要優(yōu)化的Cypher語(yǔ)句前加上Optimize即可,比如在tugraph中輸入Cypher語(yǔ)句:Optimizematch(n:Comment)?[r:replyOf?1..]?>(m:Post)returnn,m應(yīng)該返回match(n:Comment)?[r:ROOTPOST]?>(m:Post)returnn,mPatterngraphMatch(m)-[r:keyword]->(n),(a)-[z:test]->(b)Anticypher魏星迪工作進(jìn)度Tugraphcypher處理過(guò)程魏星迪工作進(jìn)度函數(shù)的輸入為cypher::RTContext?ctx,antlr4::tree::ParseTree?tree,conststd::vector<cypher::PatternGraph>&pattern_graphs,這里的&patterngraphs是優(yōu)化后的PatternGraphs函數(shù)的輸入例如這個(gè)patterngraph其中含有的nodes:m,n,a,b其中含有的relationships: r:keyword z:test此時(shí)通過(guò)遍歷patterngraph應(yīng)該得到的cypher語(yǔ)句應(yīng)該是Match(m)-[r:keyword]->(n),(a)-[z:test]->(b)其中r:keyword和z:test可能是通過(guò)視圖優(yōu)化后的邊。
魏星迪工作進(jìn)度Neo4j視圖維護(hù)借用neo4j擴(kuò)展apoc觸發(fā)器來(lái)維護(hù)視圖match(n:Comment)-[:replyOf*..]->(m:Post)WITHn,mCREATE(n)-[r:ROOT_POST]->(m)魏星迪工作進(jìn)度Neo4j視圖維護(hù)借用neo4j擴(kuò)展apoc觸發(fā)器來(lái)維護(hù)視圖{
"match(n:Comment)-[:replyOf*..]->(m:Post)WITHn,mCREATE(n)-[r:ROOT_POST]->(m)":[
[
"match(n:Comment)-[*0]-(viewvetex)-[:replyOf*..]->(m:Post)WITHn,mmatch(n)-[r:ROOT_POST]->(m)WITHn,m,collect(r)asviewdeleteview[0]",
"match(n:Comment)-[:replyOf*..]->(m:Post)-[*0]-(viewvetex)WITHn,mmatch(n)-[r:ROOT_POST]->(m)WITHn,m,collect(r)asviewdeleteview[0]",
"match(n:Comment)-[:replyOf*1..]->(viewvetex)->[:replyOf*0..]->(m:Post)WITHn,mmatch(n)-[r:ROOT_POST]->(m)WITHn,m,collect(r)asviewdeleteview[0]"
],
[
"match(n:Comment)-[:replyOf*0..]->()-[viewedge:replyOf]->()-[:replyOf*0..]->(m:Post)WITHn,mCREATE(n)-[r:ROOT_POST]->(m)"
],
[
"match(n:Comment)-[:replyOf*0..]->()-[viewedge:replyOf]->()-[:replyOf*0..]->(m:Post)WITHn,mmatch(n)-[r:ROOT_POST]->(m)WITHn,m,collect(r)asviewdeleteview[0]"
]
]}rewrite_cypher.json魏星迪工作進(jìn)度Neo4j視圖維護(hù)借用neo4j擴(kuò)展apoc觸發(fā)器來(lái)維護(hù)視圖CALLapoc.trigger.add('triggerOnEdgeDelete','UNWIND$deletedRelationshipsASviewedge//只匹配isview屬性為空的邊WITHviewedgeWHEREviewedge.isviewISNULLMATCH(n:Comment)-[:replyOf*0..]->()-[viewedge:replyOf]->()-[:replyOf*0..]->(m:Post)WITHn,mMATCH(n)-[r:ROOT_POST]->(m)WITHn,m,collect(r)ASviewDELETEview[0]',{phase:"before"})魏星迪工作進(jìn)度目前進(jìn)度修改了tugraph中的視圖維護(hù)語(yǔ)句邏輯,從特定點(diǎn)和邊的語(yǔ)句改成了模板類(lèi)型,訪問(wèn)器只需要接受視圖語(yǔ)句便可以輸出針對(duì)該視圖的重寫(xiě)語(yǔ)句neo4j的視圖維護(hù)部分增添邊部分可以成功維護(hù)借助apoc.trigger,并且可以通過(guò)python腳本完成多個(gè)視圖觸發(fā)語(yǔ)句的部署問(wèn)題在刪除部分,本來(lái)添加了一條屬性{isview}防止其遞歸調(diào)用觸發(fā)器,在手動(dòng)測(cè)試維護(hù)邏輯,可以正常維護(hù),但apoc.trigger在刪除時(shí),phase選用before,neo4j也會(huì)認(rèn)為邊已被刪除,導(dǎo)致后續(xù)維護(hù)邏輯無(wú)法進(jìn)行。CALLapoc.trigger.install('myTrigger','UNWIND$deletedRelationshipsASrWITHrWHERENOTr.is_view=true//視圖維護(hù)語(yǔ)句.....
魏星迪工作進(jìn)度neo4j測(cè)試方法框圖魏星迪工作進(jìn)度rewrite_visitor模塊:根據(jù)保存在test_in.txt中的視圖創(chuàng)建語(yǔ)句,生成其對(duì)應(yīng)的視圖維護(hù)語(yǔ)句,其中包括刪除
點(diǎn),增加邊,刪除邊的維護(hù)語(yǔ)句。輸入:視圖創(chuàng)建語(yǔ)句輸出output.json,視圖維護(hù)語(yǔ)句魏星迪工作進(jìn)度rewrite_visitor生成規(guī)則:對(duì)于點(diǎn)的刪除,要將可變長(zhǎng)的邊進(jìn)行展開(kāi)再討論node的位置,對(duì)于一條可變長(zhǎng)邊[?x..y]可將其展開(kāi)為:?Match(n)?[?0]?>(k)?[?x..y]?>(m)?Match(n)?[?1]?>(k)?[?{x?1..{y?1]?>(m)...?Match(n)?[x]?>(k)?[?0..{y?x}
]?>(m)?Match(n)?[?{x+1}]?>(k)?[?0..{y?x?1]?>(m)...?Match(n)?[?y]?>(k)?[?0]?>(m)----------------------------------------------------?Match(n)?[?0]?>(k)?[?{x?1}..]?>(m)?Match(n)?[?1]?>(k)?[?{x?2}..]?>(m)...?Match(n)?[?x..]?>(k)?[?0..]?>(m)對(duì)于無(wú)上界的可變長(zhǎng)邊[?x..]可將其展開(kāi)為:?Match(n)?[*0]?>(src)?[r]?>(dst)?[*{x?1}..]?>(m)?Match(n)?[*1]?>(src)?[r]?>(dst)?[*{x?2}..]?>(m)...?Match(n)?[*i]?>(src)?[r]?>(dst)?[*{x?1?i}..]?>(m)...?Match(n)?[*{x?1}..]?>(src)?[r]?>(dst)?[*0..]?>(m)對(duì)于有上界的可變長(zhǎng)邊[*x..y]可將其展開(kāi)為:?Match(n)?[*0]?>(src)?[r]?>(dst)?[*{x?1}..{y?1}]?>(m)?Match(n)?[*1]?>(src)?[r]?>(dst)?[*{x?2}..{y?2}]?>(m)...?Match(n)?[*i]?>(src)?[r]?>(dst)?[*{x?1?i}..{y?1?i}]?>(m)...?Match(n)?[*{x?1}]?>(src)?[r]?>(dst)?[*0..{y?x}]?>(m)?Match(n)?[*x]?>(src)?[r]?>(dst)?[*0..{y?x?1}]?>(m)...?Match(n)?[*{y?1}]?>(src)?[r]?>(dst)?[*0]?>(m)魏星迪工作進(jìn)度rewrite_visitor模塊:例:test_in.txt->”match(n:Comment)-[:replyOf*..]->(m:Post)WITHn,mCREATE(n)-[r:ROOT_POST]->(m)”output.json:{"match(n:Comment)-[:replyOf*..]->(m:Post)WITHn,mCREATE(n)-[r:ROOT_POST]->(m)":[[
"optionalmatch(n:Comment)-[*0]-(viewvetex)-[:replyOf*..]->(m:Post)WITHn,m,viewvetexoptionalmatch(n)-[r:ROOT_POST]->(m)WITHn,m,viewvetex,collect(r)asviewdeleteview[0]",
"optionalmatch(n:Comment)-[:replyOf*..]->(m:Post)-[*0]-(viewvetex)WITHn,m,viewvetexoptionalmatch(n)-[r:ROOT_POST]->(m)WITHn,m,viewvetex,collect(r)asviewdeleteview[0]","optionalmatch(n:Comment)-[:replyOf*1..]->(viewvetex)->[:replyOf*0..]->(m:Post)WITHn,m,viewvetexoptionalmatch(n)-[r:ROOT_POST]->(m)WITHn,m,viewvetex,collect(r)asviewdeleteview[0]"],[
"optionalmatch(n:Comment)-[:replyOf*0..]->()-[viewedge:replyOf]->()-[:replyOf*0..]->(m:Post)WITHn,m,viewedgeCREATE(n)-[r:ROOT_POST]->(m)"],["optionalmatch(n:Comment)-[:replyOf*0..]->()-[viewedge:replyOf]->()-[:replyOf*0..]->(m:Post)WITHn,m,viewedgeoptionalmatch(n)-[r:ROOT_POST]->(m)WITHn,m,viewedge,collect(r)asviewdeleteview[0]"]]}魏星迪工作進(jìn)度neo4j_test模塊:根據(jù)保存在output.json中的rewrite_visitor的輸出也就是
視圖維護(hù)語(yǔ)句以及需要運(yùn)行的cypher語(yǔ)句(可以選擇將
其保存在input.txt中)產(chǎn)生新的附帶有視圖維護(hù)語(yǔ)句的實(shí)
際執(zhí)行語(yǔ)句。輸入:視圖維護(hù)語(yǔ)句,需要運(yùn)行的cypher語(yǔ)句輸出new_cypher->帶有視圖維護(hù)語(yǔ)句的cypher語(yǔ)句魏星迪工作進(jìn)度neo4j_test模塊:new_cypher生成規(guī)則:在neo4j_test中定義了如圖中的四個(gè)列表,分別為view(保
存視圖創(chuàng)建語(yǔ)句),delete_nodes(保存視圖刪除點(diǎn)的維護(hù)
語(yǔ)句),add_relas(添加邊的維護(hù)語(yǔ)句),delete_relas
(刪除邊的維護(hù)語(yǔ)句)。其結(jié)果由其中的輸入(output.
json)得到。根據(jù)input.txt中取得的cypher語(yǔ)句中的不同關(guān)鍵字如,delete,create來(lái)判別此條cypher語(yǔ)句的目的,并且由此得到不同的添加了視圖維護(hù)語(yǔ)句的new_cypher。test_cypher+$connection_cypher+$UNWIND+∑withviewedge+add_relas[i]ifadd_relasnew_cypher=
$connection_cypher+$UNWIND+∑withviewedge+dele_relas[i]+test_cypherifdele_relas
$connection_cypher+$UNWIND+∑withviewvetex+dele_node[i]+test_cypherifdele_nodesconnection_cypher=with[vars]asdeviewsUNWIND=UNWINDdeviewsasviewedge/viewvetexnew_cypher生成實(shí)例add_relasdelete_relasdelete_nodesoptionalmatch(n:Comment)-[:replyOf*0..]->()-[viewedge:replyOf]->()-[:replyOf*0..]->(m:Post)WITHn,m,viewedgeCREATE(n)-[r:ROOT_POST]->(m)optionalmatch(n:Comment)-[:replyOf*0..]->()-[viewedge:replyOf]->()-[:replyOf*0..]->(m:Post)WITHn,m,viewedgeoptionalmatch(n)-[r:ROOT_POST]->(m)WITHn,m,viewedge,collect(r)asviewdeleteview[0]
"optionalmatch(n:Comment)-[*0]-(viewvetex)-[:replyOf*..]->(m:Post)WITHn,m,viewvetexoptionalmatch(n)-[r:ROOT_POST]->(m)WITHn,m,viewvetex,collect(r)asviewdeleteview[0]","optionalmatch(n:Comment)-[:replyOf*..]->(m:Post)-[*0]-(viewvetex)WITHn,m,viewvetexoptionalmatch(n)-[r:ROOT_POST]->(m)WITHn,m,viewvetex,collect(r)asviewdeleteview[0]","optionalmatch(n:Comment)-[:replyOf*1..]->(viewvetex)->[:replyOf*0..]->(m:Post)WITHn,m,viewvetexoptionalmatch(n)-[r:ROOT_POST]->(m)WITHn,m,viewvetex,collect(r)asviewdeleteview[0]"test_cyphernew_cyphermatch(n:Comment{CommentId:"2061584302086"})-[r:replyOf]->(m:Post{id:"2061584302084"})withrlimit1deletermatch(n:Comment{CommentId:"2061584302086"})-[r:replyOf]->(m:Post{id:"2061584302084"})withrlimit1WITH[r]asdeleviewsUNWINDdeleviewsasviewedgeoptionalmatch(n:Comment)-[:replyOf*0..]->()-[viewedge:replyOf]->()-[:replyOf*0..]->(m:Post)WITHn,m,viewedgeoptionalmatch(n)-[r:ROOT_POST]->(m)WITHn,m,viewedge,collect(r)asviewdeleteview[0]withviewedgematch(n:Comment{CommentId:"2061584302086"})-[r:replyOf]->(m:Post{id:"2061584302084"})withrlimit1deletermatch(n:Comment{CommentId:\"2061584302086\"}),(m:Post{id:\"2061584302084\"})withn,mcreate(n)-[:replyOf{creationDate:1266604713724}]->(m)match(n:Comment{CommentId:\"2061584302086\"}),(m:Post{id:\"2061584302084\"})withn,mcreate(n)-[r:replyOf{creationDate:1266604713724}]->(m)WITH[r]ascreateviewsUNWINDcreateviewsasviewedgeoptionalmatch(n:Comment)-[:replyOf*0..]->()-[viewedge:replyOf]->()-[:replyOf*0..]->(m:Post)WITHn,m,viewedgeCREATE(n)-[r:ROOT_POST]->(m)match(n:Comment{CommentId:\"2061584302086\"})-[r:replyOf]->(m:Post{id:\"2061584302084\"})returnn,r,mmatch(n:Comment{CommentId:\"2061584302086\"})-[r:replyOf]->(m:Post{id:\"2061584302084\"})returnn,r,m魏星迪工作進(jìn)度neo4j_test.py執(zhí)行流程魏星迪工作進(jìn)度特殊情況m:Accountn1n:Loann3VIEW:MATCH(n:Account)-[r1*..2]->(m:Loan)whereall(relinr1whererel.is_viewisnull)withn,mCREATE(n)-[r:ACCOUNT_LOAN{is_view:true}]->(m)optionalmatch(n:Account)-[ANONR2*1]->()-[view_edge]->()-[ANONR3*0]->(m:Loan)WHEREALL(relINANONR2WHERErel.is_viewisnull)
ANDview_edge.is_viewisnull
ANDALL(relINANONR3WHERErel.is_viewisnull)
withn,m,view_edgeCREATE(n)-[r:ACCOUNT_LOAN{is_view:true}]->(m)view_edger1r2魏星迪工作進(jìn)度特殊情況VIEW:MATCH(n:Account)-[r1*..2]->(m:Loan)whereall(relinr1whererel.is_viewisnull)withn,mCREATE(n)-[r:ACCOUNT_LOAN{is_view:true}]->(m)optionalmatch(n:Account)-[ANONR2*1]->()-[view_edge]->()-[ANONR3*0]->(m:Loan)WHEREALL(relINANONR2WHERErel.is_viewisnull)ANDview_edge.is_viewisnullANDALL(relINANONR3WHERErel.is_viewisnull)withn,m,view_edgeoptionalmatch(n)-[r:ACCOUNT_LOAN{is_view:true}]->(m)withcollect(r)asviews,n,m,view_edgedeleteviews[0]m:Accountn1n:Loanview_edger1r2n3魏星迪工作進(jìn)度修改維護(hù)語(yǔ)句
無(wú)法維護(hù)上述特殊情況可以解決上述情況,但無(wú)法傳遞view_edge可以解決上述情況并傳遞view_edgeoptionalmatch(n:Account)-[ANONR2*1]->()-[view_edge]->()-[ANONR3*0]->(m:Loan)WHEREALL(relINANONR2WHERErel.is_viewisnull)ANDview_edge.is_viewisnullANDALL(relINANONR3WHERErel.is_viewisnull)withn,m,view_edge
optionalmatch(n)-[r:ACCOUNT_LOAN{is_view:true}]->(m)withcollect(r)asviews,n,m,view_edgedeleteviews[0]optionalmatch(n:Account)-[ANONR2*1]->()-[view_edge]->()-[ANONR3*0]->(m:Loan)WHEREALL(relINANONR2WHERErel.is_viewisnull)ANDview_edge.is_viewisnullANDALL(relINANONR3WHERErel.is_viewisnull)withn,m,count(*)asnummatch(n)-[r:ACCOUNT_LOAN{is_view:true}]->(m)withnum,collect(r)asviewsUNWIND
range(0,num-1)
AS
ideleteviews[i]optionalmatch(n:Account)-[ANONR2*1]->()-[view_edge]->()-[ANONR3*0]->(m:Loan)WHEREALL(relINANONR2WHERErel.is_viewisnull)ANDview_edge.is_viewisnullANDALL(relINANONR3WHERErel.is_viewisnull)withn,m,collect(view_edge)asview_edgeswithn,m,size(view_edges)asnum,view_edgesoptionalmatch(n)-[r:ACCOUNT_LOAN{is_view:true}]->(m)withcollect(r)asviews,n,m,num,view_edgesUNWINDrange(0,num-1)asideleteviews[i]維護(hù)加速比0.20.6魏星迪工作進(jìn)度snb_resultsnb測(cè)試案例無(wú)優(yōu)化查詢時(shí)間視圖優(yōu)化時(shí)間優(yōu)化后查詢時(shí)間加速比記錄條數(shù)"match(n0:Comment)-[r1:replyOf*..]->(n1:Post)match(n1)<-[r2:replyOf*..]-(n2:Comment)whereid(n0)<>id(n2)returncount(n1)"41.160.0143421.951.874925941136"match(n0:Place{name:$placeName})<-[r1:isPartOf]-(n1:Place)match(n0)<-[r2*2]-(n2:Comment)returncount(n2)"148.630.0126939.103.801257428000"match(n0:Place)<-[r1:personIsLocatedIn]-(n1:Person)match(n1)-[r2]->(n2)-[r3]->(n3:Place)returncount(n3)"6.89320.013711.56364.40852410213"match(n0:Place)<-[r1*2]-(n1:Comment)
match(n1)-[r2:replyOf*..]->(n2:Post)returncount(n2)"21.09740.01267.11322.96596156507"match(n0:Place{name:$placeName})<-[r1]-(n1)<-[r2]-(n2:Person)match(n0)<-[r3*2]-(n3:Comment)returncount(n3)"140.63640.0095132.91281.05818171747840"match(n0:Tag)<-[r1:hasInterest]-(n1:Person)
match(n1)-[r2]->(n2)-[r3]->(n3:Place)wheren0.hasType>$tagTypereturncount(n3)"29.28480.013221.63341.353641324343"match(n0:Comment)-[r1:replyOf*..]->(n1:Post)match(n1)-[r2:postHasCreator]->(n2:Person)match(n2)-[r3]->(n3)-[r4]->(n4:Place)wheren0.creationDate<$creationDatereturncount(n4)"70.95460.009055.92561.2687100784775魏星迪工作進(jìn)度snb_resultsnb測(cè)試案例無(wú)優(yōu)化查詢時(shí)間視圖優(yōu)化時(shí)間優(yōu)化后查詢時(shí)間加速比記錄條數(shù)"MATCREATE(p1)-[:knows{creationDate:$creationDate,weight:$weight}]->(p2)"CH(p1:Person{id:$person1Id}),(p2:Person{id:$person2Id})0.01726400.02930250.5891704"result":"[]","time":493,"add_nodes":0,"delete_nodes":0,"add_rel":2,"delete_rel":0"MATCH(n:Person{id:$personId})-[r:likes]->(m:Comment{id:$commentId})DELETEr"0.00715800.01370330.5224040"result":"[]","time":613,"add_nodes":0,"delete_nodes":0,"add_rel":0,"delete_rel":2"MATCH(n:Post{id:$postId})
DETACHDELETEn"0.0128200.01582880.8099682"result":"[]","time":1092,"add_nodes":0,"delete_nodes":1,"add_rel":0,"delete_rel":26魏星迪工作進(jìn)度snb_result魏星迪工作進(jìn)度snb_resultfinbench測(cè)試案例無(wú)優(yōu)化查詢時(shí)間視圖優(yōu)化時(shí)間優(yōu)化后查詢時(shí)間加速比記錄條數(shù)"match(n0:Comment)-[r1:replyOf*..]->(n1:Post)match(n1)<-[r2:match(n0:Person)-[r1*2]->(n1:Company)match(n1)<-[r2*2]-(n2:Person)whereid(n0)<>id(n2)returncount(n1)47.30380.009027.62561.71233676match(n0:Company)-[r1]->(n1)-[r2]->(n2:Loan)match(n2)<-[r3:repay]-(n3:Account)returncount(n3)33.02160.010310.01363.29763614007match(n0:Person)-[r1*2]->(n1:Company)match(n0)-[r2:own]->(n2:Account)returncount(n1)26.78360.00996.0644.41685151969match(n0:Medium)-[r1:signIn]->(n1:Account)match(n1)-[r2*..2]->(n2:Loan)returncount(n2)198.19920.0147122.19161.622076828189match(n0:Loan)<-[r1]-(n1)<-[r2]-(n2:Company)match(n2)<-[r3*2]-(n3:Person)returncount(n3)52.05680.012811.59464.489714601110match(n0:Account)<-[r1:own]-(n1:Company)match(n1)-[r2]->(n2)-[r3]->(n3:Loan)returncount(n3)34.25040.01063.83048.94172724147match(n0:Account)-[r1*..2]->(n1:Loan)match(n1)<-[r2]-(n2)<-[r3]-(n3:Company)returncount(n1)129.25340.013129.77024.341739595119魏星迪工作進(jìn)度snb_resultfinbench測(cè)試案例無(wú)優(yōu)化查詢時(shí)間視圖優(yōu)化時(shí)間優(yōu)化后查詢時(shí)間加速比記錄條數(shù)MATCH(acc:Account{id:$accountId}),(loan:Loan{id:$loanId})CREATE(acc)<-[:deposit{timestamp:$depositTime,amount:$amt}]-(loan)0.014900.01780.8364"result":"[]","time":15,"add_nodes":0,"delete_nodes":0,"add_rel":9,"delete_rel":0MATCH(acc:Account{id:$accountId})-[r:repay{timestamp:$repayTime}]->(loan:Loan{id:$loanId})deleter0.005500.01300.4236"result":"[]","time":15,"add_nodes":0,"delete_nodes":0,"add_rel":0,"delete_rel":8MATCH(loan:Loan{id:$loanId})DETACHDELETEloan0.008100.01590.5074"result":"[]","time":21,"add_nodes":0,"delete_nodes":1,"add_rel":0,"delete_rel":32魏星迪工作進(jìn)度f(wàn)inbench_result魏星迪工作進(jìn)度snb_resultMATCH(acc:Account{id:$accountId}),(loan:Loan{id:$loanId})CREATE(acc)<-[:deposit{timestamp:$de
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年健美操教學(xué)指導(dǎo)培訓(xùn)
- 2026年鋼結(jié)構(gòu)安裝安全操作守則
- 2025年昆明幼兒園編制筆試及答案
- 2025年福山人事考試及答案
- 2025年數(shù)學(xué)教師入職筆試題目及答案
- 2026年房地產(chǎn)市場(chǎng)調(diào)控政策對(duì)投資者的影響
- 2025年殘障人士交流筆試題庫(kù)及答案
- 2025年陽(yáng)曲人事考試及答案
- 2025年新媒體采編工作筆試題目及答案
- 2025年教師筆試數(shù)學(xué)題及答案
- 高考英語(yǔ)閱讀理解分類(lèi)及方法課件
- 紹興金牡印染有限公司年產(chǎn)12500噸針織布、6800萬(wàn)米梭織布高檔印染面料升級(jí)技改項(xiàng)目環(huán)境影響報(bào)告
- 成人呼吸支持治療器械相關(guān)壓力性損傷的預(yù)防
- DHA乳狀液制備工藝優(yōu)化及氧化穩(wěn)定性的研究
- 2023年江蘇省五年制專(zhuān)轉(zhuǎn)本英語(yǔ)統(tǒng)考真題(試卷+答案)
- 岳麓書(shū)社版高中歷史必修三3.13《挑戰(zhàn)教皇的權(quán)威》課件(共28張PPT)
- GC/T 1201-2022國(guó)家物資儲(chǔ)備通用術(shù)語(yǔ)
- 污水管網(wǎng)監(jiān)理規(guī)劃
- GB/T 6730.65-2009鐵礦石全鐵含量的測(cè)定三氯化鈦還原重鉻酸鉀滴定法(常規(guī)方法)
- GB/T 35273-2020信息安全技術(shù)個(gè)人信息安全規(guī)范
- 《看圖猜成語(yǔ)》課件
評(píng)論
0/150
提交評(píng)論