SAS-Software

Aus SAS-Wiki
Wechseln zu: Navigation, Suche

Die SAS-Software ist die Software zur Datenanalyse, die das amerikanische Unternehmen SAS Institute mit Sitz in Cary, North Carolina entwickelt und vertreibt.

SAS ist eine herstellergebundene Softwareumgebung für die Auswertung von Daten, hauptsächlich von geschäftlichen Daten („Business Intelligence“), aber auch in der Forschung und in der öffentlichen Statistik. SAS ist heute noch eine der vollständigsten und bewährtesten Sammlungen von Statistikroutinen, die Anwendung geht aber mittlerweile weit über die Statistik hinaus.

Geschichte

Der Name SAS stand ursprünglich als Abkürzung für statistical analysis system, ein Auswertungsprogramm zur Analyse von Daten aus der landwirtschaftlichen Forschung, das Anfang der 1970er Jahre von Jim Goodnight, John Sall und weiteren Forschern an der NC State University entwickelt wurde. Als die Nachfrage nach dem Programm wuchs, wurde das Unternehmen SAS Institute 1976 gegründet, um die Software zu entwickeln und zu vertreiben. Heute wird der Name „SAS“ nicht mehr als Abkürzung verwendet, sondern als Markenname.

Lizenzierung

SAS-Software kann man nicht kaufen, sondern nur eine Nutzungsberechtigung erwerben, die über Software-Schlüssel normalerweise jährlich freigeschaltet wird.

Grundlegendes

Aufbau der SAS-Softwareumgebung

Zu den Kerntechnologien von SAS gehören die Skriptsprache „SAS Language“ (einschließlich der Statistikprozeduren und -funktionen), die SAS-eigene Datenbank („SAS-Datasets“), das Enginekonzept für den Zugriff auf unterschiedlichste Datenformate, die „Multi Vendor Architecture“, also die betriebssystemunabhängige und -übergreifende Architektur sowie verschiedene Middlewarekonzepte („SAS Integration Technologies“).

SAS ist heute sehr stark auf das Gewinnen von Informationen und Wissen aus Unternehmensdaten ausgerichtet, also auf Datenintegration, Business Intelligence und deren Anwendungen in unterschiedlichsten betriebswirtschaftlichen Bereichen. Daher wurde seit 2004 die SAS Intelligence Platform aufgebaut, die es ermöglicht, geschäftliche Daten unternehmensweit zu verarbeiten und zu verwalten. Den Kern bildet die SAS Open Metadata Architecture für die durchgängige und einheitliche Speicherung von Metadaten für verschiedenste Anwendungsbereiche. Darum gruppiert sich eine Vielzahl von Anwendungen für die Datenintegration und –auswertung für ganz unterschiedliche Benutzerrollen in den Unternehmen.

Eine dritte anwendungsorientierte Schicht stellen die Lösungen für verschiedene betriebswirtschaftliche (zum Beispiel Marketing) oder branchenspezifische (zum Beispiel Entwicklung von Medikamenten) Fragestellungen dar. Diese bauen auf den Kerntechnologien und auf der Intelligence Platform auf.

Die SAS-Sprache („SAS Language“)

Der aktive technische Kern der SAS-Software war immer und ist auch heute noch ein Interpreter (Prozessor) für die Skriptsprache „SAS Language“. Diese besteht aus einer Vielzahl von Anweisungen (Statements), die jeweils mit einem Semikolon abgeschlossen werden. „SAS-Code“ ist eine Aneinanderreihung von Anweisungen, die nacheinander vom Interpreter ausgeführt werden. Hinter den Anweisungen verbergen sich vorgefertigte Funktionalitäten zum Teil sogar weitere Programmiersprachen aus ganz unterschiedlichen Bereichen. In den 80er-Jahren hieß so etwas 4GL.

In einem sogenannten Prozedurschritt (PROC STEP) können vorgefertigte Prozeduren mit typischerweise wenigen Zeilen Programmcode aufgerufen werden, um deskriptive und schließende Statistiken zu berechnen, Berichte und Grafiken in unterschiedlichsten Formaten zu erstellten sowie Daten und Konfigurationen zu verwalten. Insgesamt sind es über 350 Prozeduren, die nach Anwendung und lizenztechnisch zu zirka 20 Produkten zusammengefasst sind.

