- 因为当前小数据集结果没有有5000, limit 应该可以忽略
MATCH (c:Entity) WHERE c.keyNo = "kkkkkkk"
CALL apoc.path.subgraphAll(c, {maxLevel: 1, relationshipFilter:'Rel_A|Rel_B|Rel_C', limit: 5000})
YIELD nodes, relationships
WITH nodes, relationships
UNWIND relationships as r
WITH nodes, r
RETURN nodes, COLLECT(DISTINCT r) AS rel
- 随意找一个profile如下: 主要耗时在GetNeighbors 上
Execution Plan
-----+--------------+--------------+-------------------------------------------------------------------+----------------------------------
| id | name | dependencies | profiling data | operator info |
-----+--------------+--------------+-------------------------------------------------------------------+----------------------------------
| 5 | DataCollect | 4 | ver: 0, rows: 3, execTime: 4876us, totalTime: 4879us | outputVar: [ |
| | | | | { |
| | | | | "colNames": [ |
| | | | | "_vertices", |
| | | | | "_edges" |
| | | | | ], |
| | | | | "name": "__DataCollect_5", |
| | | | | "type": "DATASET" |
| | | | | } |
| | | | | ] |
| | | | | inputVar: [ |
| | | | | { |
| | | | | "colNames": [], |
| | | | | "name": "__GetNeighbors_2", |
| | | | | "type": "DATASET" |
| | | | | }, |
| | | | | { |
| | | | | "colNames": [], |
| | | | | "name": "__VAR_2", |
| | | | | "type": "DATASET" |
| | | | | } |
| | | | | ] |
| | | | | kind: SUBGRAPH |
-----+--------------+--------------+-------------------------------------------------------------------+----------------------------------
| 4 | Loop | 0 | ver: 0, rows: 1, execTime: 6us, totalTime: 6us | outputVar: [ |
| | | | ver: 1, rows: 1, execTime: 3us, totalTime: 4us | { |
| | | | ver: 2, rows: 1, execTime: 5us, totalTime: 5us | "colNames": [], |
| | | | ver: 3, rows: 1, execTime: 5us, totalTime: 6us | "name": "__Loop_4", |
| | | | | "type": "DATASET" |
| | | | | } |
| | | | | ] |
| | | | | inputVar: |
| | | | | condition: (++($__VAR_0)<=3) |
| | | | | loopBody: 3 |
-----+--------------+--------------+-------------------------------------------------------------------+----------------------------------
| 3 | Subgraph | 2 | ver: 0, rows: 21, execTime: 40us, totalTime: 41us | branch: true, nodeId: 4 |
| | | | ver: 1, rows: 332, execTime: 247us, totalTime: 248us | |
| | | | ver: 2, rows: 0, execTime: 1526us, totalTime: 1527us | outputVar: [ |
| | | | | { |
| | | | | "colNames": [ |
| | | | | "_vid" |
| | | | | ], |
| | | | | "name": "__VAR_1", |
| | | | | "type": "DATASET" |
| | | | | } |
| | | | | ] |
| | | | | inputVar: __GetNeighbors_2 |
-----+--------------+--------------+-------------------------------------------------------------------+----------------------------------
| 2 | GetNeighbors | 1 | { | outputVar: [ |
| | | | ver: 0, rows: 0, execTime: 56us, totalTime: 3272us | { |
| | | | "10.0.7.250":9779 exec/total/vertices: 2806(us)/3136(us)/1, | "colNames": [], |
| | | | total_rpc_time: 3198(us) | "name": "__GetNeighbors_2", |
| | | | } | "type": "DATASET" |
| | | | { | } |
| | | | ver: 1, rows: 0, execTime: 117us, totalTime: 17810us | ] |
| | | | "10.0.7.251":9779 exec/total/vertices: 17004(us)/17602(us)/8, | inputVar: __VAR_1 |
| | | | "10.0.7.252":9779 exec/total/vertices: 14084(us)/14866(us)/7, | space: 68 |
| | | | total_rpc_time: 17675(us) | dedup: false |
| | | | "10.0.7.250":9779 exec/total/vertices: 10634(us)/11234(us)/6, | limit: -1 |
| | | | } | filter: |
| | | | { | orderBy: [] |
| | | | ver: 2, rows: 0, execTime: 157us, totalTime: 229993us | src: $__VAR_1._vid |
| | | | "10.0.7.251":9779 exec/total/vertices: 207173(us)/212023(us)/99, | edgeTypes: [] |
| | | | "10.0.7.250":9779 exec/total/vertices: 225212(us)/229644(us)/123, | edgeDirection: OUT_EDGE |
| | | | "10.0.7.252":9779 exec/total/vertices: 207480(us)/212668(us)/110, | vertexProps: [ |
| | | | total_rpc_time: 229806(us) | { |
| | | | } | "props": [ |
| | | | | "keyno", |
| | | | | "name", |
| | | | | "shortstatus", |
| | | | | "econkind", |
| | | | | "registcapi", |
| | | | | "hasimage", |
| | | | | "groupid", |
| | | | | "ismain", |
| | | | | "isinvestor", |
| | | | | "create_time" |
| | | | | ], |
| | | | | "tagId": 69 |
| | | | | }, |
| | | | | { |
| | | | | "props": [ |
| | | | | "keyno", |
| | | | | "name", |
| | | | | "job", |
| | | | | "hasimage", |
| | | | | "create_time" |
| | | | | ], |
| | | | | "tagId": 70 |
| | | | | } |
| | | | | ] |
| | | | | edgeProps: [ |
| | | | | { |
| | | | | "props": [ |
| | | | | "_src", |
| | | | | "_type", |
| | | | | "_rank", |
| | | | | "_dst", |
| | | | | "type", |
| | | | | "startid", |
| | | | | "endid", |
| | | | | "role", |
| | | | | "stockpercent", |
| | | | | "shouldcapi", |
| | | | | "iscal", |
| | | | | "create_time" |
| | | | | ], |
| | | | | "type": "71" |
| | | | | }, |
| | | | | { |
| | | | | "props": [ |
| | | | | "_src", |
| | | | | "_type", |
| | | | | "_rank", |
| | | | | "_dst", |
| | | | | "type", |
| | | | | "startid", |
| | | | | "endid", |
| | | | | "role", |
| | | | | "stockpercent", |
| | | | | "shouldcapi", |
| | | | | "iscal", |
| | | | | "create_time" |
| | | | | ], |
| | | | | "type": "-71" |
| | | | | }, |
| | | | | { |
| | | | | "props": [ |
| | | | | "_src", |
| | | | | "_type", |
| | | | | "_rank", |
| | | | | "_dst", |
| | | | | "type", |
| | | | | "startid", |
| | | | | "endid", |
| | | | | "role", |
| | | | | "stockpercent", |
| | | | | "shouldcapi", |
| | | | | "create_time" |
| | | | | ], |
| | | | | "type": "72" |
| | | | | }, |
| | | | | { |
| | | | | "props": [ |
| | | | | "_src", |
| | | | | "_type", |
| | | | | "_rank", |
| | | | | "_dst", |
| | | | | "type", |
| | | | | "startid", |
| | | | | "endid", |
| | | | | "role", |
| | | | | "stockpercent", |
| | | | | "shouldcapi", |
| | | | | "create_time" |
| | | | | ], |
| | | | | "type": "-72" |
| | | | | }, |
| | | | | { |
| | | | | "props": [ |
| | | | | "_src", |
| | | | | "_type", |
| | | | | "_rank", |
| | | | | "_dst", |
| | | | | "type", |
| | | | | "startid", |
| | | | | "endid", |
| | | | | "role", |
| | | | | "stockpercent", |
| | | | | "shouldcapi", |
| | | | | "create_time" |
| | | | | ], |
| | | | | "type": "73" |
| | | | | }, |
| | | | | { |
| | | | | "props": [ |
| | | | | "_src", |
| | | | | "_type", |
| | | | | "_rank", |
| | | | | "_dst", |
| | | | | "type", |
| | | | | "startid", |
| | | | | "endid", |
| | | | | "role", |
| | | | | "stockpercent", |
| | | | | "shouldcapi", |
| | | | | "create_time" |
| | | | | ], |
| | | | | "type": "-73" |
| | | | | } |
| | | | | ] |
| | | | | statProps: |
| | | | | exprs: |
| | | | | random: false |
-----+--------------+--------------+-------------------------------------------------------------------+----------------------------------
| 1 | Start | | ver: 0, rows: 0, execTime: 0us, totalTime: 7us | outputVar: [ |
| | | | ver: 1, rows: 0, execTime: 0us, totalTime: 6us | { |
| | | | ver: 2, rows: 0, execTime: 0us, totalTime: 13us | "colNames": [], |
| | | | | "name": "__Start_1", |
| | | | | "type": "DATASET" |
| | | | | } |
| | | | | ] |
-----+--------------+--------------+-------------------------------------------------------------------+----------------------------------
| 0 | Start | | ver: 0, rows: 0, execTime: 0us, totalTime: 13us | outputVar: [ |
| | | | | { |
| | | | | "colNames": [], |
| | | | | "name": "__Start_0", |
| | | | | "type": "DATASET" |
| | | | | } |
| | | | | ] |
-----+--------------+--------------+-------------------------------------------------------------------+----------------------------------
- 多线程PR 大概多久可以release? 是在下个小版本v2.0.2 发布吗?