Udostępnij przez


operator graph-mark-components (wersja zapoznawcza)

Dotyczy: ✅Microsoft Fabric

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 z operatorem make-graph.

Składnia

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

Parametry

Nazwisko Typ Wymagania opis
G sznurek ✔️ Źródło grafu.
Rodzaj sznurek 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 sznurek 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

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

nazwa rodzina
Alicja 0
Robert 0
Kolęda 0
Dave 0
Greg 0
Howard 0
Przeddzień 1
Szczery 1
Mallory 1
Kirk 1

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 = map(childOf, child), family = ancestor.family
| summarize (generations, name) = arg_max(array_length(lineage),name) by family

Wyjście

rodzina Pokoleń nazwa
1 2 Mallory
0 2 Robert