Arrêtez de saturer la RAM de votre CAS ! Le secret ultime du Load Table sous SAS Viya

Cet article en deux mots :

Charger des gigaoctets de données sature vite la mémoire du serveur CAS. Cet article explique comment utiliser les options where et vars avec l'action CASL loadTable. Apprenez à filtrer vos tables à la source pour économiser la RAM et accélérer drastiquement vos traitements sur SAS Viya.

L'objectif : Charger une table de plusieurs gigaoctets en RAM n'est pas toujours pertinent si vous n'avez besoin que d'un sous-ensemble. Filtrer les données dès la lecture (pendant le loadTableAction d'action CAS permettant de charger une table en mémoire depuis un caslib. Elle rend les données disponibles pour l'analyse analytique distribuée et le traitement haute performance.) évite de saturer la mémoire 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. et accélère considérablement le temps de chargement.

Explications détaillées : CASLLangage de script de SAS Viya utilisé pour interagir avec le serveur CAS. Il permet de combiner des actions CAS, de gérer la logique de programmation et de manipuler les résultats en mémoire. permet d'appliquer des clauses SQL-like directement lors de la lecture du fichier physique. L'option where s'applique avant même que la donnée ne s'installe en RAM. De même, l'option vars agit comme un keep classique en SAS, limitant le chargement aux seules variablesColonnes d'une table SAS contenant des données spécifiques (numériques ou caractères). Elles possèdent des attributs comme le nom, le type, la longueur, l'étiquette et le format d'affichage. nécessaires. C'est une bonne pratique d'architecture pour les environnements partagés où la RAM est sous tension.

Exemple 1 : Filtrer les lignes au chargement (Clause Where)

1
2
3
4
5
6
7
proc cas;
table.loadTable /
caslib="Public"
path="historique_ventes.sashdat"
casOut={name="VENTES_2026", caslib="Public", replace=True}
where="Year = 2026 and Status = 'COMPLETED'";
quit;

Exemple 2 : Ne charger que des colonnes spécifiques (Clause Vars)

1
2
3
4
5
6
7
proc cas;
table.loadTable /
caslib="Public"
path="clientele_globale.csv"
casOut={name="CLIENTS_LIGHT", caslib="Public", replace=True}
vars={"ID_Client", "Code_Postal", "Segment"}; /* Seules ces 3 colonnes seront en RAM */
quit;

Nicolas Housset

Passionné d'informatique, je suis Consultant et expert technique SAS VIYA, également co-fondateur de la société Flexcelite. Spécialisé dans les technologies SAS (Viya, 9.4) et les infrastructures associées (Linux, Hadoop, Azure), ce blog est mon espace pour partager mes mémos techniques et retours d'expérience.