SAS9

Schreiben Sie Ihre LIBNAMEs nie wieder neu: So zentralisieren Sie Ihre SAS-Bibliotheken

Admin 5 vues

Wenn Sie regelmäßig mit SAS© arbeiten, kennen Sie dieses frustrierende Szenario: Sie beginnen ein neues Programm oder ein neues Modul, und das Erste, was Sie tun müssen, ist, Ihre LIBNAME-Anweisungen zu kopieren und einzufügen (oder schlimmer noch, neu zu tippen), um auf Ihre Daten zuzugreifen.

Das ist nicht nur repetitiv, sondern stellt auch ein echtes Wartungsproblem dar. Wenn sich der Serverpfad ändert, müssen Sie Dutzende oder sogar Hunderte von Skripten ändern.

Glücklicherweise gibt es Methoden, um Ihre Bibliotheken nur einmal zu definieren und sie automatisch zwischen all Ihren SAS©-Komponenten und -Sitzungen zu teilen. Hier erfahren Sie, wie Sie diesen Prozess automatisieren können.


Das Problem: Die Lebensdauer eines LIBNAME

Es ist wichtig, eine grundlegende Einschränkung von SAS© zu verstehen: Eine LIBNAME-Definition existiert nur, solange die SAS©-Sitzung aktiv ist. Sobald Sie SAS© schließen, verschwindet die Verbindung zur Bibliothek. Deshalb müssen Sie den Code normalerweise in jedes Programm aufnehmen.

Wir können dies jedoch umgehen, indem wir die Ausführung dieses Codes beim Start automatisieren.

Lösung 1: Die Datei autoexec.sas©

Die klassischste Methode zur Automatisierung Ihrer Bibliotheken ist die Verwendung der Datei autoexec.sas©.

Diese Datei ist ein spezielles SAS©-Skript, das automatisch bei jedem Start einer SAS©-Sitzung ausgeführt wird. Indem Sie Ihre LIBNAME-Anweisungen darin platzieren, sind Ihre Bibliotheken sofort nach dem Öffnen der Software einsatzbereit, ohne dass Sie eine einzige Zeile Code in Ihren täglichen Programmen schreiben müssen.

Lösung 2: Der „Best Practice“-Ansatz (Zentralisierung auf dem Server)

Wenn Sie im Team arbeiten, kann die Konfiguration der autoexec-Datei jedes einzelnen Benutzers mühsam werden. Ein robusterer Ansatz, der von Unternehmensumgebungen inspiriert ist, besteht darin, eine Kette von Konfigurationsdateien zu erstellen.

Die 3-Schritte-Strategie:

  1. Die lokale Autoexec-Datei: Jeder Benutzer besitzt eine autoexec.sas©-Datei auf seiner Arbeitsstation (SAS©-PC).

  2. Der Netzwerk-Zeiger: Diese lokale autoexec-Datei enthält nur eine einzige Anweisung: ein %include, das auf eine freigegebene Datei auf dem gemeinsamen Server verweist.

  3. Die Master-Datei (LibraryDefinitions.sas©): Hier geschieht die Magie. Diese Datei, die sich auf dem Server befindet und für alle zugänglich ist, enthält alle LIBNAME-Definitionen, die FILENAME-Anweisungen und die für das Team gemeinsamen Systemoptionen.

Warum ist diese Methode überlegen?

  • Einziger Wartungspunkt: Wenn sich ein Serverpfad ändert, ändern Sie nur die Datei LibraryDefinitions.sas©. Alle Benutzer werden beim nächsten Start sofort aktualisiert.

  • Portabilität: Ihre Programme sind sauberer, da sie keine fest codierten Pfade enthalten.

  • Einheitlichkeit: Das gesamte Team arbeitet mit denselben Bibliotheks-Aliasnamen, was Verwechslungen vermeidet.

Lösung 3: Der Metadaten-Server (SAS© Metadata Server)

Für komplexere Umgebungen, die SAS© Enterprise Guide (EG) oder die SAS© Intelligence Platform-Suite verwenden, ist die ideale Lösung der SAS© Metadata Server.

Anstatt Skripte zu verwenden, registrieren Sie Ihre Bibliotheken direkt in den Metadaten des Servers. Wenn sich Ihre Sitzung (Batch oder EG) mit dem Server verbindet, werden die Bibliotheken automatisch zugewiesen (vorab zugewiesen). Dies ist die sicherste und „sauberste“ Methode für große Unternehmen, obwohl sie eine weitergehende Administration erfordert.

Fazit

Egal, ob Sie ein Einzelbenutzer oder Mitglied eines großen Teams sind, es gibt keinen Grund, Ihre LIBNAME-Anweisungen jedes Mal manuell einzugeben.

  • Für den Einzelgebrauch, ändern Sie Ihre autoexec.sas©.

  • Für ein Team, verwenden Sie die %include-Methode zu einer freigegebenen Netzwerkdatei.

  • Für ein großes Unternehmen, steigen Sie auf den Metadata Server um.

Indem Sie diese Definitionen zentralisieren, sparen Sie Zeit, reduzieren Fehler und machen Ihre SAS©-Projekte wesentlich wartungsfreundlicher.