Partager via


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

S’applique à : ✅Microsoft Fabric

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é avec l’opérateur make-graph .

Syntaxe

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

Paramètres

Nom Catégorie Requise Descriptif
G ficelle ✔️ Source du graphique.
Genre ficelle 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 ficelle 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

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

nom famille
Alice 0
Pendiller 0
Carole 0
Dave 0
Greg 0
Howard 0
Veille 1
Franc 1
Mallory 1
Kirk 1

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

Sortie

famille Générations nom
1 2 Mallory
0 2 Pendiller