次の方法で共有


graph-mark-components 演算子 (プレビュー)

適用対象: ✅Microsoft FabricAzure データ エクスプローラーAzure MonitorMicrosoft Sentinel

graph-mark-components演算子は、グラフのすべての接続されたコンポーネントを検索し、各ノードをコンポーネント識別子でマークします。

Note

この演算子は、 make-graph 演算子と組み合わせて使用されます。

構文

G | graph-mark-components [kind = Kind] [with_component_id = ComponentId]

パラメーター

件名 タイプ Required 説明
G string ✔️ グラフ ソース。
Kind string 接続されたコンポーネントの種類 ( weak (既定) または strong。 弱いコンポーネントは、エッジの方向を無視して、パスによって接続されたノードのセットです。 強いコンポーネントは、エッジの方向を考慮して双方向に接続されたノードのセットです。
ComponentId string コンポーネント識別子を表すプロパティ名。 既定のプロパティ名は ComponentId

返品

graph-mark-components演算子はグラフ結果を返します。各ノードには、ComponentId プロパティにコンポーネント識別子があります。 識別子は、コンポーネントの 0 から始まる連続するインデックスです。 各コンポーネント インデックスは任意に選択され、実行間で一貫性がない可能性があります。

家族の関係で家族を見つける

次の例では、子と親のペアのセットからグラフを作成し、 family 識別子を使用して接続されているコンポーネントを識別します。

let ChildOf = datatable(child:string, parent:string) 
[ 
  "Alice", "Bob",  
  "Carol", "Alice",  
  "Carol", "Dave",  
  "Greg", "Alice",  
  "Greg", "Dave",  
  "Howard", "Alice",  
  "Howard", "Dave",  
  "Eve", "Frank",  
  "Frank", "Mallory",
  "Eve", "Kirk",
]; 
ChildOf 
| make-graph child --> parent with_node_id=name
| graph-mark-components with_component_id = family
| graph-to-table nodes

出力

name 家族
Alice 0
Bob 0
Carol 0
Dave 0
グレッグ 0
Howard 0
Eve 1
Frank Weigel 1
Mallory 1
カーク 1

家族ごとに最も共通する先祖を見つける

次の例では、接続されたコンポーネント family 識別子と graph-match 演算子を使用して、一連の子親データ内の各ファミリの最大の先祖を識別します。

let ChildOf = datatable(child:string, parent:string) 
[ 
  "Alice", "Bob",  
  "Carol", "Alice",  
  "Carol", "Dave",  
  "Greg", "Alice",  
  "Greg", "Dave",  
  "Howard", "Alice",  
  "Howard", "Dave",  
  "Eve", "Frank",  
  "Frank", "Mallory",
  "Eve", "Kirk",
]; 
ChildOf 
| make-graph child --> parent with_node_id=name
| graph-mark-components with_component_id = family
| graph-match (descendant)-[childOf*1..5]->(ancestor)
  project name = ancestor.name, lineage = childOf.child, family = ancestor.family
| summarize (generations, name) = argmax(array_length(lineage),name) by family

出力

family 世代 name
1 2 Mallory
0 2 Bob