Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
La fonction de graphique map() calcule une expression pour chaque edge ou nœud interne le long d’une longueur variable chemin et retourne un tableau dynamique de tous les résultats.
Remarque
Cette fonction est utilisée avec les de correspondance de graphique et les chemins d’accès les plus courts graphiques.
Syntaxe
map(*edge*, *expression*)'
map(inner_nodes(
expression de périphérie),)
Paramètres
| Nom | Catégorie | Obligatoire | Descriptif |
|---|---|---|---|
| de périphérie | string |
✔️ | Un bord de longueur variable de l’opérateur de correspondance de graphique ou opérateur de chemins d’accès les plus courts du graphique modèle. Pour plus d’informations, consultez notation de modèle Graph. |
| expression | string |
✔️ | Calcul à effectuer sur les propriétés de l'de périphérie ou nœud interne, lorsque inner_nodes est utilisé, dans le bord de longueur variable. Une propriété est référencée directement à l’aide du nom de propriété. L’expression est évaluée pour chaque bord ou nœud interne dans le bord de longueur variable. |
Retourne
Tableau dynamique dans lequel :
- La longueur du tableau correspond au nombre de bords ou de nœuds internes, lorsque inner_nodes est utilisé, dans le bord de longueur variable.
- Le tableau est vide pour les chemins de longueur nulle.
- Chaque élément du tableau correspond aux résultats de l’application de l’expression à chaque bord ou nœud interne dans le bord de longueur variable.
Exemples
Les exemples de cette section montrent comment utiliser la syntaxe pour vous aider à commencer.
Trouver la station et la ligne pour le trajet le plus court entre deux stations
L’exemple suivant montre comment utiliser l’opérateur graph-shortest-paths pour trouver le chemin le plus court entre le "South-West" et les stations de "North" dans un réseau de transport. Il ajoute des informations de ligne au chemin à l’aide de la fonction map(). La requête construit un graphique à partir des données connections, compte tenu des chemins d’accès jusqu’à cinq connexions longues.
Exécuter le de requête
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
de sortie
| De | chemin | À |
|---|---|---|
| Sud-ouest | [ « Sud (rouge) », « Central (rouge) », « Nord (rouge) » ] |
Nord |
Obtenir la liste des escales avec Wi-Fi dans tous les itinéraires entre deux stations
L’exemple suivant montre comment utiliser l’opérateur graph-match avec les fonctions all() et inner_nodes pour rechercher toutes les escales avec des Wi-Fi le long de tous les itinéraires entre deux stations dans un réseau de transport.
Exécuter le de requête
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, "")))
de sortie
| Escales | stopovers_with_wifi |
|---|---|
| Ouest->Centre | [ « Ouest », « Centre"] |
| Sud->Centre | [ « Central"] |