Publicado el :

Información sobre columnas a través de Data Connector ODBC

Este código también está disponible en: Deutsch English Français
En espera de validación
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!
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 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.
¡Copiado!
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 Bloque de código
DATA STEP Data
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!
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 Bloque de código
PROC CAS (table.columnInfo action)
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.
¡Copiado!
1/* Proc cas columninfo action */
2PROC CAS;
3 TABLE.columnInfo /
4 TABLE={name = "COLUMNSAMPLE",
5 caslib = "&caslib_alias"};
6RUN;
7QUIT;
5 Bloque de código
PROC CAS (table.columnInfo action)
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!
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 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!
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 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!
1/* Remove CAS
2session */
3cas &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.
Información de copyright : SAS SAMPLE LIBRARY