Publié le :

Informations sur les colonnes via Data Connector ODBC

Ce code est également disponible en : Deutsch English Español
En attente de validation
Le programme commence par définir des variables macro pour le type de source de données (ODBC), le nom de la session CAS et l'alias de la CASLIB. Il inclut des placeholders pour les informations de connexion (nom d'utilisateur, mot de passe, base de données, schéma). Après avoir établi une session CAS, il utilise l'action `addCaslib` de PROC CAS pour créer une CASLIB pointant vers la source ODBC spécifiée, permettant ainsi à CAS d'accéder aux données externes. Ensuite, un DATA STEP est utilisé pour créer une table en mémoire nommée 'COLUMNSAMPLE' au sein de cette CASLIB, en utilisant des données fournies directement dans le script (datalines). Le script procède ensuite à l'utilisation de l'action CAS `table.columnInfo` de trois manières différentes : d'abord pour obtenir des informations sur toutes les colonnes de 'COLUMNSAMPLE', puis pour des variables spécifiées avec le paramètre `vars`, et enfin avec le paramètre `inputs` comme méthode alternative pour sélectionner les variables. Le script se termine par la terminaison de la session CAS.
Analyse des données

Type : MIXTE


Les données utilisées pour la démonstration (table 'COLUMNSAMPLE') sont créées directement dans le script via des instructions DATALINES, ce qui en fait une source interne. Cependant, le script est configuré pour se connecter à une source de données externe (ODBC) via l'action `addCaslib`, mais sans qu'aucune donnée ne soit effectivement lue depuis cette source externe pour les exemples `columnInfo`.

