graph-mark-components 運算符 (預覽)
適用於:✅Microsoft網狀架構✅Azure 數據✅總管 Azure 監視器✅Microsoft Sentinel
graph-mark-components
運算子會尋找圖形的所有已連接元件,並以元件標識碼標記每個節點。
注意
這個運算子會與 make-graph運算子搭配使用。
語法
G graph-mark-components
|
[ Kind] [with_component_id
=
=
kind
ComponentId]
參數
姓名 | 類型 | 必要 | 描述 |
---|---|---|---|
G | 字串 | ✔️ | 圖表來源。 |
種類 | 字串 | 連線的元件種類,可以是 weak (預設值) 或 strong 。 弱式元件是一組由路徑連接的節點,忽略邊緣的方向。 強元件是一組以兩個方向連接的節點,考慮邊緣的方向。 |
|
ComponentId | 字串 | 表示元件識別碼的屬性名稱。 預設屬性名稱稱為 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 | 系列 |
---|---|
Alice | 0 |
Bob | 0 |
頌歌 | 0 |
Dave | 0 |
格雷格 | 0 |
Howard | 0 |
Eve | 1 |
弗蘭克 | 1 |
馬婁裡 | 1 |
柯克 | 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
輸出
系列 | 代 | NAME |
---|---|---|
1 | 2 | 馬婁裡 |
0 | 2 | Bob |