Conector de datos de Microsoft SQL Server

ATTENTION : Ce contenu est DÉSACTIVÉ. Il est invisible pour les visiteurs.
Nivel de dificultad
Principiante
Publicado el :
Este conector de datos facilita la integración de las bases de datos Microsoft SQL Server, incluyendo Azure Synapse Analytics y Microsoft Fabric, con SAS© Cloud Analytic Services. Permite leer y escribir datos, autenticar las conexiones a través de Microsoft Entra ID (anteriormente Azure Active Directory) con Single Sign-On u otros métodos (ID de cliente/secreto, código de dispositivo). Las opciones del conector permiten configurar la fuente de datos, las credenciales, los parámetros de carga masiva (bulk loading) a ADLS2 y la gestión de archivos temporales.
Se admite la carga masiva a Azure Synapse Analytics o Microsoft Fabric Data Warehouse. Las tablas se cargan en Azure Data Lake Storage Gen2 (ADLS2) y luego se transfieren a Azure Synapse a través del comando COPY. Se admiten formatos como archivos delimitados (CSV) y archivos delimitados comprimidos (GZIP). La autenticación para la carga masiva requiere roles específicos en la configuración de la cuenta ADLS (Colaborador y Colaborador de datos de blobs de almacenamiento).
El servidor CAS admite la carga, el almacenamiento y la escritura de datos de tipo VARCHAR y tipos de datos enteros (INT32 e INT64). Las operaciones no realizadas por el servidor CAS convierten los datos VARCHAR en CHAR de longitud fija, y los enteros en valores DOUBLE, lo que puede afectar la precisión más allá de 15 dígitos.
Análisis de datos

Type : CREATION_INTERNE


Los ejemplos utilizan datos generados (datalines) o SASHELP, así como referencias a tablas SQL Server ficticias.

