Freigeben über


Graph-mark-components-Operator (Vorschau)

Gilt für: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Der graph-mark-components Operator findet alle verbundenen Komponenten eines Diagramms und kennzeichnet jeden Knoten mit einem Komponentenbezeichner.

Hinweis

Dieser Operator wird zusammen mit dem Make-Graph-Operator verwendet.

Syntax

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

Parameter

Name Type Erforderlich Beschreibung
G Zeichenfolge ✔️ Die Diagrammquelle.
Variante Zeichenfolge Die Art der verbundenen Komponente , entweder weak (Standard) oder strong. Eine schwache Komponente ist eine Reihe von Knoten, die durch einen Pfad verbunden sind, wobei die Richtung der Kanten ignoriert wird. Eine starke Komponente ist eine Reihe von Knoten, die in beide Richtungen verbunden sind, unter Berücksichtigung der Richtungen der Kanten.
ComponentId Zeichenfolge Der Eigenschaftsname, der den Komponentenbezeichner angibt. Der Standardeigenschaftsname lautet ComponentId.

Gibt zurück

Der graph-mark-components Operator gibt ein Diagrammergebnis zurück, wobei jeder Knoten einen Komponentenbezeichner in der ComponentId-Eigenschaft aufweist. Der Bezeichner ist ein nullbasierter aufeinanderfolgender Index der Komponenten. Jeder Komponentenindex wird willkürlich ausgewählt und ist möglicherweise nicht einheitlich.

Beispiele

Finden von Familien anhand ihrer Beziehungen

Im folgenden Beispiel wird ein Diagramm aus einer Reihe von untergeordneten übergeordneten Paaren erstellt und verbundene Komponenten mithilfe eines family Bezeichners identifiziert.

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

Output

name family
Alice 0
Bob 0
Helga 0
Dave 0
Greg 0
Howard 0
Eve 1
Freimütig 1
Mallory 1
Kirche 1

Finden Eines der größten gemeinsamen Vorfahren für jede Familie

Im folgenden Beispiel wird der Bezeichner der verbundenen Komponente family und der graph-match Operator verwendet, um den größten Vorgänger jeder Familie in einer Reihe von untergeordneten Daten zu identifizieren.

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

Output

family Generationen name
1 2 Mallory
0 2 Bob