Folgende Programmiersprachen sind Bestandteil der „SAS Language“:

  • Der sogenannte Datenschritt (DATA STEP), der in einer sehr mächtigen, SAS-eigenen Datendefinitions- und -manipulationssprache geschrieben wird, die bereits vor SQL existierte und wesentlich mächtiger, zum Teil aber auch umständlicher als SQL ist. Die Syntax lehnt sich ein wenig an die Programmiersprache PL/I an. Im Gegensatz zu SQL kennt der DATA STEP iterative und bedingte Anweisungen sowie Arrays und viele weitere Konstrukte, die es erlauben Daten jedweder Art zu lesen, zu verarbeiten und zu speichern.
  • Eine umfangreiche Makro-Sprache, die nach dem Textersetzungsprinzip funktioniert und mit der man sehr flexible, unter Umständen aber auch schwer wartbare Programme schreiben kann.
  • Ein SAS-eigenes SQL (siehe PROC SQL), das einige Erweiterungen, aber auch einige Kürzungen gegenüber ANSI-SQL besitzt. Es ermöglicht den Zugriff auf das SAS-eigene relationale Datenbanksystem (s.u.) sowie, über die Datenschnittstellen von SAS/ACCESS (s.u.), auf die Datenbanksysteme verschiedenster Hersteller und auf die Standardschnittstellen OLEDB und ODBC.
  • Der Durchgriff auf die SQL-Sprachen verschiedenster Datenbanksysteme wie Microsoft SQLServer, Oracle, DB2 und MySQL, wobei direkt der jeweilige SQL-Dialekt verwendet werden kann (sogenanntes Pass-Through).
  • Eine Matrixsprache namens IML (Interactive Matrix Language).

Für die Ausführung dieser Skriptsprache steht schon immer Betriebssystem-übergreifend die SAS-Fensterumgebung (SAS Windowing Environment, früher SAS Display Manager) zur Verfügung. Sie dient dazu, Programme zu schreiben und auszuführen und Daten, Ergebnisse und Protokolle anzusehen. Zusätzlich kann SAS-Code im Enterprise Guide (s.u.) entwickelt und ausgeführt werden. In einem Anwendungsentwicklungsszenario (s.u.) wird SAS-Code auf dem Server ausgeführt und die Ergebnisse in Client-Anwendungen angezeigt.

Die SAS-eigene Datenbank

SAS enthält mit dem SAS Data Set bzw. zu Deutsch der SAS-Tabelle („SAS Data Sets“) ein einfaches und effizientes internes Datenbankkonzept, das ganz auf die Erfordernisse der Informationsgewinnung ausgerichtet ist. Im Gegensatz zu transaktionsorientierten Datenbanken ist der Data Set auf hohe Geschwindigkeiten beim Lesen und Schreiben großer Datenmengen optimiert. Transaktionen finden nicht auf Satz-, sondern auf Tabellenebene statt. Man kann mit dieser Datenbank zwar arbeiten wie mit einer gewöhnlichen Datenbank, also mit den Mitteln der oben beschriebenen Skriptsprache per SQL oder DATA-Schritt Tabellen anlegen, Sätze einfügen, ändern und löschen und es gibt auch Indizierung, referentielle Integrität und Audit Trails. Häufiger werden allerdings Tabellen während der Verarbeitung einfach komplett neu geschrieben, daher gibt es auch das Konzept der Historisierung von Tabellen (Generation Data Sets).

Die Ausrichtung auf die Informationsgewinnung zeigt sich auch in dem sehr sparsamen Typenkonzept, es gibt eigentlich nur zwei Datentypen: Fließkommazahlen und Zeichenketten fester Länge.

Tabellen werden zu Bibliotheken (Libraries) zusammengefasst. Je nach Betriebssystem kann eine Bibliothek physisch durch ein Verzeichnis in einem hierarchischen Filesystem (unter Unix und Windows) oder durch ein anderes physisches Speicherkonzept (unter klassischem zOS) repräsentiert werden. Bibliotheken werden durch logische Namen (sogenannte Librefs) referenziert.

Für den optimierten Betrieb sehr großer Datenbanken auf Basis des SAS-eigenen Speicherkonzepts gibt es ein eigenes Serverprodukt namens Scalable Performance Data Server („SPDS“).

