operator graph-mark-components (wersja zapoznawcza)
Dotyczy: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Operator graph-mark-components
znajduje wszystkie połączone składniki grafu i oznacza każdy węzeł za pomocą identyfikatora składnika.
Składnia
G graph-mark-components
|
[ Kind] [with_component_id
=
=
kind
ComponentId]
Parametry
Nazwisko | Type | Wymagania | opis |
---|---|---|---|
G | string | ✔️ | Źródło grafu. |
Rodzaj | string | Rodzaj połączonego składnika ( weak wartość domyślna) lub strong . Słaby składnik to zestaw węzłów połączonych ścieżką, ignorując kierunek krawędzi. Silny składnik to zestaw węzłów połączonych w obu kierunkach, biorąc pod uwagę kierunki krawędzi. |
|
Identyfikator składnika | string | Nazwa właściwości, która określa identyfikator składnika. Domyślna nazwa właściwości to ComponentId . |
Zwraca
Operator graph-mark-components
zwraca wynik grafu , w którym każdy węzeł ma identyfikator składnika we właściwości ComponentId . Identyfikator jest zera kolejnym indeksem składników. Każdy indeks składników jest wybierany dowolnie i może nie być spójny w różnych przebiegach.
Przykłady
Znajdowanie rodzin według ich relacji
Poniższy przykład tworzy graf na podstawie zestawu par nadrzędnych podrzędnych i identyfikuje połączone składniki przy użyciu identyfikatora 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
Wyjście
name | family |
---|---|
Alicja | 0 |
Robert | 0 |
Kolęda | 0 |
Dave | 0 |
Greg | 0 |
Howard | 0 |
Przeddzień | 1 |
Szczery | 1 |
Mallory | 1 |
Kirk | 1 |
Znajdź najwspanialszy wspólny przodk dla każdej rodziny
W poniższym przykładzie użyto identyfikatora połączonego składnika family
i graph-match
operatora w celu zidentyfikowania największego przodka każdej rodziny w zestawie danych nadrzędnych podrzędnych.
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
Wyjście
family | Pokoleń | name |
---|---|---|
1 | 2 | Mallory |
0 | 2 | Robert |