Important
99.999% 可用性サービス レベル アグリーメント (SLA)、インスタント 自動スケール、および複数のリージョン間の自動フェールオーバーを使用した 大規模 なシナリオ向けのデータベース ソリューションをお探しですか? Azure Cosmos DB for NoSQL について考えてみましょう。
オンライン分析処理 (OLAP) グラフを実装するか、既存の Apache Gremlin アプリケーションを移行しますか? Microsoft Fabric で Graph を検討してください。
この記事では、Azure Cosmos DB for Apache Gremlin の実行プロファイル機能のリファレンスを提供します。
executionProfile()関数によって返される応答の構造とプロパティについて説明します。
[応答]
executionProfile()関数呼び出しの応答により、次の構造を持つ JSON オブジェクトの階層が生成されます。
Gremlin 操作
このオブジェクトは、実行された Gremlin 操作全体を表します。 このオブジェクトの名前は gremlin です。 このオブジェクトには、次のプロパティが含まれています。
| Description | |
|---|---|
gremlin |
実行された明示的な Gremlin ステートメント。 |
totalTime |
ステップの実行が発生した時間 (ミリ秒単位)。 |
metrics |
クエリを実行するために実行された各 Cosmos DB ランタイム演算子を含む配列。 このリストは、実行順に並べ替えられます。 |
Azure Cosmos DB for Apache Gremlin ランタイム演算子
この一覧は、Gremlin 操作全体の各コンポーネントを表します。 リストには metrcis という名前が付けられています。 このリストは、実行順に並べ替えられます。 各オブジェクトには、次のプロパティが含まれています。
| Description | |
|---|---|
name |
演算子の名前。 このプロパティは、評価および実行されたステップの種類です。 |
time |
特定の演算子にかかった時間 (ミリ秒単位)。 |
annotations |
実行された演算子に固有の追加情報が含まれます。 |
annotations.percentTime |
特定の演算子の実行にかかった合計時間の割合。 |
counts |
この演算子によってストレージ レイヤーから返されたオブジェクトの数。 このカウントは、内の counts.resultCount スカラー値に含まれています。 |
storeOps |
1 つまたは複数のパーティションにまたがるストレージ操作を表します。 |
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 |
この手順では、頂点のセットに近いエッジを取得します。 この手順では、1 つまたは複数のストレージ操作が発生する可能性があります。 |
GetNeighborVertices |
この手順では、一連のエッジに接続されている頂点を取得します。 エッジには、ソース頂点とターゲット頂点の両方のパーティション キーと一意の識別子が含まれます。 |
Coalesce |
この手順では、 coalesce() Gremlin ステップが実行されるたびに、2 つの操作の評価が考慮されます。 |
CartesianProductOperator |
この手順では、2 つのデータセット間のデカルト積を計算します。 述語 to() または from() が使用されるたびに実行されます。 |
ConstantSourceOperator |
この手順では、式を計算して、結果として定数値を生成します。 |
ProjectOperator |
この手順では、前の操作の結果を使用して応答を準備し、シリアル化します。 |
ProjectAggregation |
この手順では、集計操作の応答を準備してシリアル化します。 |