Hier mal wieder ein Praxisbericht für die SQL Server Nutzung bei einem großen Kunden, Ich finde ihn sehr interessant, da er mir einen Einblick in das oft diskutierte Gebiet Kreditratings gibt.

Disclaimer: Der folgende Praxisbericht wurde von Roland Jonscher, Sparkassen Rating und Risikosysteme GmbH und Markus Raatz, ixto GmbH erstellt und stellt deren Sicht dar, nicht die von mir oder der Microsoft Deutschland GmbH

Vielen Dank an die beiden Autoren!

Gruß,
Steffen

SQL-Migration bei der Sparkassen Rating und Risikosysteme GmbH

Ein Praxisbericht

Eine der Stärken der Sparkassen-Finanzgruppe ist ihre regionale Ausrichtung: Mehr als 430 eigenständige Sparkassen betreuen ihre Kunden lokal, unterstützt von neun Landesbanken. Eines der großen übergreifenden Projekte der letzten Jahre war der Basel-II-Rollout, der von jedem Kreditinstitut u.a. fordert, eine Bonitätsbewertung für ihre Kunden durchzuführen. Um die Bewertungsmodelle übergreifend für alle Sparkassen entwickeln und pflegen zu können, wurde im Jahr 2004 durch den Deutschen Sparkassen und Giroverband (DSGV) die Sparkassen Rating und Risikosysteme GmbH (SR) mit Sitz in Berlin gegründet.

Eine zentrale Frage für die Wartung und Pflege der Modelle ist, wie sich die prognostizierten Ausfallraten zu den tatsächlich eingetretenen Ausfallraten verhalten. Ebenso interessant ist die Frage, welches die trennscharfen Faktoren sind. Die Datenbasis für diese Analysen ist sehr hoch, denn die Institute haben in den vergangenen Jahren über 4,6 Mio. Ratings durchgeführt.

Die Auswertung dieser Daten ist ein klassischer Fall für das Data Mining. Dieses wird u.a. betrieben mit Hilfe des Verfahrens der logistischen Regression und unter Einsatz von SPSS. Bei welcher Kombination von Kundenmerkmalen lässt sich der Ausfall zuverlässig vorhersagen, bei welcher ist die Prognose weniger zuverlässig?

Neben der Modellpflege gibt es viele Anforderungen für Auswertungen der Rating-Daten: Wie stellt sich die Risikosituation in den einzelnen Sparkassen dar? Wie steht ein Institut im Vergleich zu anderen Sparkassen derselben Größe oder desselben Regionalverbandes oder zu ganz Deutschland da?

clip_image002

Zu diesem Zweck wird für jedes Institut in regelmäßigen Abständen ein Excel-Bericht generiert, der über 80 Tabellen und über 70 Diagramme enthält. Weil zusätzlich auch viele Ad-Hoc-Anfragen von verschiedenen Seiten eintreffen, stand von Anfang an fest, dass darunter ein OLAP-Cube liegen musste. Schon bei der jetzt abgelösten Alt-Lösung hatte man sich für den SQL Server und seine Analysis Services entschieden, damals allerdings noch in der Version 2000.

Dass die Analysis Services seit SQL 2005 komplett neu entwickelt worden sind und seitdem wesentlich komplexere Sachverhalte bei weit besserer Performance abwickeln können, hat die SR hellhörig werden lassen. Der erste Prototyp, den ixto für die SR baute, hat dies bestätigt. Also wurde die Portierung auf SQL 2008 beschlossen, verbunden mit einem gründlichen Neudesign um auch alle neuen Features wirklich nutzen zu können.

Das Besondere dabei: Einen großen Teil der technischen Arbeit führen die Mitarbeiter der SR selbst durch. Sie sind neben ihren Finanz- und Statistik-Kenntnissen auch Fachleute auf dem SQL Server, den OLAP-Cubes und seinen ETL-Werkzeugen. Das ist auch notwendig, denn viele spontane Anfragen können oft nur mit selbst erstellten Abfragen beantwortet werden, die der Fachanwender dann auch selbst erstellt.

Warum SQL Server 2008?

Datenbank-Engine

Viele Auswertungen im Rating-Bereich verwenden eine Kategorisierung oder Diskretisierung numerischer Werte in so genannte „Buckets“ (z. B. Altersgruppen). Um diese dann in eigenen Dimensionen im OLAP-Cube auswerten zu können, benötigt man als Grundlage eine relationale Dimensionstabelle, welche die „von-bis“-Grenzen jeder einzelnen Gruppe und eine Bezeichnung dafür vorhält. Weil sich diese Grenzen verschieben können, hat ixto nach einer dynamischen Lösung für die Erzeugung dieser Tabelle gesucht. Dafür hat es sich als besonders hilfreich erwiesen, dass der SQL Server 2008 als neue SQL-Syntax allgemeine Tabellenausdrücke (Common Table Expressions oder CTEs) unterstützt. Dadurch konnten die Dimensionen auf Sichten statt auf Tabellen aufbauen, wobei sich diese Sichten bei jeder neuen Befüllung der Fakten- und Dimensionsdaten dynamisch neu aufbauen. Weil in der Definition dieser Sichten CTEs verwendet wurden, sind sie durch die verschiedenen Projektmitarbeiter deutlich besser zu warten.

clip_image004

1.: Mit CTEs dynamisch erzeugte Dimensionstabelle

