loadGraph
Description
L'action loadGraph est votre ticket d'entrée pour la performance dans le monde des réseaux. Au lieu de demander à SAS de relire vos tables à chaque fois que vous voulez calculer un chemin ou détecter des communautés, cette action 'gare' votre graphe directement dans la mémoireGemini said
Espace de stockage temporaire (RAM) utilisé par le moteur CAS pour charger et traiter les données à haute vitesse, minimisant les accès disque pour optimiser les performances de SAS Viya. vive du serveur CASMoteur analytique "in-memory" de SAS Viya. Il traite les données en parallèle (MPP) sur plusieurs nœuds pour offrir une puissance de calcul massive et une exécution ultra-rapide des actions.. C'est un peu comme si votre graphe passait du mode 'disque dur poussiéreux' au mode 'autoroute allemande'. Une fois chargé, le graphe reçoit un identifiant numérique (ID) que vous pouvez passer aux autres actions de l'action setGemini said
Groupe logique de fonctionnalités CAS (Cloud Analytic Services) contenant des actions spécifiques (statistiques, data mining, etc.) pour traiter les données en mémoire de manière optimisée. Network Optimization . C'est propre, c'est rapide, et ça évite à votre serveur de transpirer inutilement.
Paramètres Clés
| Nom du paramètre | Description |
|---|---|
| links | Spécifie la table CAS d'entrée contenant les données des liens (arcs). C'est le squelette de votre réseau. |
| nodes | Spécifie la table CAS d'entrée contenant les données des nœuds (sommets). Optionnel si vos nœuds n'ont pas d'attributs particuliers. |
| direction | Indique si les liens ont un sens unique (DIRECTED) ou si on peut y circuler dans les deux sens comme dans une rue piétonne (UNDIRECTED). |
| distributed | Si mis à True, le graphe est éparpillé sur tous les nœuds du cluster CAS. Idéal pour les graphes gigantesques qui ne rentreraient pas dans une seule machine. |
| linksVar | Permet de mapper les noms de colonnes de votre table links (poids, source, destination) aux noms attendus par l'algorithme. |
| nodesVar | Permet de mapper les noms de colonnes de votre table nodes (identifiant, poids). |
| outGraphList | Génère une table contenant la liste et le statut des graphes actuellement résidant en mémoire. Pratique pour faire l'inventaire ! |
| multiLinks | Autorise ou non l'existence de plusieurs liens entre les deux mêmes nœuds. Parce que parfois, un seul chemin ne suffit pas. |
| standardizedLabels | Si vos données utilisent déjà des entiers consécutifs pour les IDs de nœuds, activez ceci pour gagner encore plus de temps. |
Préparation des données
Création d'un réseau de transport simple
Nous créons une table de liens représentant des routes entre des villes avec une distance (poids).
| 1 | DATA casuser.routes; |
| 2 | INPUT from $ to $ distance; |
| 3 | DATALINES; |
| 4 | Paris Lyon 450 |
| 5 | Lyon Marseille 300 |
| 6 | Paris Lille 220 |
| 7 | Lille Londres 280 |
| 8 | ; |
| 9 | RUN; |
Exemples d'utilisation
Chargement basique d'un graphe
On charge simplement la table des routes en mémoire pour une utilisation ultérieure.
| 1 | PROC CAS; |
| 2 | optNetwork.loadGraph / |
| 3 | links={name="routes"}, |
| 4 | direction="DIRECTED"; |
| 5 | RUN; |
Résultat Attendu :
Chargement complet avec attributs et inventaire
Exemple avancé avec définition précise des variables, activation du mode distribué et génération d'un rapport d'inventaire.
| 1 | PROC CAS; |
| 2 | optNetwork.loadGraph / |
| 3 | links={name="routes"}, |
| 4 | linksVar={from="from", to="to", weight="distance"}, |
| 5 | direction="UNDIRECTED", |
| 6 | distributed=true, |
| 7 | multiLinks=false, |
| 8 | outGraphList={name="inventaire_graphes", replace=true}, |
| 9 | logLevel="AGGRESSIVE"; |
| 10 | TABLE.fetch / TABLE="inventaire_graphes"; |
| 11 | RUN; |