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é !
/* Specify the DBMS engine, for example: ODBC */
%let srctype=odbc;
%let cas_session = mysess;
%let caslib_alias = datalib;
/*Specify connection parameters within a string
Edit the below variables with the required DBMS-specific conection options
Also, specify such variables within the CONNOPS string, as this will be used for the other sample programs
Most datasources will require username, password, database, and schema/server
Please refer to the connopts.xlsx file for specific connection requirements for each DBMS engine
BigQuery: requires protject and cred_path parameters
Hadoop: requires hadoopJarPath, hadoopConfigDir, and dtm parameters
Impala: requires port and conopts parameters
JDBC: requires url, class, and classpath parameters
Salesforce: requires authendpoint and catalog parameters
SAP Hana: requires instance and tabletype parameters
Teradata: requires dataTransferMode parameter
Oracle, Netezza, and MSSWL require catalog parameter
*/
%let username = ???????;
%let password = ???????;
%let database = ???????;
%let schema = ???????;
%let CONNOPTS=%str(user=???????
pwd=???????
dsn=???????);
/* Connect to CAS using cashost and casport, optional in SAS Studio */
/* options cashost="????????" casport=????; */
/* Create a CAS Session */
cas &cas_session;
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
10
Edit the below variables with the required DBMS-specific conection options
11
Also, specify such variables within the CONNOPS string, as this will be used for the other sample programs
12
13
Most datasources will require username, password, database, and schema/server
14
Please refer to the connopts.xlsx file for specific connection requirements for each DBMS engine
15
16
BigQuery: requires protject and cred_path parameters
17
Hadoop: requires hadoopJarPath, hadoopConfigDir, and dtm parameters
18
Impala: requires port and conopts parameters
19
JDBC: requires url, class, and classpath parameters
20
Salesforce: requires authendpoint and catalog parameters
21
SAP Hana: requires instance and tabletype parameters
22
Teradata: requires dataTransferMode parameter
23
Oracle, 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 */
41
cas &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.
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é !
/* Create in-memory tables in CAS using CAS Libname engine */
libname caslib cas sessref=&cas_session tag="";
data caslib.COLUMNSAMPLE;
input FLIGHT $3. +5 DATES $7. +3 DEPART $5. +2 ORIG $3.
+3 DEST $3. +7 MILES +6 BOARDED +6 CAPACITY;
datalines;
114 01MAR98 7:10 LGA LAX 2475 172 210
202 01MAR98 10:43 LGA ORD 740 151 210
219 01MAR98 9:31 LGA LON 3442 198 250
622 01MAR98 12:19 LGA FRA 3857 207 250
132 01MAR98 15:35 LGA YYZ 366 115 178
271 01MAR98 13:17 LGA PAR 3635 138 250
302 01MAR98 20:22 LGA WAS 229 105 180
114 02MAR98 7:10 LGA LAX 2475 119 210
202 02MAR98 10:43 LGA ORD 740 120 210
219 02MAR98 9:31 LGA LON 3442 147 250
622 02MAR98 12:19 LGA FRA 3857 176 250
132 02MAR98 15:35 LGA YYZ 366 106 178
;
run;
1
/* Create in-memory tables in CAS using CAS Libname engine */
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.
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é !
/*Proc cas columninfo action with specified vars variable */
proc cas;
table.columnInfo /
table={name="COLUMNSAMPLE",
caslib = "&caslib_alias"
vars={"FLIGHT", "DATES", "BOARDED", "CAPACITY"}};
run;
quit;
1
/*Proc cas columninfo action with specified vars variable */
2
PROC CAS;
3
TABLE.columnInfo /
4
TABLE={name="COLUMNSAMPLE",
5
caslib = "&caslib_alias"
6
vars={"FLIGHT", "DATES", "BOARDED", "CAPACITY"}};
7
RUN;
8
QUIT;
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é !
/*Proc cas columninfo action alternative method of specifying variables to display*/
proc cas;
table.columnInfo /
inputs = {{name="FLIGHT"},{name="BOARDED"}}
table={name = "COLUMNSAMPLE",
caslib = "&caslib_alias"};
run;
quit;
1
/*Proc cas columninfo action alternative method of specifying variables to display*/
2
PROC CAS;
3
TABLE.columnInfo /
4
inputs = {{name="FLIGHT"},{name="BOARDED"}}
5
TABLE={name = "COLUMNSAMPLE",
6
caslib = "&caslib_alias"};
7
RUN;
8
QUIT;
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é !
/* Remove CAS session */
cas &cas_session. terminate;
1
/* Remove CAS
2
session */
3
cas &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.
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.