Noch hilfreicher war das neue UNPIVOT-Statement, mit dem man per SQL-Abfrage die Spalten einer Tabelle in zusätzliche Zeilen verwandeln kann. Dies ist nötig, weil das Rating-Modell nicht starr ist, sondern im Zeitverlauf neue Fragen und somit neue Spalten in die Rating-Daten hinzukommen. Eigentlich wäre es dann erforderlich, die neuen Spalten auch in allen Lade-Vorgängen hinzuzufügen und an alle weiteren Auswertungstabellen anzuhängen. Durch ein relationales UNPIVOT mit dynamisch erzeugtem SQL, das in Integration Services aus den Systemtabellen erzeugt und dynamisch über Expressions ausgeführt wird, werden aus den neuen Spalten zusätzliche neue Zeilen. Damit kann – ohne Anpassung – das bestehende SSIS-Paket genutzt werden, weil sich die eigentliche Datenstruktur nicht ändert.

Integration Services 2008

Viel Aufwand machte natürlich auch der Umstieg von den alten DTS-Paketen der 2000er-Version auf die Integration Services 2008. Aber es hat sich gelohnt: Die komplexen Ladevorgänge lassen sich nun viel besser warten, man kann einzelne Schritte für die Fehlersuche deaktivieren; und alles ist sauber und übersichtlich(er) in eigene Pakete zerlegt.

Die Integration Services sind besonders bei der Auswertung von vielen hunderttausend Rating-Zeilen und bei der Kategorisierung der numerischen Werte („Range Lookup“) gefordert. Dazu wurde der neuen Script Task verwendet: Die leicht wartbare Skript-Lösung unter Verwendung von BinarySearch ist von der Performance her nicht spürbar langsamer als fertige Komponenten und mit der dabei gebotenen Flexibilität ist jede ETL-Anforderung realisierbar.

clip_image006

clip_image008 clip_image010

2.: Einsatz des Script Task bei der Kategorisierung

Analysis Services 2008

Bei den Analysis Services begeistert – neben der enorm verbesserten Performance – auch die Möglichkeit, über die neuen m:n-Measuregruppen etwa sogenannte „Vergleichsnoten“ anzeigen zu können. Dies sind Auswertungen, die anzeigen, wie viele Kunden innerhalb eines Jahres sich von einer Rating-Note, z. B. 1 (A) auf eine Note 3 verschlechtert haben. In der Vergangenheit wurden wenige, ausgewählte Kombinationen von Noten und Zeit-Perioden vorher in der relationalen Datenbank bereitgestellt und so in den Cube geladen. Heute kann man über die m:n-Verbindung zwischen Noten, Vergleichsnoten, Perioden und Vergleichsperioden jede beliebige Kombination in der Abfrage herstellen – und die Performance ist schneller als der alte Ansatz in SQL Server 2000.

Auch kleinere Verbesserungen am Cube, wie die Möglichkeit mehrere Hierarchien in einer Dimension zu verwalten und das Konzept der Attributhierarchien, sind für den Nutzer hilfreich und haben die Nutzungsmöglichkeiten des Cubes stark erweitert, ohne ihn dabei langsamer oder größer zu machen.

Tägliches Geschäft beim Rating sind auch komplexe Berechnungen, die man am besten mit MDX im Cube selbst abspeichert. Ein Beispiel dafür ist die Aggregation von Faktoren, die mit Schulnoten bewertet werden, auf höhere Ebenen in Hierarchien. Wenn mehrere dieser Faktoren zusammengefasst werden, kann nicht die Summe der Faktoren aus den einzelnen Antworten oder das arithmetische Mittel verwendet werden: Man benötigt eigene, dynamische Regeln dafür, wie sich ein Elternknoten aus seinen Kindern berechnet. Seit dem SQL Server 2005 gibt es dafür die MDX Script-Syntax, mit der man über SCOPE-Statements den Wert des Zielknotens dynamisch berechnen und im Cube „überschreiben“ kann. Die Performance dieser Berechnungen ist durch den neuen Blockberechnungs-Mechanismus in Analysis Services 2008 noch weiter verbessert.

Reporting Services

Reporting Services 2008 – eigentlich eine besondere Stärke von ixto – kommt in diesem Projekt bisher nicht zur Anwendung. Grund ist, dass die Endanwender regelmäßig eine „echte“ Excel-Datei erwarten, bei der auch die Grafiken dynamisch auf die Excel-Daten im Sheet basieren. ixto hat stattdessen eine eigene Komponente entworfen, die – ausgehend von einem Master-Sheet – die Cube-Daten über die Cubeformeln von Excel 2007 in die Tabellen holt, die Cubeformeln danach aber wieder entfernt, so dass nur die Werte in der Excelmappe verbleiben. Hier bewährt sich die Microsoft BI einmal wieder als „Baukastensystem“, deren Komponenten auch gerade mit dem Office System beliebig kombinierbar sind.

Ausblick

Einige Projektteile sind derzeit nur als Prototyp entwickelt; sie werden jetzt teils von ixto, teils von den Fachanwendern selbst durch produktive Versionen ersetzt. Dann sollten alle von den Möglichkeiten der neuen Version profitieren: Das Reporting soll noch verbessert werden, man will für die einzelnen Institute zukünftig auf Zuruf binnen Minuten Ad-Hoc-Auswertungen liefern.

Der Projektleiter bei der SR, Herr Roland Jonscher, sieht den Hauptvorteil der Zusammenarbeit vor allem so: „Die neue Software schaufelt Zeit für die Mitarbeiter frei, damit sie mehr inhaltlich mit den Daten machen können.“