本文提供了 Azure Cosmos DB for Apache Gremlin 中的执行配置文件功能的参考。 它说明函数返回 executionProfile()
的响应的结构和属性。
响应
函数调用的 executionProfile()
响应生成具有以下结构的 JSON 对象的层次结构。
Gremlin作
此对象表示已执行的整个 Gremlin作。 此对象命名 gremlin
为 . 此对象包含以下属性:
Description | |
---|---|
gremlin |
已执行的显式 Gremlin 语句。 |
totalTime |
执行步骤的时间(以毫秒为单位)。 |
metrics |
一个数组,其中包含执行以完成查询的每个 Cosmos DB 运行时运算符。 此列表按执行顺序排序。 |
适用于 Apache Gremlin 运行时运算符的 Azure Cosmos DB
此列表表示整个 Gremlin作的每个组件。 该列表命名 metrcis
。 此列表按执行顺序排序。 每个对象包含以下属性:
Description | |
---|---|
name |
运算符的名称。 此属性是计算和执行的步骤的类型。 |
time |
给定运算符花费的时间(以毫秒为单位)。 |
annotations |
包含特定于执行运算符的其他信息。 |
annotations.percentTime |
执行特定运算符所花费的总时间的百分比。 |
counts |
此运算符从存储层返回的对象数。 此计数包含在标量值内 counts.resultCount 。 |
storeOps |
表示可以跨越一个或多个分区的存储作。 |
storeOps.fanoutFactor |
表示此特定存储作访问的分区数。 |
storeOps.count |
表示此存储作返回的结果数。 |
storeOps.size |
表示给定存储作结果的大小(以字节为单位)。 |
示例响应
下面是 JSON 格式的示例响应:
[
{
"gremlin": "g.V().hasLabel('tweet').out().executionProfile()",
"totalTime": 42,
"metrics": [
{
"name": "GetVertices",
"time": 31,
"annotations": { "percentTime": 73.81 },
"counts": { "resultCount": 30 },
"storeOps": [ { "fanoutFactor": 1, "count": 13, "size": 6819, "time": 1.02 } ]
},
{
"name": "GetEdges",
"time": 6,
"annotations": { "percentTime": 14.29 },
"counts": { "resultCount": 18 },
"storeOps": [ { "fanoutFactor": 1, "count": 20, "size": 7950, "time": 1.98 } ]
},
{
"name": "GetNeighborVertices",
"time": 5,
"annotations": { "percentTime": 11.9 },
"counts": { "resultCount": 20 },
"storeOps": [ { "fanoutFactor": 1, "count": 4, "size": 1070, "time": 1.19 } ]
},
{
"name": "ProjectOperator",
"time": 0,
"annotations": { "percentTime": 0 },
"counts": { "resultCount": 20 }
}
]
}
]
响应架构
响应还与此 JSON 架构匹配:
[
{
"type": "object",
"properties": {
"gremlin": { "type": "string" },
"totalTime": { "type": "number" },
"metrics": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": { "type": "string" },
"time": { "type": "number" },
"annotations": {
"type": "object",
"properties": {
"percentTime": { "type": "number" }
},
"additionalProperties": true
},
"counts": {
"type": "object",
"properties": {
"resultCount": { "type": "number" }
},
"additionalProperties": true
},
"storeOps": {
"type": "array",
"items": {
"type": "object",
"properties": {
"fanoutFactor": { "type": "number" },
"count": { "type": "number" },
"size": { "type": "number" },
"time": { "type": "number" }
},
"additionalProperties": true
}
}
},
"additionalProperties": true
}
}
},
"required": ["gremlin", "totalTime", "metrics"],
"additionalProperties": true
}
]
运营商
Description | |
---|---|
GetVertices |
此步骤从持久性层获取一组谓词对象。 |
GetEdges |
此步骤获取接近一组顶点的边缘。 此步骤可能会导致一个或多个存储操作。 |
GetNeighborVertices |
此步骤获取连接到一组边缘的顶点。 边缘包含其源顶点和目标顶点的分区键和唯一标识符。 |
Coalesce |
此步骤用于在执行 coalesce() Gremlin 步骤时评估两个操作。 |
CartesianProductOperator |
此步骤计算两个数据集之间的笛卡尔积。 每当使用谓词或使用to() 谓词from() 时执行。 |
ConstantSourceOperator |
此步骤计算表达式以生成常量值作为结果。 |
ProjectOperator |
此步骤使用上述操作的结果来准备和序列化响应。 |
ProjectAggregation |
此步骤准备并序列化集合操作的响应。 |