Partager via


Opérateur graph-mark-components (préversion)

S’applique à : ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

L’opérateur graph-mark-components recherche tous les composants connectés d’un graphique et marque chaque nœud avec un identificateur de composant.

Remarque

Cet opérateur est utilisé conjointement avec l’opérateur make-graph.

Syntaxe

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

Paramètres

Nom Type Requise Description
G string ✔️ Source du graphique.
Genre string Type de composant connecté, soit weak (par défaut) soit strong. Un composant faible est un ensemble de nœuds connectés par un chemin d’accès, ignorant la direction des arêtes. Un composant fort est un ensemble de nœuds connectés dans les deux sens, compte tenu des directions des arêtes.
ComponentId string Nom de propriété qui désigne l’identificateur du composant. Le nom de la propriété par défaut est ComponentId.

Retours

L’opérateur graph-mark-components retourne un résultat de graphique , où chaque nœud a un identificateur de composant dans la propriété ComponentId . L’identificateur est un index consécutif de base zéro des composants. Chaque index de composant est choisi arbitrairement et peut ne pas être cohérent entre les exécutions.

Exemples

Trouver des familles par leurs relations

L’exemple suivant crée un graphique à partir d’un ensemble de paires enfants-parents et identifie les composants connectés à l’aide d’un family identificateur.

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

Sortie

name famille
Alice 0
Bob 0
Carol 0
Dave 0
Greg 0
Howard 0
Eve 1
Franc 1
Mallory 1
Kirk 1

Trouver un plus grand ancêtre commun pour chaque famille

L’exemple suivant utilise l’identificateur de composant family connecté et l’opérateur graph-match pour identifier le plus grand ancêtre de chaque famille dans un ensemble de données parentes enfants.

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

Sortie

famille Générations name
1 2 Mallory
0 2 Bob