El script comienza definiendo variables macro para configurar el tipo de fuente de datos (por ejemplo, ODBC), el nombre de la sesión CAS y el alias de la caslib. Incluye marcadores de parámetros para la información de conexión (nombre de usuario, contraseña, base de datos, esquema). Se inicia una sesión CAS, y luego se añade una caslib utilizando el conector de datos especificado por las variables macro. A continuación, se utiliza un DATA STEP para crear una tabla 'LOADSAMPLE' en el DBMS externo a través de una libname configurada para el conector. Esta tabla se carga en CAS en tres ocasiones: una vez en su totalidad, una vez con una cláusula WHERE para filtrar las filas, y una vez seleccionando variables específicas. Las tablas cargadas en memoria CAS se verifican mediante PROC PRINT. Finalmente, el script limpia los recursos eliminando la tabla fuente del DBMS externo y terminando la sesión CAS.
Análisis de datos
Type : MIXTO
Los datos se definen inicialmente 'en línea' mediante una instrucción DATALINES dentro del script. Luego se escriben en una tabla ('LOADSAMPLE') de un sistema de gestión de bases de datos (DBMS) externo, cuyo tipo se especifica mediante la variable macro 'srctype' (por defecto ODBC). Estos datos, aunque creados por el script, residen temporalmente de forma externa antes de ser cargados y procesados en el entorno CAS.
1 Bloque de código
Variables Macro
Explicación : Este bloque define variables macro esenciales para la configuración de la conexión. `srctype` especifica el tipo de sistema de gestión de bases de datos (DBMS). `cas_session` y `caslib_alias` nombran respectivamente la sesión CAS y la biblioteca CAS. Las otras variables (`username`, `password`, `database`, `schema`, `CONNOPTS`) son marcadores de posición para la información de autenticación y conexión específica del DBMS externo.
¡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=???????);
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=???????);
2 Bloque de código
Sesión CAS
Explicación : Esta instrucción inicializa una sesión CAS con el nombre especificado por la variable macro `cas_session`. Las opciones `cashost` y `casport` están comentadas, indicando que pueden ser opcionales en SAS Studio o definidas por el entorno.
¡Copiado!
/* Connect to CAS using cashost and casport, optional in SAS Studio */
/* options cashost="???????" casport=????; */
/* Create a CAS Session */
cas &cas_session;
1
/* Connect to CAS using cashost and casport, optional in SAS Studio */
2
/* options cashost="???????" casport=????; */
3
4
5
/* Create a CAS Session */
6
cas &cas_session;
3 Bloque de código
PROC CAS (acción addCaslib)
Explicación : Este bloque utiliza `PROC CAS` para ejecutar la acción `addCaslib`. Esta acción crea una nueva caslib (`&caslib_alias`) y la conecta al DBMS externo a través del `srctype` definido. Los parámetros `user`, `pass`, `database`, `schema` y `catalog` se pasan como opciones de conexión al conector de datos, permitiendo a CAS acceder a los datos del DBMS.
Explicación : Este DATA STEP es crucial para la creación de datos de prueba. Primero define una libname `loadlib` que apunta al DBMS externo a través del `srctype` y los `CONNOPTS` especificados. Luego, se crea una tabla llamada `LOADSAMPLE` en este DBMS externo utilizando datos proporcionados directamente en el script a través de la instrucción `datalines`. Esta tabla simula una fuente de datos externa lista para ser cargada en CAS.
Explicación : Este bloque utiliza `PROC CAS` para cargar la totalidad de la tabla `LOADSAMPLE` (residente en el DBMS externo y accesible a través de `&caslib_alias`) en memoria CAS. La tabla en memoria CAS se llamará `SAMDATLOAD`. La opción `replace=true` garantiza que si ya existe una tabla con el mismo nombre, será reemplazada.
/* Proc cas loadtable action: loads entire table*/
2
PROC CAS;
3
SESSION &cas_session;
4
ACTION loadtable
5
casout={name="SAMDATLOAD" replace=true}
6
caslib="&caslib_alias"
7
path="LOADSAMPLE";
8
RUN;
9
QUIT;
6 Bloque de código
PROC CAS (acción loadtable con WHERE)
Explicación : Este bloque demuestra la carga condicional de datos. Carga la tabla `LOADSAMPLE` en CAS bajo el nombre `SAMDATLOADWHERE`, pero aplica un filtro (`where="FLIGHT = 114"`) para incluir solo las filas donde la columna 'FLIGHT' tiene el valor '114'.
¡Copiado!
/* Proc cas loadtable action with where parameter: subsets the input data */
proc cas;
session &cas_session;
action loadtable
casout={name="SAMDATLOADWHERE" replace=true}
caslib="&caslib_alias"
where="FLIGHT = 114"
path="LOADSAMPLE";
run;
quit;
1
/* Proc cas loadtable action with where parameter: subsets the input data */
2
PROC CAS;
3
SESSION &cas_session;
4
ACTION loadtable
5
casout={name="SAMDATLOADWHERE" replace=true}
6
caslib="&caslib_alias"
7
where="FLIGHT = 114"
8
path="LOADSAMPLE";
9
RUN;
10
QUIT;
7 Bloque de código
PROC CAS (acción loadtable con VARS)
Explicación : Este bloque ilustra la carga selectiva de columnas. Carga la tabla `LOADSAMPLE` en CAS bajo el nombre `SAMDATLOADVARS`, pero solo transfiere las columnas 'FLIGHT', 'ORIG' y 'DEST', reduciendo así la cantidad de datos en memoria.
¡Copiado!
/* Proc cas loadtable action with vars parameter: specifies variables to load */
proc cas;
session &cas_session;
action loadtable
casout={name="SAMDATLOADVARS" replace=true}
caslib="&caslib_alias"
vars={"FLIGHT", "ORIG", "DEST"}
path="LOADSAMPLE";
run;
quit;
1
/* Proc cas loadtable action with vars parameter: specifies variables to load */
2
PROC CAS;
3
SESSION &cas_session;
4
ACTION loadtable
5
casout={name="SAMDATLOADVARS" replace=true}
6
caslib="&caslib_alias"
7
vars={"FLIGHT", "ORIG", "DEST"}
8
path="LOADSAMPLE";
9
RUN;
10
QUIT;
8 Bloque de código
PROC PRINT
Explicación : Este bloque crea una libname `caslib` de tipo 'CAS' que referencia la sesión CAS activa. Luego utiliza `PROC PRINT` para mostrar el contenido de las tres tablas cargadas en memoria (`SAMDATLOAD`, `SAMDATLOADWHERE`, `SAMDATLOADVARS`), lo que permite verificar que las operaciones de carga y filtrado se han realizado correctamente.
¡Copiado!
/* Verify loadtable using caslib libref with CAS Libname engine to print in-memory tables*/
libname caslib cas sessref=&cas_session tag="";
proc print data=caslib.SAMDATLOAD;
run;
proc print data=caslib.SAMDATLOADWHERE;
run;
proc print data=caslib.SAMDATLOADVARS;
run;
1
/* Verify loadtable using caslib libref with CAS Libname engine to print in-memory tables*/
2
LIBNAME caslib cas sessref=&cas_session tag="";
3
PROC PRINTDATA=caslib.SAMDATLOAD;
4
RUN;
5
PROC PRINTDATA=caslib.SAMDATLOADWHERE;
6
RUN;
7
PROC PRINTDATA=caslib.SAMDATLOADVARS;
8
RUN;
9 Bloque de código
PROC CAS (acción deleteSource)
¡Copiado!
/* Clean-up: Delete files from data source associated with caslib */
proc cas;
session &cas_session;
action deleteSource
caslib="&caslib_alias"
source="LOADSAMPLE"
;
run;
quit;
1
/* Clean-up: Delete files from data source associated with caslib */
2
PROC CAS;
3
SESSION &cas_session;
4
ACTION deleteSource
5
caslib="&caslib_alias"
6
SOURCE="LOADSAMPLE"
7
;
8
RUN;
9
QUIT;
10 Bloque de código
Sesión CAS
¡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.