Compartir a través de

Azure Cosmos DB for Apache Gremlin 执行配置文件参考

本文提供了 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 此步骤准备并序列化集合操作的响应。