Für die Speicherung von Datenwürfeln („Cubes“) gibt es einen eigenen OLAP-Server von SAS.

Der Zugriff auf externe Daten

Der lesende und schreibende Zugriff auf und die Integration von Daten aus ganz unterschiedlichen Datenbanksystemen und Dateiformaten ist bei der Informationsgewinnung essentiell.

Für den Zugriff auf relationale Daten gibt es das Konzept der SAS-Engine, das den Zugriff auf SAS-Datasets, XML-Daten und alle unterstützten fremden Datenbanksysteme über die einheitliche Schnittstelle der Library Engines bietet. SAS/ACCESS ermöglicht den Zugriff auf alle wichtigen Datenbanksysteme (nicht nur Oracle, DB2, Microsoft SQL Server, MySQL), auf Datenbanken über ODBC und OLEDB sowie auf Files in den Desktop-Formaten (Microsoft Excel und Access, dBase, CSV etc.), soweit sich diese als strikt relationale Tabellen auffassen lassen. Einen Überblick gibt die Einstiegsseite zur Dokumentation von SAS/ACCESS.

Auf fremde relationale Datenbanksysteme kann, wie bereits erwähnt, auch über Pass Through zugegriffen werden, wobei die SQL-Syntax des jeweiligen RDBMS verwendet wird.

Der lesende und schreibende Zugriff auf nicht-relationale Daten in den unterschiedlichsten Formaten ist äußerst flexibel über Anweisungen im DATA-Schritt möglich.

Betriebssysteme

Bereits in den 80er-Jahren konnte man SAS-Programme auf dem PC entwickeln und mit geringen Änderungen, die in erster Linie den unterschiedlichen Filesystemen geschuldet waren, auf dem Großrechner einsetzen (und umgekehrt). Heute kann SAS auf verschiedenen Varianten der Betriebssysteme Windows, Unix und zOS betrieben werden.

Betriebssystemübergreifendes Client-Server-Computing war ebenfalls bereits in den 80er-Jahren mit Hilfe von SAS/CONNECT verfügbar. Dabei dient eine SAS-Installation als Client und eine andere als Server. Dies ist auch heute noch verfügbar, tritt jedoch in den Hintergrund, da Anwendungen auf Basis von Java, Microsoft Windows sowie Webanwendungen die Rolle der Clients übernommen haben.

Anwendungsentwicklung

Eine eigene Entwicklungsumgebung namens SAS/AF mit der Programmiersprache SCL (SAS Component Language, früher SAS Screen Control Language) dient der Anwendungsentwicklung auf Basis von objektorientierter Software. Eine Besonderheit ist die Möglichkeit, eigene portable und betriebssystemübergreifende Anwendungen zu schreiben. Dies hat jedoch durch die weitreichenden Möglichkeiten der Java- und .NET-Plattformen mittlerweile stark an Bedeutung verloren.

Für die Entwicklung von Webanwendungen mit SAS gab es zunächst SAS/Intrnet, das auf der Webserver-Erweiterung CGI basiert. Auch diese Technologie, bei der HTML-Seiten mit Hilfe verschiedener Programmierschnittstellen insbesondere im DATA-Schritt erzeugt werden, gilt heute als veraltet und wird abgelöst durch die folgenden Technologien.

Heute dienen Java EE und Microsoft .NET als Integrations- und Anwendungsentwicklungsplattformen. Hierzu gibt es SAS Integration Technologies mit Client- und Server-seitigen Komponenten. Client-seitig stehen Klassenbibliotheken für das Integrated Object Model (IOM) in Java und .NET zur Verfügung, die den Zugriff auf die verschiedenen Funktionalitäten der SAS-Server erlauben. Für die Entwicklung von Java-basierten Desktop- und Web-Anwendungen steht mit Appdev Studio eine eigene, Eclipse-basierte Entwicklungsumgebung zur Verfügung. Server-seitig gibt es den Workspace Server für langdauernde Sitzungen (ein Serverprozess pro Clientprozess), den Stored Process Server für die sequentielle Abarbeitung von Client-Anfragen (feste Anzahl von Serverprozessen mit Lastverteilung) den OLAP-Server für die Speicherung von Cubes sowie den Metadatenserver für die Speicherung von technischen, fachlichen und anwenderbezogenen Metadaten.

