Haute disponibilité et MPP : Comment l'action répartit-elle les blocs sur vos serveurs distribués ?

Mécanique de Distribution et Résilience CAS

Dans une architecture distribuée (MPPLe Massively Parallel Processing (MPP) est une architecture informatique où plusieurs processeurs (ou nœuds de calcul) travaillent simultanément sur différentes parties d'une même tâche complexe. Contrairement au traitement séquentiel, le MPP divise les données en fragments gérés en parallèle, réduisant drastiquement le temps d'exécution.

Dans l'écosystème SAS Viya 4, l'architecture MPP est incarnée par le moteur CAS (Cloud Analytic Services). Elle permet de distribuer les calculs analytiques et d'IA sur l'ensemble d'un cluster Kubernetes ou OpenShift, offrant une puissance de traitement quasi illimitée pour les Big Data.
), le comportement par défaut de l'action est de conserver les lignes sur leur nœud (worker) d'origine pour une exécution quasi instantanée. Toutefois, si vos données sont déséquilibrées (data skew), l'activation du paramètre distributeRowsOption de l'action DATA Step sous SAS Viya permettant de répartir les lignes d'une table entre les nœuds d'un serveur CAS pour optimiser le traitement parallèle et la charge mémoire. force un brassage réseau pour redistribuer uniformément les lignes sur tous les nœuds. Pour la résilience, le paramètre replication crée des blocs de basculement (failover blocks). Enfin, dans un environnement cloud élastique tel que KubernetesKubernetes est l'orchestrateur open source gérant le déploiement, la mise à l'échelle et l'exécution conteneurisée des microservices de l'architecture cloud-native de SAS Viya., le paramètre tableRedistUpPolicyParamètre de SAS Viya contrôlant la redistribution des données CAS lors de l'ajout de nœuds au cluster. Il définit si les tables existantes sont rééquilibrées pour optimiser les performances. configuré sur REBALANCEAction CAS redistribuant les partitions d'une table de manière uniforme sur tous les nœuds actifs du cluster. Elle optimise la charge de travail distribuée et les performances de calcul. ordonnera au système de redistribuer les données si de nouveaux pods workers s'ajoutent dynamiquement au clusterEnsemble de nœuds (machines) interconnectés, gérés par Kubernetes, qui collaborent pour exécuter les microservices et le moteur CAS de SAS Viya, assurant haute disponibilité et passage à l'échelle..

Illustration de la réponse

Exemple de Code Additionnel

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/* CASL Script : Redistribution et Réplication de Table MPP
(c) Nicolas Housset 2026 - Code SAS pour VIYA 4 - testé et validé en version 2024.09 */


proc cas;
/* Chargement avec redistribution forcée et haute disponibilité */
table.loadTable /
path="ventes_historiques.sashdat",
caslib="Public",
casout={
name="ventes_mpp",
caslib="Public",
replace=true,
/* Activation de la réplication pour la HA (Haute Disponibilité) */
replication=1,
/* Force le rééquilibrage sur tous les workers actifs */
distributeRows=true
};

/* Vérification de la répartition des blocs par nœud */
table.tableDetails /
name="ventes_mpp",
caslib="Public";
quit;

Exemples pour l'action copyTable

Copie simple d'une table

Une duplication basique de la table 'source_data' vers 'target_data' dans la même bibliothèque.

Copie avancée avec calculs, filtrage et compression

Cet exemple montre comment copier uniquement les voitures de luxe, créer une colonne calculée pour le ratio puissance/poids, et compresser le résultat pour économiser de la mémoire %https://go.documentation.sas.com/doc/en/pgmsascdc/v_069/caspg/p1xt9526uq5etwn1vmnk8koh0k6y.htm#p0iuxq2k5gy33wn1vmko6nc8ofq3%.

Promotion d'une table copiée

Copie d'une table personnelle vers une bibliothèque partagée en la rendant disponible pour tous les autres utilisateurs (promotion).