Condividi tramite


Operatore graph-mark-components (anteprima)

Si applica a: ✅Microsoft Fabric✅Azure Esplora dati Azure MonitorMicrosoft Sentinel

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 insieme all'operatore make-graph.

Sintassi

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

Parametri

Nome Digita Obbligatorio Descrizione
G string ✔️ Origine del grafo.
Tipologia string 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 string 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

Trovare le famiglie in base alle loro relazioni

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

Output

name family
Alice 0
Bob 0
Carol 0
Dave 0
Greg 0
Howard 0
Eve 1
Franco 1
Mallory 1
Chiesa 1

Trovare un predecessore comune più grande per ogni famiglia

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

Output

family Generazioni name
1 2 Mallory
0 2 Bob