Les données (`table_with_char`) sont créées directement dans le script via un DATA STEP, puis utilisées comme source pour illustrer la conversion des types CHARACTER en VARCHAR lors du chargement dans CAS. Le `&datapath` est utilisé pour définir le chemin d'un CASLIB, mais ne représente pas une source de données externe non gérée par le script.
1 Bloc de code
LIBNAME/OPTIONS
Explication : Définit un LIBNAME `CASWORK` pour accéder au CASLIB `casuser` dans CAS. Modifie l'option `USER` pour que toutes les tables à un seul niveau soient créées par défaut dans `CASWORK` (donc dans CAS). Affiche la référence de session CAS active.
Copié !
libname CASWORK cas caslib=casuser;
options USER = CASWORK;
%put &_sessref_;
1
LIBNAME CASWORK cas caslib=casuser;
2
options USER = CASWORK;
3
%put &_sessref_;
4
2 Bloc de code
PROC CAS
Explication : Utilise PROC CAS pour interagir directement avec le serveur CAS. Les actions `table.dropCaslib` suppriment les CASLIBs 'sas7bdat' et 'sashdat' s'ils existent, sans générer d'erreur s'ils sont absents (`quiet = true`). L'action `addcaslib` ajoute ensuite un nouveau CASLIB nommé 'sas7bdat' qui pointe vers un chemin spécifié par la macro-variable `&datapath`, ce qui est une étape administrative pour gérer les sources de données CAS.
Explication : La déclaration `caslib _all_ assign;` lie tous les CASLIBs définis dans la session CAS à la session SAS cliente, les rendant accessibles via leurs LIBNAMEs SAS correspondants.
Copié !
caslib _all_ assign;
1
caslib _all_ assign;
4 Bloc de code
DATA STEP Data
Explication : Un DATA STEP est utilisé pour créer une table SAS nommée `table_with_char` dans le CASLIB `sas7bdat`. Cette table est définie avec trois variables de type CHARACTER (`a`, `b`, `c`) de différentes longueurs, et est remplie de données de test, y compris des chaînes intentionnellement longues pour illustrer l'efficacité de la conversion VARCHAR.
Copié !
data sas7bdat.table_with_char;
length a $ 300 b $ 15 c $ 16;
a='a300'; b='b15' ; c='c16' ; output;
a='a300300'; b='b151515'; c='c161616'; output;
c='c161616161616161';
b='b15151515151515';
a="a300qzwsxedcrfvtgbyhnujmiklopqazwsxedcrfvtgbyhnujmikolp12345678901234567890123456789012345678901234567890123456789012345678901234567890"; output;
run;
Explication : PROC CASUTIL est invoquée pour charger la table SAS `table_with_char` (située dans le CASLIB `sas7bdat`) vers le CASLIB `casuser` sous le nouveau nom `table_with_varchar`. L'option `importoptions=(varcharconversion=16)` est cruciale : elle indique à CAS de convertir automatiquement les variables de type CHARACTER en VARCHAR, avec un seuil de 16 octets, optimisant ainsi le stockage en utilisant la longueur réelle des chaînes au lieu de leur longueur maximale prédéfinie.
Explication : Ce bloc utilise PROC CAS pour d'abord définir le CASLIB par défaut de la session sur `casuser` via `sessionProp.setSessOpt`. Ensuite, l'action `table.columninfo` est exécutée pour afficher les informations détaillées sur les colonnes de la table `table_with_varchar` dans CAS. Cela permet de vérifier que la conversion des types de données de CHARACTER à VARCHAR a bien été appliquée.
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
« Le passage au VARCHAR est un levier de performance souvent sous-estimé. En couplant cette conversion à l'action table.columninfo, l'administrateur valide non seulement le gain technique, mais assure aussi une meilleure fluidité des traitements analytiques en aval. C'est une étape de préparation de données (Data Prep) essentielle pour quiconque travaille sur des volumes de données textuelles importants dans un environnement distribué. »
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.