Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Operator graph-mark-components znajduje wszystkie połączone składniki grafu i oznacza każdy węzeł za pomocą identyfikatora składnika.
Uwaga
Ten operator jest używany z operatorem make-graph.
Składnia
G|graph-mark-components [ Kind] [kind=with_component_id=ComponentId]
Parametry
| Nazwisko | Typ | Wymagania | opis |
|---|---|---|---|
| G | sznurek | ✔️ | Źródło grafu. |
| Rodzaj | sznurek | Rodzaj połączonego składnika ( weak wartość domyślna) lub strong. Słaby składnik to zestaw węzłów połączonych ścieżką, ignorując kierunek krawędzi. Silny składnik to zestaw węzłów połączonych w obu kierunkach, biorąc pod uwagę kierunki krawędzi. |
|
| Identyfikator składnika | sznurek | Nazwa właściwości, która określa identyfikator składnika. Domyślna nazwa właściwości to ComponentId. |
Zwraca
Operator graph-mark-components zwraca wynik grafu , w którym każdy węzeł ma identyfikator składnika we właściwości ComponentId . Identyfikator jest zera kolejnym indeksem składników. Każdy indeks składników jest wybierany dowolnie i może nie być spójny w różnych przebiegach.
Przykłady
Poniższy przykład tworzy graf na podstawie zestawu par nadrzędnych podrzędnych i identyfikuje połączone składniki przy użyciu identyfikatora 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
Wyjście
| nazwa | rodzina |
|---|---|
| Alicja | 0 |
| Robert | 0 |
| Kolęda | 0 |
| Dave | 0 |
| Greg | 0 |
| Howard | 0 |
| Przeddzień | 1 |
| Szczery | 1 |
| Mallory | 1 |
| Kirk | 1 |
W poniższym przykładzie użyto identyfikatora połączonego składnika family i graph-match operatora w celu zidentyfikowania największego przodka każdej rodziny w zestawie danych nadrzędnych podrzędnych.
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
Wyjście
| rodzina | Pokoleń | nazwa |
|---|---|---|
| 1 | 2 | Mallory |
| 0 | 2 | Robert |