Dela via


graph-mark-components-operator (förhandsversion)

Gäller för: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

Operatorn graph-mark-components hittar alla anslutna komponenter i ett diagram och markerar varje nod med en komponentidentifierare.

Anmärkning

Den här operatorn används med operatorn make-graph.

Syntax

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

Parameterar

Namn Typ Krävs Beskrivning
G snöre ✔️ Grafkällan.
Typ snöre Den anslutna komponenttypen, antingen weak (standard) eller strong. En svag komponent är en uppsättning noder som är anslutna via en sökväg och ignorerar kantriktningen. En stark komponent är en uppsättning noder som är anslutna i båda riktningarna, med tanke på kanternas riktningar.
ComponentId snöre Egenskapsnamnet som anger komponentidentifieraren. Standardegenskapsnamnet är ComponentId.

Retur

Operatorn graph-mark-components returnerar ett diagramresultat , där varje nod har en komponentidentifierare i egenskapen ComponentId . Identifieraren är ett nollbaserat på varandra följande index för komponenterna. Varje komponentindex väljs godtyckligt och kanske inte är konsekvent mellan körningar.

Exempel

I följande exempel skapas ett diagram från en uppsättning underordnade överordnade par och anslutna komponenter identifieras med hjälp av en family identifierare.

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

Resultat

namn familj
Alice 0
Guppa 0
Carol 0
Dave 0
Greg 0
Howard 0
Afton 1
Rättfram 1
Mallory 1
Kirk 1

I följande exempel används den anslutna komponentidentifieraren family och operatorn graph-match för att identifiera den största överordnade för varje familj i en uppsättning underordnade överordnade data.

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

Resultat

familj generationer namn
1 2 Mallory
0 2 Guppa