Udostępnij za pośrednictwem


operator graph-mark-components (wersja zapoznawcza)

Dotyczy: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Operator graph-mark-components znajduje wszystkie połączone składniki grafu i oznacza każdy węzeł za pomocą identyfikatora składnika.

Uwaga

Ten operator jest używany w połączeniu z operatorem make-graph.

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