Ein wichtiger Teil von Integration Technologies ist die SAS Web Infrastructure Platform, die als Basis für die Web-Anwendungen der SAS Intelligence Platform (siehe unten) fungiert.

Integration Technologies enthält weitere Services, unter anderem auch die Möglichkeit, BI Web Services zu entwickeln.

Intelligence Plattform

Die SAS Intelligence Platform (seit SAS Version 9) gibt Unternehmen die Möglichkeit, komplexe Informationsgewinnungsprozesse in heterogenen IT-Infrastrukturen aufzubauen und sich dabei auf eine hochspezialisierte Softwarearchitektur und auf rollenspezifisch ausgerichtete Frontends zu stützen. Die SAS Intelligence Platform integriert einen großen Teil der oben genannten Komponenten der SAS Software und stellt zusätzlich Frontends unter anderem für Administratoren und Datenintegrations-Entwickler (Desktop-Java-Anwendungen), Power-User (Windows-Anwendungen, auch integriert in Microsoft Office), und Informationskonsumenten (Webanwendungen) zur Verfügung. Eine zentrale Komponente der Intelligence Platform ist der Metadatenserver für die anwendungsübergreifende Verwaltung von Metadaten.

Im Folgenden die wichtigsten Frontends der SAS Intelligence Platform:

Desktop-Java-Anwendungen für Administratoren und Entwickler:

  • Management Console kommuniziert in erster Linie mit dem SAS Metadatenserver und dient der Verwaltung der gesamten Umgebung.
  • Data Integration Studio ermöglicht grafisch unterstützt die Entwicklung von ETL-Prozessen, die auf dem Metadatenserver registriert werden, so dass eine dokumentierte Nachverfolgung der Daten von der Quelle bis zum Endanwender möglich wird.
  • Information Map Studio dient dazu, fachlich dokumentierte Datensichten für Endanwender zu erzeugen.
  • OLAP Cube Studio erlaubt es, OLAP-Cubes zu entwickeln und zu verwalten.

Windows-Anwendungen für Power-User:

  • Enterprise Guide ist gut in Microsoft Windows integriert und wird von IT-nahen Anwendern in den Fachabteilungen benutzt, um individuelle Auswertung mit Hilfe von Dialog-gestützten Anwendungsroutinen oder auf der Basis von SAS-Code zu erstellen.
  • Das Add-In für Microsoft Office verbindet SAS-Technologie mit Microsoft Office und ermöglicht aus Microsoft Excel und aus anderen Anwendungen der Microsoft-Office-Suite das Ausführen von SAS-Routinen sowie den Zugriff auf Daten, die auf SAS-Servern gespeichert sind, auch auf OLAP-Daten.

Webanwendungen für Berichtsdesigner und Informationskonsumenten:

  • Web Report Studio läuft im Webbrowser. Es können interaktiv Berichte erzeugt und fertige Berichte abgerufen werden. Basis für die Berichte sind die Information Maps.
  • Web OLAP Viewer unterstützt OLAP im Webbrowser.
  • Das Information Delivery Portal dient dazu, Informationsobjekte wie Berichte, OLAP-Berichte, Dashboards oder Information Maps in einer Portalumgebung im Browser verfügbar zu machen.

Analytics Platform

Die SAS Analytics Platform fasst Anwendungen für komplexe Analysen zusammen, insbesondere Enterprise Miner und Text Miner für das Data Mining, sowie Forecast Server für Zeitreihenanalysen und Prognosen.

Versionen

SAS 9.2

SAS 9.2 wurde erstmals auf dem SAS Global Forum im März 2008 vorgestellt. Die aktuelle Version SAS 9.2 TS2M3 ist auf folgenden Betriebssystem-Plattformen lauffähig:

  • 64-bit Enabled AIX
  • 64-bit Enabled HP-UX
  • 64-bit Enabled Solaris
  • HP-UX IPF
  • Linux
  • Linux für x64
  • Microsoft Windows für IPF
  • Microsoft Windows für x64
  • OpenVMS on HP Integrity
  • Solaris für x64
  • Windows
  • z/OS

Konferenzen

Zu Themenkreisen rund um die SAS-Software finden regelmäßig verschiedene Konferenzen statt. Hier eine Auswahl:

Deutschsprachig:

Sonstige:

Weblinks