CAS

Charger et Décharger des Données SQL Server dans SAS Viya CAS

Simon 41 vistas
Nivel de dificultad
Débutant
Publicado el :
Michael

Consejo del experto

Michael

En architecture CAS, la persistance de la donnée n'est pas automatique : sans l'option PROMOTE, votre table disparaîtra irrémédiablement dès la fermeture de la session. Pour industrialiser vos flux SQL, adoptez systématiquement la logique 'Drop & Load' : nettoyez la mémoire via DROPTABLE avec l'option QUIET pour éviter les conflits, puis rechargez en promouvant la table pour la rendre accessible à tous les utilisateurs

L'automatisation des flux de données entre une base de données relationnelle (comme SQL Server) et l'environnement SAS© Viya Cloud Analytic Services (CAS) est une tâche courante pour les ingénieurs de données. Cependant, la gestion de la mémoire CAS nécessite une approche spécifique pour rafraîchir les tables quotidiennement sans erreur.

Cet article détaille la procédure correcte pour décharger (unload) et recharger (load) des données via une connexion ODBC, en évitant les erreurs de connexion fréquentes.

Charger et Décharger des Données SQL Server dans SAS Viya CAS -

Le Problème : Confusion entre Modification et Déchargement

Une erreur fréquente lors de la tentative de rafraîchissement des données est l'utilisation incorrecte des instructions PROC CASUTIL.

Par exemple, tenter d'utiliser l'instruction ALTERTABLE pour décharger une table est une mauvaise pratique qui échouera. De même, lancer une procédure de chargement sans avoir explicitement ouvert une session CAS ou défini la librairie source entraînera l'erreur classique : 

ERROR: A connection to the Cloud Analytic Services session could not be made.

La Solution : Un Workflow en 3 Étapes

Pour automatiser ce processus (par exemple pour un traitement journalier), il faut suivre une séquence précise : établir la connexion, nettoyer la mémoire CAS, puis recharger les nouvelles données.

Étape 1 : Établir la Connexion et la Session

Avant toute manipulation dans CAS, vous devez définir votre librairie source (via ODBC) et initier votre session CAS.

1/* 1. Définition de la connexion à la base SQL Server */
2LIBNAME sql_src ODBC NOPROMPT="dsn=MonDSN;Trusted_Connection=yes" SCHEMA=DBO;
3 
4/* 2. Démarrage de la session CAS et définition de la caslib par défaut */
5cas casauto sessopts=(caslib="casuser");

Étape 2 : Décharger la Table (Unload)

Pour rafraîchir une table, il faut d'abord la retirer de la mémoire vive du serveur CAS. L'instruction correcte n'est pas ALTERTABLE, mais DROPTABLE. Cela supprime la table de la mémoire sans toucher au fichier source physique si celui-ci est persistant.

1PROC CASUTIL;
2 /* Suppression de l'ancienne version de la table en mémoire */
3 DROPTABLE CASDATA="MaTable_Cible" INCASLIB="casuser" QUIET;
4QUIT;
Note : L'option QUIET permet d'éviter une erreur si la table n'existe pas encore (lors de la première exécution).

Étape 3 : Charger les Données (Load)

Pour charger des données depuis une librairie SAS© (définie à l'étape 1) vers CAS, utilisez la syntaxe LOAD DATA= (chargement côté client). L'option PROMOTE est cruciale si vous souhaitez que la table reste accessible aux autres utilisateurs ou sessions après la fin de votre exécution.

1PROC CASUTIL;
2 /* Chargement des données depuis la source SQL vers CAS */
3 LOAD DATA=sql_src.MaTable_Source
4 CASOUT="MaTable_Cible"
5 OUTCASLIB="casuser"
6 PROMOTE;
7
8 /* Vérification du contenu */
9 CONTENTS CASDATA="MaTable_Cible";
10RUN;

Résumé des Bonnes Pratiques

  1. Vérifiez votre version : Assurez-vous que votre syntaxe correspond à votre version de SAS© Viya (ce code est valide pour la V.03.05 et ultérieures).

  2. Utilisez DROPTABLE : Pour vider la mémoire avant un rechargement.

  3. Privilégiez LOAD DATA= : Pour importer des données définies par un LIBNAME.

  4. N'oubliez pas PROMOTE : Sans cela, votre table disparaîtra à la fin de votre session.