你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

graph-mark-components 运算符(预览版)

适用于:✅Microsoft Fabric✅Azure 数据资源管理器Azure MonitorMicrosoft✅ Sentinel

graph-mark-components 运算符查找图形的所有已连接组件,并使用组件标识符标记每个节点。

注意

此运算符与 make-graph 运算符结合使用。

语法

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

参数

客户 类型​​ 必需 说明
G string ✔️ 图形源。
Kind string 连接的组件类型 weak(默认值)或 strong。 弱组件是由路径连接的一组节点,忽略边缘的方向。 强组件是在两个方向之间连接的一组节点,考虑边缘的方向。
ComponentId string 表示组件标识符的属性名称。 默认的属性名称为 ComponentId

返回

运算符 graph-mark-components 返回一个图形结果,其中每个节点在 ComponentId 属性中都有一个组件标识符。 标识符是组件从零开始的连续索引。 每个组件索引都是任意选择的,在运行中可能不一致。

示例

根据他们的关系查找系列

以下示例从一组子-父对创建图形,并使用 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

输出

name family
Alice 0
Bob 0
Carol 0
Dave 0
Greg 0
Howard 0
Eve 1
Frank 1
Mallory 1
Kirk 1

为每个系列查找最常见的上级

以下示例使用连接的组件 family 标识符和 graph-match 运算符在一组子-父数据中标识每个系列的最高上级。

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

输出

family 代数 name
1 2 Mallory
0 2 Bob