Compartilhar via


graph-mark-components (versão prévia)

Aplica-se a: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

O graph-mark-components operador localiza todos os componentes conectados de um gráfico e marca cada nó com um identificador de componente.

Observação

Esse operador é usado em conjunto com o operador make-graph.

Sintaxe

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

Parâmetros

Nome Digitar Obrigatória Descrição
G string ✔️ A fonte do gráfico.
Kind string O tipo de componente conectado, weak (padrão) ou strong. Um componente fraco é um conjunto de nós conectados por um caminho, ignorando a direção das bordas. Um componente forte é um conjunto de nós conectados em ambas as direções, considerando as direções das bordas.
ComponentId string O nome da propriedade que indica o identificador do componente. O nome da propriedade padrão é ComponentId.

Devoluções

O graph-mark-components operador retorna um resultado de gráfico , em que cada nó tem um identificador de componente na propriedade ComponentId . O identificador é um índice consecutivo baseado em zero dos componentes. Cada índice de componente é escolhido arbitrariamente e pode não ser consistente entre as execuções.

Exemplos

Encontre famílias por seus relacionamentos

O exemplo a seguir cria um gráfico a partir de um conjunto de pares filho-pai e identifica os componentes conectados usando um 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

Saída

name family
Alice 0
Bob 0
Carol 0
Dave 0
Greg 0
Howard 0
Ev 1
Franco 1
Mallory 1
Kirk 1

Encontre um ancestral comum para cada família

O exemplo a seguir usa o identificador de componente family conectado e o graph-match operador para identificar o maior ancestral de cada família em um conjunto de dados filho-pai.

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

Saída

family Gerações name
1 2 Mallory
0 2 Bob