1 Bloc de code
Macro Variables / CAS Setup
Explication :
Ce bloc initialise des variables macro (`srctype`, `cas_session`, `caslib_alias`, `username`, `password`, `database`, `schema`, `CONNOPTS`) utilisées pour configurer la connexion à la source de données et à la session CAS. La ligne `cas &cas_session;` établit une nouvelle session CAS nommée 'mysess', essentielle pour toutes les opérations ultérieures sur CAS.
Copié !
1/* Specify the DBMS engine, for example: ODBC */
2%let srctype=odbc;
3 
4%let cas_session = mysess;
5%let caslib_alias = datalib;
6 
7 
8/*Specify connection parameters within a string
9 
10Edit the below variables with the required DBMS-specific conection options
11Also, specify such variables within the CONNOPS string, as this will be used for the other sample programs
12 
13Most datasources will require username, password, database, and schema/server
14Please refer to the connopts.xlsx file for specific connection requirements for each DBMS engine
15 
16BigQuery: requires protject and cred_path parameters
17Hadoop: requires hadoopJarPath, hadoopConfigDir, and dtm parameters
18Impala: requires port and conopts parameters
19JDBC: requires url, class, and classpath parameters
20Salesforce: requires authendpoint and catalog parameters
21SAP Hana: requires instance and tabletype parameters
22Teradata: requires dataTransferMode parameter
23Oracle, Netezza, and MSSWL require catalog parameter
24 
25*/
26 
27%let username = ???????;
28%let password = ???????;
29%let database = ???????;
30%let schema = ???????;
31 
32%let CONNOPTS=%str(user=???????
33 pwd=???????
34 dsn=???????);
35 
36/* Connect to CAS using cashost and casport, optional in SAS Studio */
37/* options cashost="????????" casport=????; */
38 
39 
40/* Create a CAS Session */
41cas &cas_session;
2 Bloc de code
PROC CAS (addCaslib action)
Explication :
Ce bloc utilise la procédure PROC CAS et son action `addCaslib` pour définir une nouvelle CASLIB. Cette CASLIB, nommée 'datalib', est configurée pour se connecter à une source de données ODBC en utilisant les paramètres spécifiés par les variables macro (nom d'utilisateur, mot de passe, base de données, etc.). Cela permet à CAS d'accéder aux tables de la base de données externe via cette CASLIB.
Copié !
1PROC CAS;
2SESSION &cas_session;
3ACTION addCaslib caslib="&caslib_alias"
4 datasource={ srctype="&srctype",
5 user="&username",
6 pass="&password",
7 database="&database",
8 schema="&schema",
9 catalog="*"};
10RUN;
11QUIT;
3 Bloc de code
DATA STEP Data
Explication :
Ce bloc définit un LIBNAME 'caslib' pour se référer à la CASLIB précédemment créée (`datalib`) et l'associe à la session CAS active. Ensuite, un DATA STEP est utilisé pour créer une nouvelle table en mémoire appelée 'COLUMNSAMPLE' au sein de cette CASLIB. Les données de cette table sont fournies directement via les instructions `datalines`, simulant ainsi une table à analyser.
Copié !
1/* Create in-memory tables in CAS using CAS Libname engine */
2LIBNAME caslib cas sessref=&cas_session tag="";
3 
4DATA caslib.COLUMNSAMPLE;
5 INPUT FLIGHT $3. +5 DATES $7. +3 DEPART $5. +2 ORIG $3.
6 +3 DEST $3. +7 MILES +6 BOARDED +6 CAPACITY;
7 DATALINES;
8114 01MAR98 7:10 LGA LAX 2475 172 210
9202 01MAR98 10:43 LGA ORD 740 151 210
10219 01MAR98 9:31 LGA LON 3442 198 250
11622 01MAR98 12:19 LGA FRA 3857 207 250
12132 01MAR98 15:35 LGA YYZ 366 115 178
13271 01MAR98 13:17 LGA PAR 3635 138 250
14302 01MAR98 20:22 LGA WAS 229 105 180
15114 02MAR98 7:10 LGA LAX 2475 119 210
16202 02MAR98 10:43 LGA ORD 740 120 210
17219 02MAR98 9:31 LGA LON 3442 147 250
18622 02MAR98 12:19 LGA FRA 3857 176 250
19132 02MAR98 15:35 LGA YYZ 366 106 178
20;
21RUN;
4 Bloc de code
PROC CAS (table.columnInfo action)
Explication :
Cet exemple utilise l'action CAS `table.columnInfo` pour récupérer des informations détaillées sur toutes les colonnes de la table 'COLUMNSAMPLE' qui réside dans la CASLIB 'datalib'. Cette action fournit des métadonnées telles que le nom des colonnes, leur type, leur longueur, etc.
Copié !
1/* Proc cas columninfo action */
2PROC CAS;
3 TABLE.columnInfo /
4 TABLE={name = "COLUMNSAMPLE",
5 caslib = "&caslib_alias"};
6RUN;
7QUIT;
5 Bloc de code
PROC CAS (table.columnInfo action)
Explication :
Similaire au bloc précédent, mais cet exemple démontre comment limiter les informations retournées à un sous-ensemble de colonnes spécifiques ('FLIGHT', 'DATES', 'BOARDED', 'CAPACITY') en utilisant le paramètre `vars` de l'action `table.columnInfo`. Cela est utile pour des analyses ciblées.
Copié !
1/*Proc cas columninfo action with specified vars variable */
2PROC CAS;
3 TABLE.columnInfo /
4 TABLE={name="COLUMNSAMPLE",
5 caslib = "&caslib_alias"
6 vars={"FLIGHT", "DATES", "BOARDED", "CAPACITY"}};
7RUN;
8QUIT;
6 Bloc de code
PROC CAS (table.columnInfo action)
Explication :
Cet exemple présente une méthode alternative pour spécifier les colonnes d'intérêt. Au lieu d'utiliser le paramètre `vars` au sein de l'option `table`, il utilise le paramètre `inputs` directement sous l'action `table.columnInfo`, en lui passant une liste de dictionnaires où chaque dictionnaire spécifie le nom d'une variable ('FLIGHT', 'BOARDED').
Copié !
1/*Proc cas columninfo action alternative method of specifying variables to display*/
2PROC CAS;
3 TABLE.columnInfo /
4 inputs = {{name="FLIGHT"},{name="BOARDED"}}
5 TABLE={name = "COLUMNSAMPLE",
6 caslib = "&caslib_alias"};
7RUN;
8QUIT;
7 Bloc de code
CAS Session Termination
Explication :
Cette commande termine la session CAS précédemment établie, libérant ainsi les ressources associées. C'est une bonne pratique de toujours terminer les sessions CAS après leur utilisation.
Copié !
1/* Remove CAS
2session */
3cas &cas_session. terminate;
4 
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.
Informations de Copyright : SAS SAMPLE LIBRARY


Documentation liée : Accès aux données

Sujet / Mot-cléLien vers la ressource
DOC FedSQL fr/sampleCode/FEDSQLD493
DOC Définitions des Moteurs SAS fr/sampleCode/DEFINI88E2
DOC Bibliothèques SAS par Défaut fr/sampleCode/BIBLIOB755
DOC Fonctionnement des Moteurs avec les Fichiers fr/sampleCode/FONCTI81D4
DOC Caractéristiques des moteurs SAS fr/sampleCode/CARACTABC0
DOC Définitions des Moteurs SAS fr/sampleCode/DEFINI6352