Partilhar via


operador gráfico-marca-componentes (visualização)

Aplica-se a: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

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

Observação

Este operador é usado com o operador de make-graph .

Sintaxe

G|graph-mark-components [ Tipokind=] [with_component_id=ComponentId]

Parâmetros

Designação Tipo Necessário Descrição
G corda ✔️ A fonte do gráfico.
Tipo corda 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 corda O nome da propriedade que denota o identificador do componente. O nome da propriedade padrão é ComponentId.

Devoluções

O operador graph-mark-components retorna um gráfico resultado, onde 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

O exemplo a seguir cria um gráfico a partir de um conjunto de pares filho-pai e identifica componentes conectados usando um identificador family.

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

Realização

Designação Família
Adriana 0
Joaquim 0
Carol 0
Fábio 0
Greg 0
Edgar 0
Véspera 1
Fábio 1
Mallory 1
Kirk 1

O exemplo a seguir usa o componente conectado family identificador e o operador graph-match 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 = map(childOf, child), family = ancestor.family
| summarize (generations, name) = arg_max(array_length(lineage),name) by family

Realização

Família Gerações Designação
1 2 Mallory
0 2 Joaquim