Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
A map() função de grafo calcula uma expressão para cada nó interno ou de borda ao longo de um caminho de comprimento variável e retorna uma matriz dinâmica de todos os resultados.
Observação
Essa função é usada com os operadores graph-match e graph-shortest-paths .
Sintaxe
map(*edge*, *expression*)'
map(inner_nodes(
borda),expressão)
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| borda | string |
✔️ | Uma borda de comprimento variável do operador de correspondência de grafo ou do padrão do operador graph-shortest-paths . Para obter mais informações, consulte a notação de padrão do Graph. |
| expressão | string |
✔️ | O cálculo a ser executado sobre as propriedades do nó interno ou de borda, quando inner_nodes é usado, na borda de comprimento variável. Uma propriedade é referenciada usando o nome da propriedade diretamente. A expressão é avaliada para cada borda ou nó interno na borda de comprimento variável. |
Devoluções
Uma matriz dinâmica em que:
- O comprimento da matriz corresponde ao número de bordas ou nós internos, quando inner_nodes é usado, na borda de comprimento variável.
- A matriz está vazia para caminhos de comprimento zero.
- Cada elemento na matriz corresponde aos resultados da aplicação da expressão a cada borda ou nó interno na borda de comprimento variável.
Exemplos
Os exemplos nesta seção mostram como usar a sintaxe para ajudá-lo a começar.
Localize a estação e a linha para a rota mais curta entre duas estações
O exemplo a seguir mostra como usar o graph-shortest-paths operador para encontrar o caminho mais curto entre as estações e "South-West" as "North" estações em uma rede de transporte. Ele adiciona informações de linha ao caminho usando a map() função. A consulta constrói um grafo com base nos connections dados, considerando caminhos de até cinco conexões de comprimento.
let connections = datatable(from_station:string, to_station:string, line:string)
[
"Central", "North", "red",
"North", "Central", "red",
"Central", "South", "red",
"South", "Central", "red",
"South", "South-West", "red",
"South-West", "South", "red",
"South-West", "West", "red",
"West", "South-West", "red",
"Central", "East", "blue",
"East", "Central", "blue",
"Central", "West", "blue",
"West", "Central", "blue",
];
connections
| make-graph from_station --> to_station with_node_id=station
| graph-shortest-paths (start)-[connections*1..5]->(destination)
where start.station == "South-West" and destination.station == "North"
project from = start.station, path = map(connections, strcat(to_station, " (", line, ")")), to = destination.station
Saída
| De | caminho | para |
|---|---|---|
| Sudoeste | [ "Sul (vermelho)", "Central (vermelho)", "Norte (vermelho)" ] |
Norte |
Obter lista de escalas com Wi-Fi em todas as rotas entre duas estações
O exemplo a seguir mostra como usar o graph-match operador com as all() funções e inner_nodes funções para localizar todas as escalas com Wi-Fi ao longo de todas as rotas entre duas estações em uma rede de transporte.
let connections = datatable(from_station:string, to_station:string, line:string)
[
"Central", "North", "red",
"North", "Central", "red",
"Central", "South", "red",
"South", "Central", "red",
"South", "South-West", "red",
"South-West", "South", "red",
"South-West", "West", "red",
"West", "South-West", "red",
"Central", "East", "blue",
"East", "Central", "blue",
"Central", "West", "blue",
"West", "Central", "blue",
];
let stations = datatable(station:string, wifi:bool)
[
"Central", true,
"North", false,
"South", false,
"South-West", true,
"West", true,
"East", false
];
connections
| make-graph from_station --> to_station with stations on station
| graph-match cycles=none (start)-[connections*1..5]->(destination)
where start.station == "South-West" and destination.station == "East"
project stopovers = strcat_array(map(inner_nodes(connections), station), "->"),
stopovers_with_wifi = set_intersect(map(inner_nodes(connections), station), map(inner_nodes(connections), iff(wifi, station, "")))
Saída
| Escalas | stopovers_with_wifi |
|---|---|
| Centro-Oeste> | [ "Oeste", "Central"] |
| Centro-Sul> | [ "Central"] |