The version of NebulaGraph is v3.4.1 and the deployment method is distributed. The installation method is RPM. The specific problem is as follows: The original query statement is to find the data within one hop of the node, but there is a large amount of data.
GO FROM 815677140545765099 OVER Relation BIDIRECT WHERE Relation.name=="竞争" YIELD DISTINCT "candidate", $$.Company.keyno as keyno, $$.Company.name as name, Relation.data as tender, Relation.publish_time as ts | ORDER BY $-.ts desc
After the query, group by keyno in memory, but the data volume is too large, and I want to limit it. The statement is as follows:
GO FROM -4010402952414171612 OVER Relation BIDIRECT WHERE Relation.name=="compete" YIELD DISTINCT "candidate", $$.Company.keyno as keyno, $$.Company.name as name |
YIELD $-.keyno, $-.name, count(*) as cnt | ORDER BY $-.cnt desc | limit 0, 1
After using limit, it was found that the limit does not seem to be pushed down. Is there any way to optimize this? The running log after profiling is as follows:
id name dependencies profiling data operator info
12 TopN 9 ver: 0, rows: 1, execTime: 9204us, totalTime: 9207us "outputVar: {
""colNames"": [
""$-.keyno"",
""$-.name"",
""cnt""
],
""type"": ""DATASET"",
""name"": ""__Limit_11""
}
inputVar: __Aggregate_9
factors: [
{
""cnt"": ""DESCEND""
}
]
offset: 0
count: 1"
9 Aggregate 8 ver: 0, rows: 67667, execTime: 269129us, totalTime: 269133us "outputVar: {
""colNames"": [
""$-.keyno"",
""$-.name"",
""cnt""
],
""type"": ""DATASET"",
""name"": ""__Aggregate_9""
}
inputVar: __Dedup_8
groupKeys: [
""$-.keyno"",
""$-.name""
]
groupItems: [
{
""expr"": ""$-.keyno""
},
{
""expr"": ""$-.name""
},
{
""expr"": ""count(*)""
}
]"
8 Dedup 7 ver: 0, rows: 67667, execTime: 2093495us, totalTime: 2093502us "outputVar: {
""colNames"": [
""\""winning candidates\"""",
""keyno"",
""name""
],
""type"": ""DATASET"",
""name"": ""__Dedup_8""
}
inputVar: __Project_7"
7 Project 14 ver: 0, rows: 4289604, execTime: 2174478us, totalTime: 2174487us "outputVar: {
""colNames"": [
""\""winning candidates\"""",
""keyno"",
""name""
],
""type"": ""DATASET"",
""name"": ""__Project_7""
}
inputVar: __Filter_6
columns: [
""\""winning candidates\"""",
""$__COL_1 AS keyno"",
""$__COL_2 AS name""
]"
14 LeftJoin 13 ver: 0, rows: 4289604, execTime: 2484443us, totalTime: 2484448us "outputVar: {
""colNames"": [
""__COL_0"",
""JOIN_DST_VID"",
""__COL_1"",
""__COL_2"",
""DST_VID""
],
""type"": ""DATASET"",
""name"": ""__Filter_6""
}
inputVar: {
""rightVar"": {
""__Project_4"": 0
},
""leftVar"": {
""__Filter_13"": 0
}
}
hashKeys: [
""COLUMN[-1]""
]
probeKeys: [
""COLUMN[-1]""
]
kind: LeftJoin"
13 Filter 4 ver: 0, rows: 4289604, execTime: 209276us, totalTime: 209284us "outputVar: {
""colNames"": [
""__COL_0"",
""JOIN_DST_VID""
],
""type"": ""DATASET"",
""name"": ""__Filter_13""
}
inputVar: __Project_2
condition: ($__Project_2.__COL_0==""招投标竞争"")
isStable: false"
4 Project 3 ver: 0, rows: 102594, execTime: 45481us, totalTime: 45490us "outputVar: {
""colNames"": [
""__COL_1"",
""__COL_2"",
""DST_VID""
],
""type"": ""DATASET"",
""name"": ""__Project_4""
}
inputVar: __GetVertices_3
columns: [
""$$.Company.keyno AS __COL_1"",
""$$.Company.name AS __COL_2"",
""COLUMN[0] AS DST_VID""
]"
3 GetVertices 2 "{
ver: 0, rows: 102594, execTime: 459035us, totalTime: 492206us
resp[4]: {
""exec"": ""18838(us)"",
""host"": ""10.0.20.168:9779"",
""total"": ""42262(us)""
}
total_rpc: 145581(us)
resp[2]: {
""exec"": ""21372(us)"",
""host"": ""10.0.20.166:9779"",
""total"": ""43438(us)""
}
resp[1]: {
""exec"": ""18496(us)"",
""host"": ""10.0.20.170:9779"",
""total"": ""38311(us)""
}
resp[0]: {
""exec"": ""19398(us)"",
""host"": ""10.0.20.169:9779"",
""total"": ""42008(us)""
}
resp[3]: {
""exec"": ""19931(us)"",
""host"": ""10.0.20.167:9779"",
""total"": ""40349(us)""
}
resp[5]: {
""exec"": ""20970(us)"",
""host"": ""10.0.20.171:9779"",
""total"": ""40131(us)""
}
}" "outputVar: {
""colNames"": [],
""type"": ""DATASET"",
""name"": ""__GetVertices_3""
}
inputVar: __Project_2
space: 16
dedup: true
limit: 9223372036854775807
filter:
orderBy: []
src: COLUMN[-1]
props: [
{
""props"": [
""keyno"",
""name""
],
""tagId"": 17
}
]
exprs: "
2 Project 1 ver: 0, rows: 4372373, execTime: 1564262us, totalTime: 1564272us "outputVar: {
""colNames"": [
""__COL_0"",
""JOIN_DST_VID""
],
""type"": ""DATASET"",
""name"": ""__Project_2""
}
inputVar: __GetNeighbors_1
columns: [
""Relation.name AS __COL_0"",
""*._dst AS JOIN_DST_VID""
]"
1 GetNeighbors 0 "{
ver: 0, rows: 4372373, execTime: 46us, totalTime: 3167862us
resp[0]: {
""exec"": ""1814403(us)"",
""host"": ""10.0.20.168:9779"",
""storage_detail"": {
""GetNeighborsNode"": ""1810652(us)"",
""HashJoinNode"": ""90(us)"",
""RelNode"": ""1810652(us)"",
""SingleEdgeNode"": ""88(us)""
},
""total"": ""3167654(us)"",
""vertices"": 1
}
total_rpc_time: 3167798(us)
}" "outputVar: {
""colNames"": [],
""type"": ""DATASET"",
""name"": ""__GetNeighbors_1""
}
inputVar: __VAR_0
space: 16
dedup: false
limit: -1
filter:
orderBy: []
src: COLUMN[0]
edgeTypes: []
edgeDirection: OUT_EDGE
vertexProps:
edgeProps: [
{
""props"": [
""_dst"",
""name""
],
""type"": -19
},
{
""props"": [
""_dst"",
""name""
],
""type"": 19
}
]
statProps:
exprs:
random: false"
0 Start ver: 0, rows: 0, execTime: 0us, totalTime: 26us "outputVar: {
""colNames"": [],
""type"": ""DATASET"",
""name"": ""__Start_0""
}"