El programa comienza definiendo variables macro para el tipo de fuente de datos (ODBC), el nombre de la sesión CAS y el alias de la CASLIB. Incluye marcadores de posición para la información de conexión (nombre de usuario, contraseña, base de datos, esquema). Después de establecer una sesión CAS, utiliza la acción `addCaslib` de PROC CAS para crear una CASLIB que apunta a la fuente ODBC especificada, permitiendo así que CAS acceda a los datos externos. Luego, se utiliza un DATA STEP para crear una tabla en memoria llamada 'COLUMNSAMPLE' dentro de esta CASLIB, utilizando datos proporcionados directamente en el script (datalines). El script procede luego a utilizar la acción CAS `table.columnInfo` de tres maneras diferentes: primero para obtener información sobre todas las columnas de 'COLUMNSAMPLE', luego para variables específicas con el parámetro `vars`, y finalmente con el parámetro `inputs` como método alternativo para seleccionar las variables. El script finaliza con la terminación de la sesión CAS.
Análisis de datos
Type : MIXTE
Los datos utilizados para la demostración (tabla 'COLUMNSAMPLE') se crean directamente en el script a través de instrucciones DATALINES, lo que la convierte en una fuente interna. Sin embargo, el script está configurado para conectarse a una fuente de datos externa (ODBC) a través de la acción `addCaslib`, pero no se lee ningún dato de esta fuente externa para los ejemplos `columnInfo`.
1 Bloque de código
Macro Variables / CAS Setup
Explicación : Este bloque inicializa variables macro (`srctype`, `cas_session`, `caslib_alias`, `username`, `password`, `database`, `schema`, `CONNOPTS`) utilizadas para configurar la conexión a la fuente de datos y a la sesión CAS. La línea `cas &cas_session;` establece una nueva sesión CAS llamada 'mysess', esencial para todas las operaciones posteriores en CAS.
¡Copiado!
/* 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 Bloque de código
PROC CAS (addCaslib action)
Explicación : Este bloque utiliza el procedimiento PROC CAS y su acción `addCaslib` para definir una nueva CASLIB. Esta CASLIB, llamada 'datalib', está configurada para conectarse a una fuente de datos ODBC utilizando los parámetros especificados por las variables macro (nombre de usuario, contraseña, base de datos, etc.). Esto permite que CAS acceda a las tablas de la base de datos externa a través de esta CASLIB.
Explicación : Este bloque define un LIBNAME 'caslib' para referirse a la CASLIB creada previamente (`datalib`) y la asocia con la sesión CAS activa. Luego, se utiliza un DATA STEP para crear una nueva tabla en memoria llamada 'COLUMNSAMPLE' dentro de esta CASLIB. Los datos de esta tabla se proporcionan directamente a través de las instrucciones `datalines`, simulando así una tabla para analizar.
¡Copiado!
/* 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 */
Explicación : Este ejemplo utiliza la acción CAS `table.columnInfo` para recuperar información detallada sobre todas las columnas de la tabla 'COLUMNSAMPLE' que reside en la CASLIB 'datalib'. Esta acción proporciona metadatos como el nombre de las columnas, su tipo, su longitud, etc.
Explicación : Similar al bloque anterior, pero este ejemplo demuestra cómo limitar la información devuelta a un subconjunto de columnas específicas ('FLIGHT', 'DATES', 'BOARDED', 'CAPACITY') utilizando el parámetro `vars` de la acción `table.columnInfo`. Esto es útil para análisis específicos.
¡Copiado!
/*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 Bloque de código
PROC CAS (table.columnInfo action)
Explicación : Este ejemplo presenta un método alternativo para especificar las columnas de interés. En lugar de utilizar el parámetro `vars` dentro de la opción `table`, utiliza el parámetro `inputs` directamente bajo la acción `table.columnInfo`, pasándole una lista de diccionarios donde cada diccionario especifica el nombre de una variable ('FLIGHT', 'BOARDED').
¡Copiado!
/*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 Bloque de código
CAS Session Termination
Explicación : Este comando finaliza la sesión CAS establecida previamente, liberando así los recursos asociados. Es una buena práctica terminar siempre las sesiones CAS después de su uso.
¡Copiado!
/* Remove CAS session */
cas &cas_session. terminate;
1
/* Remove CAS
2
session */
3
cas &cas_session. terminate;
4
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.