Administration SAS9

Comprendre et Configurer SAS PC Files Server pour les Environnements 64-bit et Unix/Linux

Simon 03/02/2016 2 Aufrufe

L'accès aux fichiers Microsoft Office (Excel, Access) depuis SAS© peut s'avérer complexe lorsque l'on travaille dans un environnement 64-bit ou sur des systèmes d'exploitation non-Windows (comme Linux ou Unix).

Dans ces configurations, l'utilisation traditionnelle des moteurs ODBC ou des liens DDE n'est souvent pas directe. La solution réside dans l'utilisation du SAS© PC Files Server combiné à l'option DBMS=EXCELCS. Cet article résume les prérequis, la syntaxe et les points de vigilance identifiés par la communauté d'utilisateurs.

1. Le concept : Pourquoi un "PC Files Server" ?

Si votre serveur SAS© principal tourne sur un système d'exploitation de type Unix ou Linux (souvent qualifié de "vrai OS" par les puristes), il ne peut pas communiquer nativement avec les pilotes Microsoft (JET ou ACE) nécessaires pour lire les fichiers .xls, .xlsx ou .mdb.

Comme confirmé par les échanges techniques, vous devez disposer d'une machine Windows séparée.

  • Le rôle du PC Files Server : Il s'installe sur cette machine Windows intermédiaire. Il agit comme une passerelle (bridge).

  • Le flux : Votre SAS© (sur Linux/Unix) envoie une requête au PC Files Server (sur Windows), qui interroge le fichier Excel/Access via les drivers locaux, et renvoie les données à SAS©.

Note importante : Si vous n'avez accès à aucune machine Windows dans votre infrastructure pour héberger ce composant, cette solution ne pourra pas être mise en œuvre.

Note :
Pour interagir avec ce serveur distant, on utilise le moteur EXCELCS dans les procédures d'import et d'export.

Exemple de code SAS©
Voici la structure standard pour exporter et importer des données via le PC Files Server :
1/* Export vers Excel */
2PROC EXPORT
3 DATA = ma_lib.mon_dataset
4 OUTFILE = "C:\Chemin\Vers\Fichier.xlsx" /* Chemin sur le serveur Windows */
5 DBMS = EXCELCS
6 REPLACE;
7 SERVER = "NomDuServeurWindows"; /* ou adresse IP */
8 PORT = 9621; /* Port par défaut, à vérifier */
9 SSPI = YES; /* Authentification Windows intégrée */
10RUN;
11 
12/* Import depuis Excel */
13PROC IMPORT
14 OUT = ma_lib.mon_dataset_import
15 DATAFILE = "C:\Chemin\Vers\Fichier.xlsx"
16 DBMS = EXCELCS
17 REPLACE;
18 SERVER = "NomDuServeurWindows";
19 PORT = 9621;
20 SSPI = YES;
21RUN;
DBMS=EXCELCS : Spécifie que l'on utilise le modèle Client/Serveur pour accéder aux fichiers PC.

SERVER= et PORT= : Indiquent où se trouve le PC Files Server.

SSPI=YES : Active l'authentification Windows intégrée (Integrated Windows Authentication), évitant souvent d'avoir à coder en dur des mots de passe.

3. Points de Vigilance et Limitations

Lors de la mise en place de cette solution, plusieurs pièges techniques ont été identifiés (basés sur les Usage Notes SAS© 35064 et 41060) :

  • Service Windows et lecteurs réseau : Si le SAS© PC File Server est installé en tant que Service Windows, il risque de ne pas reconnaître les lecteurs réseau mappés. Il est souvent nécessaire d'utiliser des chemins UNC (ex: \\serveur\partage\fichier.xlsx) ou de vérifier les droits du compte qui lance le service.

  • Options non supportées : Contrairement aux moteurs d'import classiques, le moteur EXCELCS et PCFILES peut ne pas supporter certaines options pratiques comme GETNAMES= ou MIXED=. Il faut être vigilant sur la structure de vos fichiers Excel sources.

4. Documentation et Installation

Pour l'installation et la configuration avancée (notamment pour les administrateurs), il est recommandé de se référer à la documentation officielle :

  • SAS©/ACCESS(R) Interface to PC Files: Reference.

  • Consulter spécifiquement les sections sur le "LIBNAME Statement", le "Pass-Through Facility" pour Linux/Unix, et le chapitre "PC Files Server Administration".

Le SAS© PC Files Server est un outil indispensable pour l'interopérabilité entre les environnements SAS© robustes (Unix/Linux 64-bit) et le monde bureautique Windows. Bien qu'il nécessite une infrastructure mixte (une machine Windows dédiée est requise), il offre une méthode standardisée via DBMS=EXCELCS pour automatiser les flux de données.