Compartir a través de


Operador graph-mark-components (versión preliminar)

Se aplica a: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

El graph-mark-components operador busca todos los componentes conectados de un grafo y marca cada nodo con un identificador de componente.

Nota:

Este operador se usa con el operador make-graph de .

Sintaxis

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

Parámetros

Nombre Tipo Obligatorio Descripción
G cuerda / cadena ✔️ Origen del grafo.
Variante cuerda / cadena El tipo de componente conectado, ya sea weak (valor predeterminado) o strong. Un componente débil es un conjunto de nodos conectados por una ruta de acceso, ignorando la dirección de los bordes. Un componente seguro es un conjunto de nodos conectados en ambas direcciones, teniendo en cuenta las direcciones de los bordes.
ComponentId cuerda / cadena Nombre de propiedad que indica el identificador del componente. El nombre de propiedad predeterminado es ComponentId.

Devoluciones

El graph-mark-components operador devuelve un resultado de grafo , donde cada nodo tiene un identificador de componente en la propiedad ComponentId . El identificador es un índice consecutivo basado en cero de los componentes. Cada índice de componente se elige arbitrariamente y es posible que no sea coherente entre ejecuciones.

Ejemplos

En el ejemplo siguiente se crea un gráfico a partir de un conjunto de pares primarios secundarios e se identifican los componentes conectados mediante un family identificador.

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

Salida

nombre familia
Alice 0
Bob 0
Villancico 0
Dave 0
Greg 0
Howard 0
Víspera 1
Franco 1
Mallory 1
Iglesia 1

En el ejemplo siguiente se usa el identificador de componente family conectado y el graph-match operador para identificar el antecesor más grande de cada familia en un conjunto de datos primarios secundarios.

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

Salida

familia Generaciones nombre
1 2 Mallory
0 2 Bob