Publié le :

Types de Données pris en charge par SAS Viya Platform

Ce code est également disponible en : Deutsch English Español
En attente de validation
Le serveur CAS (Cloud Analytic Services) de SAS© Viya Platform gère nativement plusieurs types de données. Les types 'CHARACTER' et 'NUMERIC' sont les types traditionnels de SAS©. Le type 'VARBINARY' est spécifiquement utilisé pour les fichiers binaires (images, audio, documents). Les types 'INT32' et 'INT64' offrent une plus grande précision numérique que le type 'NUMERIC' traditionnel, et toutes les opérations effectuées sur le moteur CAS conservent cette précision. Cependant, les calculs dans les étapes DATA ou les procédures exécutées sur le moteur SAS©®9 sont convertis en valeurs 'NUMERIC' (DOUBLE). Le type 'VARCHAR' est caractérisé par une largeur variable et utilise la sémantique de caractère, contrairement à 'CHARACTER' qui a une largeur fixe et utilise la sémantique d'octets. Lors du chargement de données, les types non supportés sont automatiquement convertis aux types natifs du serveur CAS. Le document fournit également une table de compatibilité détaillée indiquant la prise en charge de divers types de données par différentes fonctionnalités de SAS© Viya (CAS Actions, CASL, Data Connectors, Procedures et DATA Step, DS2, FedSQL, Compute Server Processing).
1 Bloc de code
DATA STEP Data
Explication :
Cet exemple crée une table en mémoire CAS (`mycas.datatypes_example`) et démontre la déclaration de variables avec différents types de données pris en charge par le serveur CAS (CHARACTER, VARCHAR, INT32, INT64, DOUBLE). Le DATA step est utilisé pour peupler la table. Ensuite, la procédure `PROC CASUTIL` avec l'option `CONTENTS` est utilisée pour afficher les propriétés de la table, y compris les types de données inférés par CAS, ce qui permet de vérifier comment le serveur a traité les déclarations. Cela illustre la manière dont les données sont structurées et stockées dans l'environnement CAS.
Copié !
1/* Création d'une session CAS */
2options casport=5570 cashost="localhost";
3cas mysess;
4 
5/* Utilisation d'une bibliothèque CAS */
6LIBNAME mycas cas caslib=casuser;
7 
8/* Création d'une table CAS avec divers types de données */
9DATA mycas.datatypes_example;
10 LENGTH char_var $10 varchar_var varchar(20) int32_var int32 int64_var int64 double_var 8;
11 char_var = 'Texte';
12 varchar_var = 'Texte plus long';
13 int32_var = 12345;
14 int64_var = 1234567890123456789;
15 double_var = 123.456;
16 OUTPUT;
17RUN;
18 
19/* Affichage des propriétés de la table pour vérifier les types */
20PROC CASUTIL incaslib='casuser' outcaslib='casuser' host='localhost';
21 contents casdata='datatypes_example';
22RUN;
23 
24/* Libération de la session CAS */
25cas mysess terminate;
26 
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.

Documentation liée : Data Management

Sujet / Mot-cléLien vers la ressource
DOC Formats définis par l'utilisateur fr/sampleCode/FORMAT4C19
Banner
Le Conseil de l'Expert
Expert
Michael
Responsable de l'infrastructure Viya.
« L'arrivée du moteur CAS (Cloud Analytic Services) marque une rupture historique avec le moteur SAS 9 traditionnel. Pour la première fois, SAS sort du carcan "Numérique/Caractère" pour offrir une granularité digne des bases de données SQL modernes.

VARCHAR vs CHARACTER : C'est la révolution majeure pour le stockage. Le type CHARACTER (fixe) réserve toujours l'espace maximum défini, même si la cellule est vide (complétion par des espaces). Le type VARCHAR (variable) ne consomme que l'espace réellement utilisé par le texte. Sur des milliards de lignes, le gain en RAM dans CAS est colossal.

La précision des entiers (INT32/INT64) : Traditionnellement, SAS stocke tout en "Double Précision" (8 octets). CAS introduit de vrais types entiers. C'est crucial pour manipuler des identifiants très longs ou des clés primaires Big Data sans risque d'arrondi, tout en optimisant les calculs arithmétiques.

La sémantique des caractères (UTF-8) : CAS traite les VARCHAR en nombre de caractères et non en octets. C'est une sécurité indispensable dans un environnement international (Viya) où un symbole peut occuper plusieurs octets.

Attention à la conversion vers le Compute Server : C'est le point de vigilance : si vous repassez vos données d'une table CAS vers un DATA Step local (moteur SAS 9), vos INT64 ou VARCHAR seront reconvertis en types standards. Pour conserver la précision et les avantages de ces nouveaux types, privilégiez l'exécution de vos traitements directement dans CAS. »