Graph-mark-components-Operator (Vorschau)
Gilt für: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft 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 |