Graph-mark-components – operátor (Preview)
Platí pro: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Operátor graph-mark-components
najde všechny propojené součásti grafu a označí každý uzel identifikátorem komponenty.
Syntaxe
G graph-mark-components
|
[kind
=
Kind] [with_component_id
=
ComponentId]
Parametry
Název | Type | Požadováno | Popis |
---|---|---|---|
G | string | ✔️ | Zdroj grafu. |
Kind | string | Druh připojené komponenty (výchozí weak ) nebo strong . Slabá komponenta je sada uzlů připojených cestou a ignoruje směr okrajů. Silná komponenta je sada uzlů připojených v obou směrech vzhledem k směrům okrajů. |
|
ComponentId | string | Název vlastnosti, který označuje identifikátor komponenty. Výchozí název vlastnosti je ComponentId . |
Návraty
Operátor graph-mark-components
vrátí výsledek grafu , kde každý uzel má identifikátor komponenty ve vlastnosti ComponentId . Identifikátor je po sobě jdoucí index komponent založený na nule. Každý index komponent je zvolen libovolně a nemusí být konzistentní napříč spuštěními.
Příklady
Hledání rodin podle jejich vztahů
Následující příklad vytvoří graf ze sady dvojic podřízených nadřazených položek a identifikuje připojené komponenty pomocí identifikátoru 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
Výstup
name | family |
---|---|
Alice | 0 |
Robert | 0 |
Koleda | 0 |
Dave | 0 |
Greg | 0 |
Howard | 0 |
Předvečer | 0 |
Upřímný | 0 |
Mallory | 0 |
Kostel | 0 |
Najít nejlepšího společného předka pro každou rodinu
Následující příklad používá identifikátor připojené komponenty family
a graph-match
operátor k identifikaci největšího nadřazeného prvku každé rodiny v sadě podřízených nadřazených dat.
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
Výstup
family | generace | name |
---|---|---|
1 | 2 | Mallory |
0 | 2 | Robert |