1 Bloque de código
CASLIB Data
Explicación :
Este ejemplo establece una conexión básica entre el servidor CAS y una base de datos Microsoft SQL Server. La biblioteca CAS 'SQLservercaslib' se crea, especificando el tipo de origen 'sqlserver', un nombre de usuario, una contraseña y un DSN (Data Source Name) configurado para la conexión.
¡Copiado!
1caslib SQLservercaslib desc='Microsoft SQL Server Caslib'
2 dataSource=(srctype='sqlserver',
3 username='myuser1',
4 password='myPwd',
5 sqlserver_dsn='dbsqlserver');
2 Bloque de código
PROC CASUTIL Data
Explicación :
Este ejemplo demuestra cómo cargar una tabla llamada 'mySQLsvrdata' (aquí simulada por un paso DATA) desde una caslib de origen (simulada como CASUSER para este ejemplo autónomo) a la caslib 'casuser' usando PROC CASUTIL. La tabla cargada se renombra 'class_from_SQLservercaslib'. Los comandos 'list files' y 'contents' se utilizan para verificar la carga e inspeccionar la estructura de la nueva tabla CAS. La opción 'replace' permite reemplazar la tabla si ya existe.
¡Copiado!
1/* Création d'une table SQL Server fictive pour l'exemple */
2DATA casuser.mySQLsvrdata;
3 INPUT ID Name $ Age Score;
4 DATALINES;
51 John 30 85
62 Jane 24 92
73 Mike 35 78
84 Emily 29 88
9;
10RUN;
11 
12PROC CASUTIL;
13 /* Supposons que SQLservercaslib est déjà définie comme dans l'exemple 1 */
14 /* list files incaslib="SQLservercaslib"; */
15 load casdata="mySQLsvrdata" incaslib="CASUSER" outcaslib="casuser"
16 casout="class_from_SQLservercaslib" replace;
17 list files incaslib="casuser";
18 contents casdata="class_from_SQLservercaslib" incaslib="casuser";
19QUIT;
3 Bloque de código
PROC CASUTIL Data
Explicación :
Este ejemplo ilustra una carga masiva de datos de una tabla CAS ('TEST1') a un almacenamiento ADLS2 a través de un conector de Microsoft SQL Server. Primero, configura el ID de inquilino de Azure a través de las opciones de sesión. La biblioteca CAS 'sqls' se define con detalles de conexión de SQL Server e información de autenticación de Azure (identidad y secreto para Shared Access Signature). Luego se utiliza el procedimiento `CASUTIL` para guardar la tabla 'TEST1' en la caslib 'sqls', activando la carga masiva (bulkload=true) y especificando opciones como el directorio temporal predeterminado ('defaultdir'), el nombre de la cuenta de almacenamiento de Azure, el ID de aplicación y el sistema de archivos.
¡Copiado!
1/* Création d'une table CAS fictive pour le chargement */
2DATA casuser.TEST1;
3 INPUT ProductID $ Quantity SaleDate:yymmdd10.;
4 FORMAT SaleDate yymmdd10.;
5 DATALINES;
6PROD_A 10 2023-01-15
7PROD_B 25 2023-02-20
8PROD_C 12 2023-03-01
9PROD_A 8 2023-03-10
10PROD_D 40 2023-04-05
11;
12RUN;
13 
14options cassessopts=(azuretenantid="user-tenant-id");
15 
16caslib sqls datasource=(srctype='sqlserver',
17 database='datasource_db',
18 username='user-id',
19 password='password',
20 schema='myschema',
21 identity='Shared Access Signature',
22 secret='shared-access-signature-value',
23 deleteDataFiles=true);
24 
25PROC CASUTIL incaslib="CASUSER" outcaslib="sqls";
26 save casdata="TEST1" casout="test1_out"
27 options={bulkload=true,
28 defaultdir='/temp_azure_dir',
29 accountName='azurestorageaccount',
30 applicationId='azure-application-id',
31 fileSystem='azureblobfilesystem',
32 compress=false} replace;
33RUN;
4 Bloque de código
PROC CASUTIL / CASLIB Data
Explicación :
Este ejemplo avanzado muestra cómo cargar datos de una tabla de SQL Server (simulada aquí por 'Orders_SQL' en 'CASUSER') a una nueva tabla CAS llamada 'RecentOrders_CAS' en la caslib 'casuser'. Utiliza una cláusula WHERE para filtrar los registros por fecha ('OrderDate >= "01JAN2024"d') y la opción 'importoptions=(vars(...))' para seleccionar solo columnas específicas ('OrderID', 'CustomerID', 'TotalAmount'). La opción 'promote' hace que la tabla cargada esté disponible globalmente en la sesión CAS. También se define una caslib de SQL Server ('sqlserver_conn') para ilustrar una conexión a un esquema específico ('Sales').
¡Copiado!
1/* Préparation d'une caslib pour simuler des données SQL Server */
2DATA casuser.Orders_SQL;
3 INPUT OrderID CustomerID $ OrderDate:yymmdd10. TotalAmount;
4 FORMAT OrderDate yymmdd10.;
5 DATALINES;
6101 CUST001 2023-01-10 150.75
7102 CUST002 2023-02-05 200.00
8103 CUST001 2023-03-20 120.50
9104 CUST003 2024-01-01 300.00
10105 CUST002 2024-02-15 50.25
11106 CUST004 2024-03-10 450.00
12;
13RUN;
14 
15/* Connexion à SQL Server (simulée) */
16caslib sqlserver_conn desc='Connexion SQL Server pour Données de Ventes'
17 dataSource=(srctype='sqlserver',
18 username='myuser1',
19 password='myPwd',
20 sqlserver_dsn='dbsqlserver_prod', /* DSN d'une base de production */
21 schema='Sales'); /* Schéma spécifique */
22 
23/* Chargement des données filtrées dans une nouvelle table CAS */
24PROC CASUTIL;
25 load casdata="Orders_SQL" incaslib="CASUSER" casout="RecentOrders_CAS" outcaslib="casuser"
26 promote /* Rend la table visible pour toutes les sessions */
27 where='OrderDate >= "01JAN2024"d' /* Filtre pour les commandes après le 1er janvier 2024 */
28 importoptions=(vars=('OrderID' 'CustomerID' 'TotalAmount')); /* Sélectionne des colonnes spécifiques */
29 
30 list files incaslib="casuser";
31 contents casdata="RecentOrders_CAS" incaslib="casuser";
32QUIT;
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.

Documentación relacionada

Aucune documentation spécifique pour cette catégorie.