graph-mark-components (versão prévia)
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft 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 |