table copyTable

Préparation Haute Disponibilité pour Détection de Fraude

Scénario de test & Cas d'usage

Contexte Métier

Pour l'entraînement d'un modèle de détection de fraude en temps réel, la banque a besoin de redistribuer un grand volume de logs de transactions sur tous les nœuds de calcul (workers) pour paralléliser les traitements. De plus, la tolérance aux pannes est critique, nécessitant une réplication des blocs de données.
À propos du Set : table

Chargement, sauvegarde et gestion des tables en mémoire.

Découvrir toutes les actions de table
Préparation des Données

Génération simulée d'un volume plus important de logs de transactions.

Copié !
1DATA casuser.trans_logs;
2 DO i=1 to 10000;
3 trans_id = i;
4 amount = rand('UNIFORM') * 1000;
5 merchant_code = floor(rand('UNIFORM') * 50);
6 OUTPUT;
7 END;
8 RUN;

Étapes de réalisation

1
Vérification de la distribution initiale (souvent concentrée sur un seul nœud après un data step simple).
Copié !
1 
2PROC CAS;
3 
4TABLE.tableDetails / TABLE="trans_logs";
5 
6 
7RUN;
8 
2
Copie optimisée : Redistribution des lignes sur les workers, compression pour économiser la RAM, réplication pour la sécurité, et promotion globale.
Copié !
1PROC CAS;
2 TABLE.copyTable /
3 distributeRows=true,
4 TABLE={caslib="casuser", name="trans_logs"},
5 casout={caslib="casuser", name="trans_logs_prod",
6 compress=true,
7 replication=1,
8 promote=true,
9 replace=true};
10 RUN;

Résultat Attendu


La table 'trans_logs_prod' est accessible globalement. Les données sont compressées et les lignes sont équitablement réparties entre les workers disponibles (vérifiable via tableDetails), avec une copie de redondance (replication=1).