Condividi tramite


Operatore graph-mark-components (anteprima)

Si applica a: ✅Microsoft Fabric

L'operatore graph-mark-components trova tutti i componenti connessi di un grafico e contrassegna ogni nodo con un identificatore di componente.

Nota

Questo operatore viene usato con l'operatore make-graph .

Sintassi

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

Parametri

Nome Digita Obbligatorio Descrizione
G corda ✔️ Origine del grafo.
Tipologia corda Tipo di componente connesso, weak (impostazione predefinita) o strong. Un componente debole è un set di nodi connessi da un percorso, ignorando la direzione dei bordi. Un componente forte è un set di nodi collegati in entrambe le direzioni, considerando le direzioni dei bordi.
ComponentId corda Nome della proprietà che indica l'identificatore del componente. Il nome predefinito della proprietà è ComponentId.

Valori restituiti

L'operatore graph-mark-components restituisce un risultato del grafo , in cui ogni nodo ha un identificatore del componente nella proprietà ComponentId . L'identificatore è un indice consecutivo in base zero dei componenti. Ogni indice del componente viene scelto in modo arbitrario e potrebbe non essere coerente tra le esecuzioni.

Esempi

L'esempio seguente crea un grafico da un set di coppie figlio-padre e identifica i componenti connessi usando un family identificatore.

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

Risultato

nome famiglia
Alice 0
Bob 0
Carola 0
Dave 0
Greg 0
Howard 0
Vigilia 1
Franco 1
Mallory 1
Chiesa 1

L'esempio seguente usa l'identificatore del componente family connesso e l'operatore graph-match per identificare il predecessore maggiore di ogni famiglia in un set di dati padre figlio.

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

Risultato

famiglia Generazioni nome
1 2 Mallory
0 2 Bob