L'objectif : Répartir intelligemment les données sur les différents nœuds (Workers) de votre environnement CAS pour accélérer les jointures (BY-group processing) et les agrégations.
Explications détaillées : Par défaut, CAS distribue les lignes de manière aléatoire (Round-Robin) pour équilibrer la charge. Cependant, si vous savez que vos futurs traitements feront des regroupements sur une variable spécifique (par exemple l'identifiant client), charger la table en la partitionnant sur cette clé permet de s'assurer que toutes les lignes d'un même client se trouvent sur le même Worker. Cela élimine les transferts réseau inter-nœuds (shuffle) lors des calculs.
Exemple 1 : Charger et partitionner à la volée
2
3
4
5
6
7
table.loadTable /
caslib="Public"
path="transactions.sashdat"
casOut={name="TRANSAC_PART", caslib="Public", replace=True}
groupBy={"ID_Client"}; /* Les transactions d'un même ID seront sur le même nœud */
quit;
Exemple 2 : Sauvegarder une table partitionnée sur le disque
2
3
4
5
6
7
table.save /
table={name="TRANSAC_PART", caslib="Public", groupBy={"ID_Client"}}
name="transactions_partitionnees.sashdat"
caslib="Public"
replace=True;
quit;






