optNetwork

loadGraph

##set_optnetwork

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.

Syntaxe Officielle
optNetwork.loadGraph /
deterministic=True | False,
direction="DIRECTED" | "UNDIRECTED",
display={displayTables},
distributed=True | False,
graph=integer,
indexOffset=integer,
links={castable},
linksVar={linksVarOpt},
logFreqTime=integer,
logLevel="AGGRESSIVE" | "BASIC" | "MODERATE" | "NONE",
multiLinks=True | False,
nodes={castable},
nodesVar={nodesVarOpt},
nThreads=integer,
outGraphList={casouttable},
outLinks={casouttable},
outNodes={casouttable},
outputTables={outputTables},
selfLinks=True | False,
standardizedLabels=True | False,
standardizedLabelsOut=True | False

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).

1DATA casuser.routes;
2 INPUT from $ to $ distance;
3 DATALINES;
4Paris Lyon 450
5Lyon Marseille 300
6Paris Lille 220
7Lille Londres 280
8;
9RUN;

Exemples d'utilisation

Chargement basique d'un graphe

On charge simplement la table des routes en mémoire pour une utilisation ultérieure.

1PROC CAS;
2 optNetwork.loadGraph /
3 links={name="routes"},
4 direction="DIRECTED";
5RUN;
Résultat Attendu :
Le log affichera l'ID du graphe généré (souvent 0 pour le premier) et le nombre de nœuds et liens chargés.
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.

1PROC 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";
11RUN;
Résultat Attendu :
Le graphe est chargé en mode non-orienté et distribué. Une table CAS 'inventaire_graphes' est créée, listant les détails techniques du graphe en mémoire, et ses données sont affichées dans les résultats.