Datenanalyse mit SQL Server 2000
Artikel erschienen in Swiss IT Magazine 2001/01
Bei SQL Server 2000 finden sich im Vergleich zur Vorgängerversion eine Vielzahl von Erweiterungen für die Datenanalyse. Der OLAP Server, der mit dem Microsoft SQL Server 7.0 verfügbar gemacht wurde, war letztlich nur ein Zwischenergebnis der Entwicklungsarbeit. Erst mit den Analysis Services der jüngsten Ausführung haben die Redmonder diese Funktionen eng mit dem Datenbank-Managementsystem integriert. Auf Basis von OLE DB for Data Mining kann die Data Mining Engine der Analysis Services Daten automatisch mit dem SQL Server austauschen. Dabei wird auf Konzepte wie das Einfügen und Verknüpfen (JOIN) von Tabellen zurückgegriffen, die Datenbankentwicklern vertraut sind.
Die grundlegenden Konzepte beim SQL Server 2000 sind einerseits die Segmentierung, mit denen gleichartige Daten in Clustern zusammengefasst werden können, und auf der anderen Seite Entscheidungsbäume, mit deren Hilfe Voraussagen getroffen werden können. Diese Entscheidungsbäume lassen sich über Abhängigkeitsnetze auch miteinander verbinden. Damit wird die Analyse komplexer Daten signifikant erleichtert. Die Segmentierung spielt dabei insbesondere bei sehr grossen Datenbeständen wie beispielsweise der Analyse von Benutzerdaten bei Websites eine Rolle, aus denen Verhaltensmuster extrahiert werden sollen.
Der SQL Server 2000 bietet Algorithmen für beide Aufgabenstellungen an, die den Administrator und Entwickler unterstützen. Hinzu kommt die Unterstützung ausgefeilter statistischer Methoden wie beispielweise den von Thomas Bayes entwickelten. Diese Bayes'sche Verfahren erlauben eine Trennung von wiederkehrenden Mustern von statistischem "Noise".
Die Analysis Services müssen gesondert installiert werden. Nach dem Aufruf des Installationsprogramms stehen neben dem Database Server und der English Query auch die Analysis Services zur Auswahl. Als Installationsoptionen werden dann unter anderem der Analysis Server und der Analysis Manager angeboten. Ersterer wird für die Ausführung der Analysefunktionen, letzterer für ihre Verwaltung benötigt. Darüber hinaus müssen mit dem Analysis Server noch Objekte für die Entscheidungsunterstützung und Client-Komponenten eingerichtet werden.
Die von Microsoft genannten Minimalvoraussetzungen für die Installation sind dabei definitiv nur als solche zu verstehen. Die 130 MB an Plattenplatz für die Komponenten und die empfohlenen 64 MB an Hauptspeicher sind für den praktischen Einsatz deutlich zu niedrig. Je nach zu analysierendem Datenvolumen und Komplexität der Analysen sind die Analysis Services typische Funktionen für Mehrprozessorsysteme mit Hauptspeicher im Bereich durchaus auch von mehreren Gigabyte.
Nach der Installation steht dann der Analysis Manager zur Verfügung, der gesondert aus dem Menü aufgerufen werden kann. Dieses Werkzeug stellt dem Anwender alle wichtigen Funktionen für die Analyse von Daten zur Verfügung. Die Verwaltung der Analysis Services kann mit diesem Programm von mehreren Administratoren parallel durchgeführt werden. Die jeweils aktuell bearbeiteten und davon abhängigen Objekte werden selektiv gesperrt.
Mit dem Analysis Manager lassen sich hauptsächlich die folgenden Aufgaben ausführen:
Erstellung von Datenbanken und spezifischen Datenquellen
Aufbau von Cubes
Erstellung und Ausführung von Data-Mining-Modellen
Steuerung von Speicheroptionen
Optimierung der Abfrageperformance
Sicherheitsverwaltung
Verwaltung von Dimensionen und anderen Objekten
Für die Ausführung verschiedenster der genannten Funktionen stehen Assistenten zur Verfügung.
Cubes stellen das zentrale Element von OLAP-Funktionen dar. Der Umgang mit Cubes wurde beim Microsoft SQL Server 2000 im Vergleich mit der Vorgängerversion wesentlich erweitert. Mit Distributed Partitioned Cubes wird ein ähnliches Modell wie mit den Distributed Partitioned Tables angeboten. Cubes können damit über mehrere Server verteilt werden. Dazu werden entfernte Partitionen verwendet.
Die Verwaltung dieser verteilten Cubes erfolgt über einen zentralen Analysis Server. Die Bearbeitung von Analysen auf den Cube wird aber auf mehrere Server verteilt. Das ist insbesondere für sehr komplexe Analysen von Bedeutung, da dadurch die Skalierbarkeit der Analysis Services erhöht werden kann. Neben den Distributed Partitioned Cubes werden auch indizierte Sichten unterstützt.
Ebenfalls eine Verteilung bieten die verknüpften Cubes (Linked Cubes). Der Cube wird dabei auf einem Analysis Server erstellt und auf anderen Servern bereitgestellt. Der Zugriff kann über jeden Analysis Server erfolgen. Allerdings erfolgt die Verarbeitung nur auf dem Analysis Server, auf dem der Cube definiert ist. Es handelt sich hier also nicht um eine Lastverteilung. Die Zielsetzung ist hier, sowohl die Administration durch Verringerung der Zahl von Cubes zu reduzieren als auch den benötigten Plattenplatz einzuschränken.
Wesentliche Fortschritte gibt es auch bei der Verarbeitung von Cubes. Mit sogenannten lazy aggregations können Daten aus Cubes für Endbenutzer auch während Berechnungen bereitgestellt werden. Dabei lässt sich auch eine differenzierte Fehlerbehandlung definieren. Mit Real-Time OLAP wird OLE DB for Data Mining voll ausgenutzt. In Real-Time Cubes lassen sich Daten für Benutzer dynamisch bereitstellen. Die Basis bildet der relationale Datenspeicher des Microsoft SQL Server. Änderungen werden automatisch übernommen. Auf dieser Basis lassen sich beispielsweise Analyseanwendungen für Aktienmärkte oder Call-Center-Anwendungen in optimaler Weise realisieren.
Noch sichtbarer für den Endbenutzer sind Aktionen, die sich mit dem Action Wizard erstellen lassen. Aktionen können sowohl andere Anwendungen mit definierten Parametern aufrufen als auch zusätzliche Informationen zu den selektierten Daten erfragen. Damit lassen sich umfassendere Anwendungen als bisher erstellen. So kann beispielsweise beim Unterschreiten von Werten für Lagerbestände gezielt die Beschaffung angestossen werden.
Der Action Wizard erlaubt die Definition einer Reihe von Optionen für eine Aktion. Dazu gehören das Ziel, die Dimension, die Mitglieder der Dimension und eine Reihe weiterer Parameter. Diese Elemente, die beschreiben, an welcher Stelle eine solche Aktion ausgeführt werden kann, lassen sich im Action Wizard selektieren. Dafür können dann der Typ und die Syntax der Aktion festgelegt werden. Beim Typ wird beispielsweise eine Befehlszeile oder ein OLE-DB-Befehl angegeben. Als Syntax werden dann die Parameter festgelegt, die von dem auszuführenden Befehl verwendet werden. Diese Parameter können aus den Ergebnissen der aktuellen Analyse übernommen werden.
Weitere neue Funktionen im Bereich der Cubes sind das Drillthrough, über das Benutzer durch Ebenen von Daten navigieren können, und die Möglichkeit zum Verstecken von Cube-Elementen.
Auch bei den Dimensionen gibt es eine Vielzahl von Erweiterungen. Um die Beziehungen zwischen Mitgliedern einer Dimension grafisch aufzubereiten, stellt SQL Server 2000 den Cube Editor zur Verfügung.
Eine zentrale Erweiterung dabei sind die Parent-Child-Dimensionen, mit denen Beziehungen zwischen Objekten abgebildet werden können. Damit lassen sich beispielsweise Organisationsstrukturen oder Teilelisten abbilden.
Mit Hilfe dieser speziellen Dimensionen besteht zudem die Möglichkeit, in deutlich einfacherer Weise komplexe Anwendungen zu realisieren. Die Parent-Child-Dimensionen sind nicht mit den abhängigen Dimensionen zu verwechseln. Letztere werden verwendet, um das Wissen über Kombinationen von Mitgliedern ohne Schnittstellen für eine Optimierung der Speicheranforderungen zu verwenden. Eine spezifische Form der Parent-Child-Dimensionen sind hingegen die ragged dimensions. Damit lassen sich Strukturen abbilden, bei denen es keine direkten Beziehungen zu den logischen Eltern gibt. Das ist beispielsweise der Fall, wenn bei lokalen Angaben teilweise Bundesstaaten oder -länder genutzt werden, teilweise aber auch nicht. Dann fehlt bei einem Teil der Daten die Beziehung zu übergeordneten Informationen, die durch Konfiguration der ragged dimensions ersetzt werden können.
Für sehr grosse Datenvolumen sind die ROLAP-Dimensionen von Bedeutung. Dabei werden die Daten, wie der Name bereits sagt, in relationalen Datenstrukturen gespeichert. Damit werden die Grössenbeschränkungen, die es beispielsweise bei MOLAP gibt, umgangen. Reizvoll sind auch die beschreibbaren Dimensionen. Diese setzen allerdings speziell angepasste Anwendungen voraus, bei denen auch das Zurückschreiben unterstützt wird. Für die Zugriffssteuerung werden Rollen verwendet.
Hochinteressant sind auch die änderbaren Dimensionen, bei denen Mitglieder gelöscht, hinzugefügt, umbenannt und verschoben werden können, ohne dass der Cube vollständig neu berechnet werden muss. Cubes lassen sich damit bei deutlich höherer Verfügbarkeit für Client-Anwendungen verändern.
Diese Art von Dimensionen sollte immer dann verwendet werden, wenn häufige, schnell durchzuführende Änderungen zu erwarten sind und die Änderungen für Benutzer unverzüglich sichtbar werden sollen. Grundsätzlich sind Parent-Child-Dimensionen, virtuelle Dimensionen und ROLAP-Dimensionen immer als ändernde Dimensionen definiert. Diese Dimensions-Typen sind langsamer als nicht veränderbare Dimensionen.
Um aus einer bestehenden Dimension eine veränderbare machen zu können, müssen eine Reihe von Voraussetzungen gegeben sein. Dazu gehört, dass die Eigenschaft Member Keys Unique auf der untersten Ebene der Dimension auf True gesetzt ist. Bei privaten Dimensionen muss die Eigenschaft Aggregation Usage auf Standard gesetzt werden, wenn sie aktuell benutzerdefiniert ist. Anschliessend kann die Eigenschaft Changing auf True gesetzt werden.
Für die Optimierung von Analysen sind die Dimensionsfilter von Bedeutung. Mit diesen WHERE-Bedingungen, die sich an SQL-Statements orientieren, können die Zeilen, die in eine Dimension aufgenommen werden, beschränkt werden. Auch hierzu werden die Eigenschaften der Dimension angepasst.
Der dritte Änderungsbereich bei den Analysis Services betrifft das Data Mining, also die eigentlichen Analysefunktionen. Dabei geht es darum, aus einer Vielzahl von Informationen diejenigen herauszufiltern, die tatsächlich von Interesse sind.
Hier sind die Microsoft-Entscheidungsbäume von besonderem Interesse. Auf diese wurde bereits weiter oben kurz eingegangen. Die Erstellung von Entscheidungsbäumen erfolgt mit dem Befehl CREATE MINING MODEL. Die Steuerung erfolgt über zwei Parameter. Mit COMPLEXITY_PENALTY wird die Entscheidung über die Aufteilung von Bäumen beeinflusst. Mit MINIMUM_LEAF_CASES wird angegeben, wie viele Einzelfälle für die Aufteilung eines Baums mindestens erforderlich sind. Der Standard ist 10. Der Wert kann deutlich erhöht werden, um die Anzahl der ausgegebenen Entscheidungsfälle zu reduzieren. Mit Hilfe von Entscheidungsbäumen kann beispielsweise auf Basis vorliegender Kredithistorien das Kreditrisiko von neuen Kreditanfragen bewertet werden.
Die zweite zentrale Erweiterung beim Data Mining ist das Microsoft Clustering. Auf Basis der Next-Neighbor-Methode kann das System dabei Daten, die ähnliche Charakteristika aufweisen, in Clustern zusammenfassen.
Der Reiz dieser Technologie liegt darin, dass diese Charakteristika in vielen Fällen zunächst nicht offensichtlich sind. Das System kann diese analysieren und damit dem Administrator der Analysis Services zusätzliche Informationen liefern, mit denen dieser dann die Aussagekraft der Informationen optimieren kann.
Im Bereich der Sicherheit profitieren die Analysis Services insbesondere von den Erweiterungen beim SQL Server 2000 selbst. So können nun http-basierende Authentifizierungsmethoden genutzt werden. Reizvoll ist aber auch die Möglichkeit, Zugriffsberechtigungen gezielt auf der Ebene von Dimensionen zu steuern. Dafür werden Rollen verwenden. Für jede Rolle können die Zugriffe auf Dimensionen, Levels und Mitglieder gesteuert werden. Dabei wird grundsätzlich zwischen Lese- und Schreibrechten unterschieden. Für beide Arten von Berechtigungen gibt es wiederum die Unterscheidung zwischen unbeschränktem, vollständig beschränktem und benutzerdefiniertem Zugriff. Bei benutzerdefinierten Zugriffsberechtigungen kann gezielt gesteuert werden, welcher Teil des Baums sichtbar sein soll. Diese Steuerung erfolgt immer innerhalb der Hierarchien einer Dimension. Wenn für einen bestimmten Level Zugriffsberechtigungen vergeben werden, wirken sich diese auch auf die untergeordneten Levels aus. Sie können aber auf jeder Ebene neu gesetzt und gesteuert werden.
Betrachtet man die beschriebenen Erweiterungen und die Vielzahl weiterer neuer Funktionen bei den Analysis Services von SQL Server 2000, dann wird deutlich, dass diese Funktionalität nun erwachsen geworden ist. Mit Hilfe der Analysis Services lassen sich vergleichsweise einfach Anwendungen mit einem deutlich höheren Leistungsvermögen erstellen. Die Analysis Services erlauben nicht mehr nur die Analyse von Daten durch speziell dafür geschulte Anwender, sondern insbesondere auch die Entwicklung von Lösungen, bei denen die Datenanalyse ein integraler Bestandteil ist, der aggregierte Informationen liefert, die dann beispielsweise über Aktionen genutzt werden können, um andere Aktivitäten des Systems auszuliefern.
Schon die enge Integration mit dem SQL Server macht deutlich, dass es sich bei den Analysis Services und OLAP-Funktionen heute nicht mehr um eine spezielle und fast schon esoterische Funktionalität im Umfeld von Datenbanken handelt, sondern um eine Basisfunktionalität, die Anwendungen leistungsfähiger machen kann - und das bei überschaubarem Entwicklungsaufwand.