Diplomarbeit zur Erlangung des akademischen Grades Diplom-Informatiker an der Fachhochschule Dortmund im Fachbereich Informatik im Studiengang Wirtschaftsinformatik Business Intelligence im Mittelstand Implementierung eines BI-Gesamtansatzes in einem mittelständischen Unternehmen mit dem Microsoft SQL Server®. Autor: David Claßen Matrikel-Nr: 7041592 Erstprüfer: Prof. Dr. Christoph Engels Abgabe am: 02.03.2009 Markenrechtlicher Hinweis III Markenrechtlicher Hinweis Die in dieser Arbeit wiedergegebenen Gebrauchsnamen, Handelsnamen, Warenzeichen usw. können auch ohne besondere Kennzeichnung geschützte Marken sein und als solche den gesetzlichen Bestimmungen unterliegen. Sämtliche in dieser Arbeit abgedruckten Bildschirmabzüge unterliegen dem Urheberrecht © des jeweiligen Herstellers. Excel, SQL Server 2005 und Windows sind Marken oder eingetragene Marken der Microsoft Corporation, Redmond. MegaWWS ist eine eingetragene Marke der Mega Software GmbH, Dortmund. V_Olga ist eine eingetragene Marke der Voigt Software und Unternehmensberatung GmbH, Murr. Kurzfassung V Kurzfassung Die richtige Information, zur richtigen Zeit, richtig aufbereitet und in den richtigen Kontext eingebettet wird heute immer öfter als wesentlicher Faktor zur Erlangung von Wettbewerbsvorteilen im Markt angesehen. Für eine Umsetzung solcher Analysesysteme, die basierend auf riesigen Datenmengen innerhalb kurzer Zeit auch komplexe Fragestellungen beantworten und zielgerichtet darstellen können werden immer häufiger Business Intelligence-Gesamtansätze verwendet. Diese beschreiben in einem mehrstufigen Aufbau den gesamten Wertschöpfungsprozess von Daten innerhalb einer Unternehmung. Die vorliegende Diplomarbeit beschreibt die Implementierung eines solchen BI-Gesamtansatzes bei der WESTFA GmbH. Der Schwerpunkt dieser liegt auf der Entwicklung eines ETL-Prozesses zur Generierung und Bereitstellung von dispositiven Daten in einem Data Warehouse. Im Weiteren Verlauf soll das Data Warehouse als Datenbasis eines auf OLAP basierendem, multidimensionalem Analysesystems dienen, das die Anforderungen an ein komplexes, unternehmensweites Reporting erfüllt. Für die Implementierung dieses BI-Gesamtansatzes bei der WESTFA GmbH wurde der Microsoft SQL Server 2005® mit seinen mit seinen, speziell für die Anforderungen von Business-Intelligence bereitgestellten Komponenten „Integration Services“ und „Analysis Services“ verwendet. VI Abstract Abstract The right information, at the right time, correctly formatted and in the proper context is now increasingly seen as an essential factor for obtaining competitive advantage in the market. For the implementation of such an analytical system that is based on large amounts of data within a short time to respond to complex issues supplies are becoming more business-intelligence approaches used. These describe a multi-structure the entire value chain of data within a company. This thesis describes the implementation of such a BI-approach in the WESTFA GmbH focuses on the development of an ETL process for the generation and provision of dispositive data in a data warehouse. Moreover, the data warehouse serves as a data base for OLAP-based, multidimensional analytical system to meet the requirements of a complex, enterprise-wide reporting fulfilled. For the implementation of a BI approach in the WESTFA GmbH was the Microsoft SQL Server 2005 ® with it’s specifically for the demands of business intelligence provided components “Integration Services” and “Analysis Services” uses. Inhalt VII Inhalt 1 2 3 Einleitung .............................................................................................................. 1 1.1 Beschreibung der Thematik .......................................................................... 1 1.2 Zielsetzung der Arbeit ................................................................................... 1 1.3 Vorgehensweise und Gliederung .................................................................. 2 Werkzeugauswahl ................................................................................................ 3 2.1 Der BI-Markt .................................................................................................. 3 2.2 Entscheidung ................................................................................................. 5 2.3 SQL Server 2005 ............................................................................................ 5 2.3.1 Integration Services ............................................................................... 6 2.3.2 Datenbankmodul ................................................................................... 7 2.3.3 Analysis Services .................................................................................... 7 2.3.4 Reporting Services ................................................................................. 8 Data Preparation .................................................................................................. 9 3.1 Unterschiedliche Strategien .......................................................................... 9 3.2 Extraktion von ausgewählten Daten ........................................................... 11 3.2.1 Persistent Staging Area ........................................................................ 11 3.2.2 Extraktion aus PivotalCRM................................................................... 13 3.2.3 Extraktion aus megaWWS ................................................................... 14 3.2.4 Extraktion aus V_Olga .......................................................................... 15 3.2.4.1 3.2.5 3.3 Fehlerbehandlung während des Extraktionsprozesses ................ 17 Automatisierung der Extraktionen ...................................................... 19 Transformation der Daten .......................................................................... 20 3.3.1 Filterung ............................................................................................... 21 3.3.1.1 Selektion ....................................................................................... 22 3.3.1.2 Datenbereinigung ......................................................................... 23 3.3.1.3 Unterschiede der Filterung für Fakten und Dimensionen ........... 24 3.3.1.3.1 Inkrementelle Selektion von Fakten ......................................... 25 3.3.1.3.2 Vollständige Selektion von Fakten ............................................ 25 3.3.2 Harmonisierung ................................................................................... 25 VIII Inhalt 3.3.3 3.4 Aggregation & Anreicherung ................................................................ 29 3.3.3.1 Aggregation ................................................................................... 29 3.3.3.2 Anreicherung ................................................................................. 30 Konstruktion und Laden des Data Warehouse ............................................ 31 3.4.1 Laden der Dimensionstabellen ............................................................. 33 3.4.1.1 Slowly Changing Dimensions......................................................... 36 3.4.1.1.1 Typ1 ............................................................................................ 36 3.4.1.1.2 Typ2 ............................................................................................ 37 3.4.1.1.3 Typ 3 ........................................................................................... 39 3.4.1.1.4 Implementierung bei WESTFA ................................................... 40 3.4.1.2 3.4.2 4 Laden der Fakten .................................................................................. 46 3.4.2.1 Lookup-Transformation ................................................................ 47 3.4.2.2 Lookup von Surrogatschlüsseln einer SCD vom Typ 2 .................. 50 3.4.3 3.5 Fremdschlüsselbeziehungen im Data Warehouse ............................... 54 Automatisierung der Aktualisierung des Data Warehouse ......................... 56 Modeling ............................................................................................................. 57 4.1 Definition einer Datenquellensicht .............................................................. 58 4.2 Erstellen eines Cubes ................................................................................... 59 4.2.1 Cube-Assistent ...................................................................................... 60 4.2.2 Dimensionen ......................................................................................... 65 4.2.2.1 4.2.3 4.3 5 Surrogatschlüssel .......................................................................... 45 Hierarchien .................................................................................... 66 Measures .............................................................................................. 67 4.2.3.1 Berechnete Werte ......................................................................... 68 4.2.3.2 Kennzahlen (KPIs) .......................................................................... 69 Bereitstellung und Verarbeitung des Cubes ................................................ 70 4.3.1 MOLAP .................................................................................................. 71 4.3.2 ROLAP ................................................................................................... 71 4.3.3 HOLAP ................................................................................................... 71 Evaluation ............................................................................................................ 73 5.1 Evaluation der Funktionen und Daten ......................................................... 73 5.2 Evaluation Informationsbeschaffung........................................................... 76 Inhalt IX 6 7 Deployment ........................................................................................................ 78 6.1 Analysen mit MS Excel 2007 ....................................................................... 78 6.2 Separate Frontendwerkzeuge ..................................................................... 79 6.3 Reporting Services des SQL Servers ............................................................ 79 Abschluss ............................................................................................................ 80 7.1 Zusammenfassung ...................................................................................... 80 7.2 Fazit ............................................................................................................. 81 7.3 Ausblick ....................................................................................................... 82 Eidesstattliche Erklärung ........................................................................................... 83 Abbildungsverzeichnis ............................................................................................... 85 Tabellenverzeichnis ................................................................................................... 87 1 Einleitung 1 1 Einleitung 1.1 Beschreibung der Thematik Durch sich immer schneller verändernde Marktsituationen werden alle Marktteilnehmer vor neue Herausforderungen gestellt. Die Fähigkeit einer Unternehmung, in dieser Situation schnell und richtig zu entscheiden, trägt dabei wesentlich zur Wettbewerbsfähigkeit und zum Aufbau von Wettbewerbsvorteilen bei. Grundlage einer Entscheidungsfindung sind verdichtete, zielgerichtet aufbereitete Daten, die mit Hilfe von Informationssystemen erstellt und bereitgestellt werden können. Durch den rasanten technologischen Fortschritt der letzten Jahrzehnte haben sich die Möglichkeiten, aber auch die Zielsetzungen von Informationssystemen verändert. Business Intelligence ist ein Schlagwort, das sich in den letzten Jahren im IT-Markt etabliert hat und als eine moderne Ausprägung der klassischen Management Support Systeme beschrieben werden kann. Dabei beschreiben Business Intelligence Ansätze das Sammeln, Aufbereiten, Analysieren und Präsentieren von Unternehmensdaten. Wurden Business Intelligence Projekte bisher vor allem bei Großunternehmen und Konzernen initiiert, findet aktuell eine Neuausrichtung der Anbieter von BIWerkzeugen auf den Mittelstand statt. Denn auch dort hat man entdeckt, welches Potenzial sich mit Business Intelligence erschließen lässt. 1.2 Zielsetzung der Arbeit Im Rahmen des dieser Arbeit vorangegangenen Projektverlaufes wurden die ersten beiden Prozessphasen des CRISP-Prozesses, das Business Understanding und das Data Understanding bei der WESTFA GmbH durchgeführt. Es wurde ein Verständnis für die grundlegenden Geschäftsprozesse sowohl aus Datensicht, als auch aus organisatorischer Sicht erarbeitet. Darauf aufbauend wurde der Informationsbedarf in Bezug auf einen zu implementierenden BI-Gesamtansatz durch Interviews der späteren Anwender ermittelt und strukturiert. Mit dem Abschluss der zweiten Prozessphase wurde ein horizontaler Prototyp in Form eines nach der ADAPT-Methode entwickelten Datenmodells entworfen, der die multidimensionale Datenstruktur eines möglichen Zielsystems auf einer semantischen Ebene beschreibt. Ziel der vorliegenden Arbeit ist es, anhand der gewonnenen Erkenntnisse, der gefundenen Voraussetzungen und der ermittelten Anforderungen einen BI-Gesamtansatz bei der WESTFA GmbH zu implementieren. Im Vordergrund stehen 2 1.3 Vorgehensweise und Gliederung dabei die Implementierung eines Data Warehouse, eines ETL-Prozesses der das Data Warehouse regelmäßig mit aktuellen Daten aus den operativen Systemen füllt und eines auf dem Data Warehouse aufbauenden Analysesystems. Mit Abschluss der vorliegenden Arbeit soll die WESTFA GmbH in die Lage versetzt werden, mit Hilfe eines OLAP-Systems unternehmensweite Analysen beruhend auf tagesaktuellen Daten durchführen zu können. 1.3 Vorgehensweise und Gliederung Zunächst soll dem Leser ein kurzer Einblick in den BI-Markt gegeben werden. Nach der Entscheidung für den Microsoft SQL Server 2005 als ein geeignetes Werkzeug zur Realisierung des BI-Gesamtansatzes bei der WESTFA GmbH wird der CRISP-Prozess zu Beginn der dritten Phase aufgenommen und die Bearbeitung der einzelnen Prozessphasen in separaten Kapiteln beschrieben. Die Phase Data Preparation beschreibt in Kapitel 3 die Implementierung eines ETL-Prozesses und damit einhergehend auch die des Data Warehouse. Darauf aufbauend erfolgt in Kapitel 4 die Phase Modeling, in welcher das auf OLAP basierende Analysesystem in Form einer multidimensionalen Datenstruktur definiert und anschließend als Cube bereitgestellt und verarbeitet wird. Anschließend erfolgt eine Evaluation der erarbeiteten Ergebnisse in Bezug auf die gestellten Anforderungen und den Informationsbedarf der Anwender in Kapitel 5. Die Produktivsetzung des implementierten BI-Gesamtansatzes erfolgt schließlich in Kapitel 6. 2 Werkzeugauswahl 3 2 Werkzeugauswahl Bevor mit der Implementierung eines BI-Gesamtansatzes bei der WESTFA GmbH, im folgenden WESTFA genannt, begonnen werden kann, muss darüber entschieden werden, welche Werkzeuge für eine Implementierung verwendet werden sollen. 2.1 Der BI-Markt Der BI-Softwaremarkt macht bei einer groben Betrachtung durch sein vielfältiges Angebot einen zunächst unübersichtlichen und nur schwer zu strukturierenden Eindruck. Als Strukturierungshilfe lässt sich der dieser Arbeit zugrundeliegende und in der vorhergegangenen Projektarbeit 1 erläuterte BI-Gesamtansatz heranziehen. Dieser lässt sich in vier unterschiedliche und separat betrachtbare Teilbereiche mit jeweils andersgearteten Funktionsanforderungen unterscheiden. ! ! ! ! ETL-Prozess Datenbereitstellung Informationsgenerierung/ -speicherung/ -distribution Informationszugriff Im Hinblick auf den gegebenen Funktionsumfang und die Einsetzbarkeit der am BIMarkt verfügbaren Werkzeuge in den unterschiedenen Teilbereichen des BIGesamtansatzes, lässt sich eine grobe Unterscheidung der angebotenen Software in zwei Gruppen vornehmen: ! Einzelne Spezialwerkzeuge ! Modulbasierte Gesamtlösungen In die Kategorie der einzelnen Spezialwerkzeuge fallen Werkzeuge, die speziell für die Realisierung eines bestimmten Teilbereiches des BI-Gesamtansatzes entwickelt wurden. Beispielhaft lassen sich Werkzeuge nennen, die sich auf die Modellierung von ETL-Prozessen, oder noch spezieller sogar nur auf die Bereinigung von Daten innerhalb eines ETL-Prozesses konzentrieren. In den letzten Jahren hat auf dem BI-Markt eine starke Konsolidierung stattgefunden, die bis heute noch kein Ende gefunden hat. Die zahlreichen Anbieter von Spezialwerkzeugen werden dabei von großen namhaften Unternehmen 1 (Claßen, 2008 S. 13) 4 2.1 Der BI-Markt aufgekauft, wodurch die Anzahl von unterschiedlichen BI-Software-Anbietern rückläufig ist. Ein Resultat dieser Konsolidierung ist, dass am BI-Markt weniger Werkzeuge zu finden sind, die lediglich einen Teilbereich des BI-Gesamtansatzes unterstützen. Anbieter solcher Werkzeuge finden sich heute in Marktnischen oder bieten ein sehr weit entwickeltes und auf eine bestimmte Kundengruppe bzw. Branche angepasstes Produkt an. Mit der Konsolidierung stehen die am Markt angebotenen, modulbasierten Gesamtlösungen, die eine Unterstützung von allen Teilbereichen des BI-Gesamtansatzes anbieten, stärker im Fokus. Abbildung 2-1 zeigt eine Übersicht verschiedener Anbieter von BI-Anwendungen und deren Einordnung in den „Magic Quadrant for Business Intelligence Platforms“. Abbildung 2-1: Magic Quadrant for Business Intelligence Platforms, 2008 2 (Richardson, et al., 2008) 2 2 Werkzeugauswahl 5 2.2 Entscheidung Gemäß der vorgenommenen Abgrenzung von BI-Software in Einzellösungen und den so genannten BI-Suiten wurde für die Verwendung bei WESTFA eine erste richtungsweisende Entscheidung für den Einsatz einer BI-Suite getroffen. Der Nachteil einer Entscheidung für separate Einzelwerkzeuge wurde darin vermutet, dass die Integration der einzelnen Werkzeuge, aber auch der damit erstellten Lösungen, die Realisierung des BI-Gesamtansatzes schwieriger gestalten können. Außerdem ist gegebenenfalls das Einarbeiten in die unterschiedlichen Handhabungen der einzelnen Werkzeuge zusätzlicher Zeit- und Arbeitsaufwand. Die beispielhaft genannten Nachteile der Einzellösungen beschreiben zugleich die Stärken der großen Gesamtlösungen. Die einzelnen Module zur Bearbeitung der unterschiedlichen Komponenten des BI-Gesamtansatzes sind bereits integriert und auch die damit erstellten Lösungen harmonisieren untereinander. In der Kategorie von BI-Gesamtlösungen dominieren derzeit vier Anbieter mit ihren Produkten zwei Drittel des gesamten BI-Marktes: ! ! ! ! Microsoft – Microsoft SQL Server 3 IBM - IBM Cognos 8 Business Intelligence 4 SAP - SAP NetWeaver BI 5 Oracle - Oracle Business Intelligence Suite 6 Da bei WESTFA bereits Lizenzen für den Microsoft SQL Server 2005 vorhanden waren und auch im Hinblick auf die Integration des MS SQL Servers in die bereits vorhandene, auf weitere Microsoftprodukte basierende Systemlandschaft wurde beschlossen, den Microsoft SQL Server 2005 für die Implementierung eines BIGesamtansatzes zu einzusetzen. 2.3 SQL Server 2005 Der SQL Server 2005 wurde vor allem durch die Integration von neuen umfangreichen analytischen Funktionen gegenüber seiner Vorgängerversion noch stärker auf die Anforderungen von BI-Projekten ausgerichtet. Durch seinen komponentenbasierten Aufbau bietet er zu jedem der aus dem BI-Gesamtansatz bekannten Teilbereiche Unterstützung. Abbildung 2-2 zeigt den groben Aufbau des SQL Server 2005 mit seinen unterschiedlichen Komponenten. 3 (Microsoft Corporation) (IBM Corporation ) 5 (SAP Deutschland AG & Co. KG) 6 (Oracle Corporation) 4 6 2.3 SQL Server 2005 Für eine Implementierung eines BI-Gesamtansatzes bei WESTFA wird der Schwerpunkt auf den Kernkomponenten Datenbankmodul, Analysis Services, Reporting Services und Integration Services liegen, die in den folgenden Kapiteln kurz erläutert werden. Der SQL Server 2005 bringt eine eigene Entwicklungsumgebung, das „Business Intelligence Development Studio“ mit sich, mit welcher Lösungen auf Basis der Analysis Services, Integration Services und Reporting Services entwickelt werden können. Das SQL Server Management Studio bietet Möglichkeiten zur Verwaltung des Datenbankmoduls und dem Zugriff auf die mit den Hauptkomponenten erstellten Lösungen. Abbildung 2-2: Beziehungen zwischen den Komponenten des SQL Server 2005 7 2.3.1 Integration Services Die SQL Server 2005 Integration Services (SSIS) bieten “eine Plattform zum Erstellen leistungsfähiger Datenintegrations- und Workflowlösungen, einschließlich ETLVorgängen (Extrahieren, Transformieren und Laden) für das Data Warehousing.“ 8 Für die Extraktion von Daten aus unterschiedlichen und verteilten Datenquellen steht genau so wie für das Verarbeiten von unterschiedlichen Datenflüssen und das anschließende Speichern in verschiedenen Datenzielen eine Vielzahl von Tasks zur Verfügung. Die Modellierung solcher Prozesse erfolgt mit Hilfe einer grafischen Oberfläche, ohne dass Kenntnisse einer Programmiersprache erforderlich sind. Modellierte Prozesse können in einem oder in mehreren Paketen gespeichert und einzeln oder in definierter Reihenfolge einmalig oder wiederholt ausgeführt werden. 7 8 (Corporation, 2008 S. SQL Server (Übersicht)) (Corporation, 2008 S. SQL Server Integration Services (Übersicht)) 2 Werkzeugauswahl 7 Die SSIS sind außerdem auf die speziellen Anforderungen von BI-Lösungen ausgerichtet. Sie bieten spezielle Tasks, die auf die Verarbeitung von großen Datenmengen und spezielle Anforderungen beim Befüllen eines Data Warehouse ausgelegt sind. 2.3.2 Datenbankmodul „Microsoft SQL Server 2005-Datenbankmodul ist ein Dienst zum Speichern und Verarbeiten von Daten, die entweder in einem relationalen (tabellarischen) Format oder als XML-Dokumente vorliegen.“ 9 Innerhalb des Datenbankmoduls angelegte, in Datenbanken gespeicherte Tabellen oder Views lassen sich durch die Integration Services mit Daten aus unterschiedlichsten Quellen füllen. Zusätzlich verfügt das Datenbankmodul über ein eigenes Berechtigungskonzept, das sich in bereits bestehende Windows-Systemlandschaften integriert und bereits definierte Benutzerrichtlinien übernehmen kann. 2.3.3 Analysis Services “Microsoft SQL Server 2005 Analysis Services (SSAS) stellt Online Analytical Processing (OLAP, Analytische Onlineverarbeitung) und Data Mining-Funktionalität mithilfe einer Kombination aus Server- und Clienttechnologien bereit.” 10 Durch die Clienttechnologie der SSAS lassen sich Daten aus einer relationalen Datenquelle, meist einem Data Warehouse, in einer multidimensionalen Datenstruktur organisieren und in Form von Cubes mit Hilfe der Servertechnologie für OLTP-Anfragen von Client-Anwendungen wie MS Excel oder verschiedenen Frontend-Werkzeugen bereitstellen. Die Entwicklung von Data-Mining Modellen auf Basis von multidimensionalen wie auch von relationalen Daten und deren Bereitstellung wird ebenfalls durch die SSAS ermöglicht. 9 (Corporation, 2008 S. SQL Server-Datenbankmodul) (Corporation, 2008 S. SQL Server Analysis Services) 10 8 2.3 SQL Server 2005 2.3.4 Reporting Services Die SQL Server Reporting Services (SSRS) bilden “eine serverbasierte Berichtsplattform zur Erstellung und Verwaltung von Berichten in tabellarischer, grafischer und freier Form […]“ 11. Grundlage für die erstellten Berichte können Daten aus multidimensionalen aber auch relationalen Datenquellen sein. Die Bereitstellung der Berichte erfolgt über Web-Frontend, welches neben dem einfachen Aufruf auch die Verwaltung von Berichten, Datenquellen und Zugriffsberechtigungen ermöglicht. 11 (Schrödl, 2006 S. 43) 3 Data Preparation 9 3 Data Preparation Data Preparation, die dritte Phase des CRISP-Prozesses, beschreibt die Aktivitäten, die erforderlich sind, um aus vorhandenen operativen Daten dispositive Daten zu erzeugen. Die in dieser Phase erstellte Datenbasis bildet nach dem CRISP-Prozess die Grundlage für die Entwicklung von Data Mining Modellen. Auch wenn bei WESTFA nicht die Entwicklung von Data-Mining-Modellen, sondern die eines auf OLAP basierenden Analysesystems im Vordergrund steht, sind die einzelnen Aktivitäten dieser Phase sehr ähnlich. Die im CRISP-Prozess vorgesehenen Aktivitäten „Select Data“, „Clean Data“, „Construct Data“, „Integrate Data“ und „Format Data“ entsprechen den Aktivitäten eines ETL-Prozesses. Lediglich die abschließende Aktivität des Ladens der transformierten Daten in eine Zieldatenbank, in der Regel ein Data Warehouse, wird durch den CRISP-Prozess nicht beschrieben. Eine Gegenüberstellung der Aktivitäten eines ETL-Prozesses und denen der Data Preparation Phase zeigt Abbildung 3-1. Abbildung 3-1: Aktivitäten eines ETL-Prozesses und der Phase Data Preparation 3.1 Unterschiedliche Strategien Das Ziel der Data Preparation Phase ist es, aus einem Datenbestand Daten zu extrahieren und diese für die Analyse in dispositiver Form bereitzustellen. Dieses Ziel lässt sich auf unterschiedliche Arten erreichen, welche im Folgenden kurz erläutert werden. 10 3.1 Unterschiedliche Strategien Die einfachste Möglichkeit lässt sich mit speziellen Frontendwerkzeugen realisieren. Neben dem Erstellen von Auswertungen erlauben es diese Werkzeuge, heterogene Datenbanksysteme als Datenlieferanten für die zu erstellende Auswertung zu nutzen. Dieses hat den Vorteil, dass Berichtssysteme direkt auf den operativen Datenbestand zugreifen und keine separate Datenhaltungsschicht benötigt wird. Vergleichbar ist dieser Aufbau mit einer aus der Softwaretechnik bekannten, zweischichtigen Client-Server-Architektur. Der Nachteil dieser Architektur besteht jedoch darin, dass aufwendige Analysen direkt auf dem operativen Datenbestand ausgeführt werden. Dadurch kann es zu negativen Auswirkungen zum Beispiel durch gesperrte Datensätze oder zu zeitlichen Verzögerungen in den operativen Systemen kommen. Diese negativen Auswirkungen lassen sich durch eine separate Datenhaltungsschicht beseitigen. Diese bildet eine vollständige Kopie der Daten aus den operativen Systemen und stellt diese dem Frontendwerkzeug für die Analyse zur Verfügung. Dadurch sind die operativen Systeme auch bei aufwendigen Auswertungen nicht negativ betroffen. Eine Erweiterung dieser Architektur besteht darin, zwischen dem Frontend und den operativen Systemen nicht nur ein vollständiges Abbild der operativen Systeme zu erstellen, sondern stattdessen ein Data Warehouse zu pflegen. Dieses wird regelmäßig mit neuen operativen Daten versorgt und bildet diese durch implementierte Logiken in dispositiver Form ab. Dieser Aufbau ist vergleichbar mit der Drei-Schichten-Architektur, ebenfalls bekannt aus der Softwaretechnik. Bei der Überführung der operativen Daten in das Data Warehouse übernimmt der ETL-Prozess die Verarbeitungslogik. Frontendwerkzeuge mit einem Data Warehouse als Datenbasis müssen daher lediglich Funktionalitäten zur optischen Aufbereitung der darzustellenden Informationen bieten. Abhängig von der Größe eines Data Warehouse und der angestrebten Komplexität von Analysemöglichkeiten werden für die Analyse separate Cubes erstellt. Sie bilden eine weitere Datenschicht zwischen dem Data Warehouse und dem Frontend, welche durch vorberechnete und aggregierte Werte in einer multidimensionalen Datenstruktur speziell auf die Anforderungen der Analyse ausgerichtet sind. Die Realisierung der Data Preparation Phase erfolgt bei WESTFA nach oben beschriebenem Vorgehen des BI-Gesamtansatzes, sodass der vollständige ETLProzess zum Befüllen eines ebenfalls in dieser Phase zu entwickelnden Data Warehouse gegeben ist. In den folgenden Kapiteln werden die einzelnen Aktivitäten zur Implementierung eines ETL-Prozesses bei WESTFA, auftretende Probleme und Schwierigkeiten und deren Lösung beschrieben. Dabei erfolgt die Bearbeitung der Aktivitäten der Data 3 Data Preparation 11 Preparation Phase eingebettet in die drei Teilbereiche Extraktion, Transformation und Laden des ETL-Prozesses. 3.2 Extraktion von ausgewählten Daten In der vorhergehenden CRISP-Prozessphase des Business Understanding12 wurden die drei bei WESTFA eingesetzten operativen Systeme (megaWWS, V_Olga und PivotalCRM) 13, genauer deren Datenbasen, betrachtet und bereits Tabellen mit relevanten Inhalten identifiziert. Als relevante Inhalte wurden dabei Daten verstanden, die für die Entwicklung eines grundlegenden Analysesystems bei WESTFA nötig sind. Als einer der Hauptgründe, warum Analysen bei WESTFA bisher häufig nur auf Geschäftsbereichsebene oder nur mit viel Zeit- und Arbeitsaufwand unternehmensweit angestellt werden konnten, wurde in der vorhergehenden Projektarbeit der Einsatz von drei unterschiedlichen operativen Systemen mit dem daraus resultierenden getrennten und verteilten operativen Datenbestand ermittelt. 3.2.1 Persistent Staging Area Aufgrund der heterogenen und verteilten Systemlandschaft bei WESTFA wurde auf dem MS SQL Server ein Speicherbereich geschaffen, der als Persistent Staging Area (PSA) genutzt wird. Dieser dient zur „[…] Zwischenspeicherung der Daten aus den Vorsystemen vor deren Weiterverarbeitung. Ohne Modifikationen hinsichtlich Format oder Inhalt werden die gelieferten Informationsobjekte in relationalen Tabellen deponiert […]“ 14 Für die Abbildung der PSA wurden innerhalb der Datenbank die drei Schemata „olga“, „wws“ und „kol“ erstellt. Sie stehen jeweils für die operativen Systeme bei WESTFA und sollen helfen, innerhalb der PSA die Tabellen dem jeweiligen Quellsystem zuzuordnen. Die PSA dient als Datenquelle für die weiteren Transformationen innerhalb des ETL-Prozesses, wobei die operativen Systeme nicht weiter durch diese belastet werden. Die Extraktion der Daten aus den operativen Systemen, das automatisierte Füllen der entsprechenden Tabellen sowie deren einmaliges Erstellen in der PSA wurde mit Hilfe der SQL Server Integration Services realisiert. Als Entwicklungswerkzeug diente dafür das „SQL Server Business Intelligence Development Studio“ (kurz BI-Studio), das nach der Installation des MS SQL Servers zur Verfügung stand. 12 (Claßen, 2008) (Claßen, 2008 S. 38 f.) 14 (Chamoni, et al., 2005 S. 49) 13 12 3.2 Extraktion von ausgewählten Daten Zunächst wurde ein neues „Integration Services-Projekt“ erstellt, in welchem dann beliebig viele „SSIS-Pakete“ erstellt werden können. Jedes SSIS-Paket besteht aus einer „Ablaufsteuerung“. Die Verarbeitung von Daten erfolgt auf der Ebene der „Ablaufsteuerung“ durch die Verwendung eines „Datenflusstask“. Dieser bietet auf der Ebene „Datenfluss“ weitere Tasks wie Datenflussquellen, Datenflusstransformationen und Datenflussziele. Die einfachste Möglichkeit, Daten zu extrahieren und anschließend in die Zieldatenbank zu laden, lässt sich über die Verwendung eines „Ole DB Quelle“ und eines „Ole DB Ziel“ Task realisieren. In so genannten Verbindungsmanagern lassen sich die Verbindungsdaten zu einer Datenbank speichern und anschließend in Quelloder Ziel-Tasks verwenden. Nach der Auswahl eines Verbindungsmanagers in dem Quell-Task lassen sich die zu ladende Tabelle und deren Attribute einzeln auswählen oder sie können über eine manuell einzugebende SELECT-Anweisung bestimmt werden. Nach dem Verbinden eines Quell-Tasks mit einem Ziel-Task kann in diesem nach Auswahl eines Verbindungsmanagers für die Zieldatenbank eine bestehende Tabelle als Ziel ausgewählt werden oder basierend auf den durch den Quell-Task übergebenen Meta-Daten eine neue Tabelle in der Datenbank angelegt werden. Wird dieses SSIS-Paket ausgeführt, werden alle Datensätze mit den ausgewählten Attributen aus der Quelle extrahiert und unverändert in das angegebene Ziel geladen. Für den Prozess der Extraktion der Daten aus den operativen Systemen und dem Befüllen der PSA wurde bei WESTFA zunächst in dem SQL Server Business Intelligence Development Studio ein neues Integration Services-Projekt mit dem Namen „ExtractLoad StagingArea“ erstellt. In diesem Projekt wurden dann die drei SSIS-Pakete „ExtractLoad megaWWS“, „ExtractLoad Kolumbus“, und „ExtractLoad V_Olga“ erzeugt. In diesen Paketen wurden die jeweiligen Ablaufsteuerungen zur Extraktion des operativen Datenbestandes für das jeweilige operative System realisiert. Zur Wahrung der Übersichtlichkeit innerhalb der SSIS-Pakete wurden auf der Ebene der Ablaufsteuerung mehrere Datenflusstasks erstellt, in denen nach Informationsobjekten getrennt die einzelnen Datenflüsse mit Quelle und Ziel definiert wurden. Während der Ausführung eines Paketes werden die einzelnen Datenflusstasks sequentiell ausgeführt. Im Folgenden werden die Besonderheiten der Extraktion von Daten aus den einzelnen Systemen bei WESTFA beschrieben. 3 Data Preparation 13 3.2.2 Extraktion aus PivotalCRM Die Extraktion der Daten aus dem PivotalCRM System, im folgenden Kolumbus genannt, hat sich am einfachsten gestaltet, da die Datenbasis von Kolumbus durch einen MS SQL Server 2005 gebildet wird und dadurch die größtmögliche Kompatibilität gegeben ist. In diesem Fall kann die bereits weiter oben beschriebene, einfachste Möglichkeit mit der ausschließlichen Verwendung von Quell- und Ziel-Tasks verwendet werden (siehe Abbildung 3-2). Den Datenfluss zeigt Abbildung 3-2 beispielhaft für das Extrahieren und Laden von Daten aus der Kundentabelle “Company” von Kolumbus. Dieses ist vor allem dadurch möglich, da der Quell-Task die Datentypen der Attribute von Tabellen richtig aus der SQL-Server-Quelle lesen kann und somit keine weitere Verarbeitung nötig ist. Die extrahierten Daten können direkt in die Zieltabelle geschrieben werden. Abbildung 3-2: Datenfluss zur Extraktion von Daten aus Kolumbus 14 3.2 Extraktion von ausgewählten Daten 3.2.3 Extraktion aus megaWWS Mit der aus dem Data Understanding gewonnenen Information, dass megaWWS trotz der Verwendung einer Informix Datenbank über eine ODBC Schnittstelle erreichbar ist, gestaltet sich das reine Extrahieren der Daten aus megaWWS ähnlich zu dem bereits bekannten Vorgehen von Kolumbus. Lediglich die Parameter bei der Definition des entsprechenden Verbindungsmanagers für die Informix-Datenbank unterscheiden sich (siehe Abbildung 3-3). Abbildung 3-3: Verbindungsmanager zur Informix-Datenbank von megaWWS Die Definition des Ziel-Tasks kann wiederum analog zu der bereits beschriebenen Vorgehensweise erfolgen. Aufgrund der Informix-Datenbank als Quelle können die Datentypen der Tabellen zwar durch den Quell-Task erkannt werden, jedoch werden die Inhalte nicht richtig ausgelesen. Bei allen Tabellenattributen mit dem Datentyp CHARACTER werden die Inhalte bis auf die maximale Attributgröße mit Leerzeichen aufgefüllt. Dieses erfordert vor dem Laden in die Zieltabelle eine Bearbeitung der betroffenen Attribute durch einen separaten Task (Abbildung 3-4, Seite 15), in der die vorhandenen Leerzeichen ausschließlich am Ende des ursprünglichen Attributwertes entfernt werden (Abbildung 3-5, Seite 15). Das wurde durch den Task „Abgeleitete Spalte“ und der Funktion rtrim() erreicht, die nachfolgende Leerzeichen eines Textes entfernt. 3 Data Preparation 15 Abbildung 3-4: Datenfluss zur Extraktion von Daten aus megaWWS Abbildung 3-5: Entfernen von Leerzeichen in einem separaten Task des Datenflusses 3.2.4 Extraktion aus V_Olga Bereits aus der dieser Arbeit vorausgegangenen Analyse potentieller Datenquellen bei WESTFA ist bekannt, dass der direkte Datenbankzugriff auf die V_Olga technisch nicht möglich ist. Alternativ wurden bereits während der Analyse die nachts erstellten Sicherungsdateien der V_Olga als alternative Datenquellen identifiziert 15. Für die Extraktion der Daten bedeutet dieses, dass zunächst ein genaues Abbild von den Tabellen der V_Olga in der PSA erstellt werden muss, da in den Sicherungsdateien lediglich der Tabelleninhalt gespeichert wird und keine Informationen über die Struktur der Tabelle. Um ein genaues Abbild der Tabellenstrukturen erstellen zu können,wird eine weitere Sicherungsdatei der V_Olga herangezogen. In dieser Datei werden die SQL-Anweisungen zum Erstellen jeder einzelnen Tabelle abgelegt. 15 Siehe (Claßen, 2008 S. 54) 16 3.2 Extraktion von ausgewählten Daten Aus dieser können die entsprechenden Anweisungen entnommen, auf die TransactSQL (T-SQL) Syntax und die entsprechenden Datentypen angepasst und schließlich im SQL Server ausgeführt werden. Somit kann die Tabellenstruktur der V_Olga in der PSA abgebildet werden. Die Extraktion der Daten aus einer Datei mit flacher Datenstruktur kann über einen speziell für diesen Dateityp vorgesehenen Task vorgenommen werden. Die Besonderheit hierbei ist, dass für jede Datei ein eigener Verbindungsmanager erstellt werden muss. Innerhalb dieses Verbindungsmanagers müssen die einzelnen Datentypen der Attribute manuell festgelegt werden, da diese nicht automatisch oder falsch erkannt werden. Über einen weiteren Task „Konvertierung“ werden die Längen von Attributen des Datentyps String angepasst. Abbildung 3-6 zeigt die Datenflussebene des SSIS-Paketes „ExtractLoad V_Olga“ für die Extraktion von Kundendaten. Links unten sind die erstellten Verbindungsmanager zu sehen. Das geöffnete Dialogfenster stellt die allgemeinen Parameter zur Konfiguration eines Verbindungsmanagers für Dateien mit flacher Datenstruktur dar. Abbildung 3-6: Datenfluss zur Extraktion von Daten aus V_Olga 3 Data Preparation 17 Abbildung 3-7 zeigt die erweiterten Parameter des Verbindungsmanagers aus Abbildung 3-6. Hier kann für jede Eingabespalte der Datentyp und eine Name angegeben werden. Abbildung 3-7: Erweitere Konfiguration eines Verbindungsmanagers für Dateien mit flacher Datenstruktur 3.2.4.1 Fehlerbehandlung während des Extraktionsprozesses Eine weitere Hürde hat sich beim Extrahieren der Daten aus den Systemen megaWWS und V_Olga ergeben. Durch das steigende Exportgeschäft von WESTFA treten Sonderzeichen wie die französischen Akzente in steigender Zahl in Kundenund Straßennamen sowie in Artikelbezeichnungen oder Angebotstexten auf. Diese Zeichen werden durch die Anwender oftmals falsch verwendet. Die am häufigsten auftretende Falscheingabe ist, dass ein Akzent anstelle eines Apostrophs gesetzt wird. Optisch gibt es in der Zeichensetzung kaum einen Unterschied, jedoch ist das alleinige Auftreten des Akzents ohne darunterliegenden Buchstaben kein gültiges Zeichen. Tritt dieses Zeichen dennoch beim Extrahieren der Daten aus der Datenquelle auf, bricht der Prozess umgehend mit einer Fehlermeldung ab und die Extraktion schlägt fehl. Um zu erreichen, dass der Extraktionsprozess trotz eines aufgetretenen Fehlers fortgeführt werden kann und alle fehlerfreien Datensätze extrahiert werden, musste an dieser Stelle eine Fehlerbehandlung in den Prozess integriert werden. 18 3.2 Extraktion von ausgewählten Daten Für eine Fehlerbehandlung lassen sich generell zwei Vorgehensweisen unterscheiden. Entweder wird ein Fehler zwar erkannt, aber dennoch ignoriert oder er wird in definierter Form weiterverarbeitet. Da das Ignorieren eines auftretenden Fehlers zu einer inkonsistenten Datenbasis geführt hätte, wurde eine einfache Fehlerbehandlung in die SSIS-Pakete zur Extraktion von Daten aus den Systemen megaWWS und V_Olga implementiert. Tritt bei der Extraktion der Daten aus der Datenquelle ein Fehler auf, wird der fehlerhafte Datensatz nicht in die vorgesehene Zieltabelle der PSA geschrieben, sondern in eine Tabelle einer separat angelegten Datenbank mit dem Namen „westfaE“. Durch diese Fehlerbehandlung wird sichergestellt, dass alle Datensätze aus der Datenquelle extrahiert werden können und alle korrekten Datensätze in die Zieltabelle innerhalb der PSA geschrieben werden. In Abbildung 3-8 wird der aus Abbildung 3-4 bereits bekannte Datenfluss mit implementierter Behandlung von fehlerhaften Datensätzen dargestellt. Abbildung 3-8: Datenfluss zur Extraktion von Daten mit Fehlerbehandlung Wenn alle Extraktionsprozesse für eine Datenquelle abgearbeitet sind, wird durch einen separaten Prozess geprüft, ob in den Tabellen der „westfaE“ Datenbank Inhalte vorhanden sind. Wurden dort Datensätze geschrieben, werden diese in eine für einen Sachbearbeiter handhabbare Excel-Tabelle importiert und ihm via Email zugesandt. Dieser ist dann dafür verantwortlich, die Datensätze im jeweiligen operativen System zu korrigieren, so dass der Fehler in einem der nächsten Läufe des Extraktionsprozesses nicht mehr auftritt. 3 Data Preparation 19 Diese relativ einfache, aber doch sehr effektive Behandlung von groben Falscheingaben trägt bereits aktiv zur Verbesserung der Datenqualität in den operativen Systemen bei. Dabei steht die Strategie im Vordergrund, auftretende Fehler möglichst weit vorne im Entstehungsprozess zu beheben und möglichst wenig Fehler automatisiert inmitten des Prozesses zu beheben. 3.2.5 Automatisierung der Extraktionen Um die Extraktion der operativen Daten und damit das Befüllen der PSA automatisiert ablaufen lassen zu können, wurde zunächst ein viertes SSIS-Paket erstellt. In diesem werden nacheinander alle Tabellen der PSA durch mehrere Tasks vom Typ „SQL ausführen“ mit entsprechenden SQL-Anweisungen geleert. Somit sind für einen automatisierten Ablauf der Extraktion vier SSIS-Pakete nötig, welche in Abbildung 3-9 gezeigt werden. Abbildung 3-9: SSIS-Pakete für die Extraktion Die SSIS-Pakete können mit Hilfe des Befehlszeilen-Dienstprogramms dtecex 16 in einer erstellten Batch-Datei ausgeführt werden. Die Abarbeitung der erstellten SSISPakete erfolgt sequentiell entsprechend der innerhalb der Batch-Datei angegebenen Reihenfolge der Aufrufe. Dabei wird das nächste SSIS-Paket erst ausgeführt, nachdem die Verarbeitung des vorherigen erfolgreich abgeschlossen wurde. Neben der reinen Ausführung der SSIS-Pakete wird durch das Dienstprogramm dtexec die Log-Datei „SSIS_PSA.log“ erstellt. In diese werden während der Ausführung von dtexec detailreiche Informationen über auftretende Ereignisse und durchgeführte Verarbeitungsschritte geschrieben. 16 Für eine nähere Erläuterung zur Funktionsweise des Dienstprogrammes „dtexec“ und der Bedeutung der Parameter sei auf die SQL Server 2005 Online Dokumentation verwiesen: http://msdn.microsoft.com/de-de/library/ms162810(SQL.90).aspx 20 3.3 Transformation der Daten dtexec /FILE „C:\SSIS_PAKETE_PSA\1 truncate StagingArea.dtsx“ MAXCONCURRENT „ -1 “ /CHECKPOINT OFF /REPORTING EWCDI >> SSIS_PSA.log dtexec /FILE „C:\SSIS_PAKETE_PSA\2 ExtractLoad megaWWS.dtsx“ MAXCONCURRENT „ -1 “ /CHECKPOINT OFF /REPORTING EWCDI > SSIS_PSA.log dtexec /FILE „C:\SSIS_PAKETE_PSA\3 ExtractLoad Kolumbus.dtsx“ MAXCONCURRENT „ -1 “ /CHECKPOINT OFF /REPORTING EWCDI > SSIS_PSA.log dtexec /FILE „C:\SSIS_PAKETE_PSA\4 ExtractLoad V_Olga.dtsx“ MAXCONCURRENT „ -1 “ /CHECKPOINT OFF /REPORTING EWCDI > SSIS_PSA.log Für die zeitgesteuerte Ausführung der Batch-Datei wurde ein Task auf dem Betriebssystem definiert. Dieser führt die Batch-Datei an Wochentagen um 00:15 aus (Abbildung 3-10). Abbildung 3-10: Geplanter Task zur Ausführung der definierten Batch-Datei So wird der erste Schritt des ETL-Prozesses, nämlich der Teil „Extract“ erledigt. Jede Nacht werden die vorhandenen Tabellen der Persistent Staging Area zunächst geleert und anschließend mit den aktuellen Daten aus den operativen Systemen gefüllt. Dadurch ist WESTFA im Besitz einer tagesaktuellen Spiegelung der Datenbestände aus den drei operativen Systemen V_Olga, megaWWS und Kolumbus in nur einer Datenbank. Zusätzlich ist diese für diverse Abfragewerkzeuge wie MS Access, MS Excel oder andere Frontendwerkzeuge verfügbar. Bereits durch die Extraktion der Daten und deren Integration in eine Datenbank ist ein Mehrnutzen für WESTFA geschaffen, indem Daten der V_Olga nun beispielsweise für das Controlling leicht zugänglich zur Verfügung stehen. 3.3 Transformation der Daten Im Rahmen der Transformationsphase eines ETL-Prozesses werden alle nötigen Aktivitäten durchgeführt, um die extrahierten operativen Daten in dispositive Daten zu überführen. Wie bereits Abbildung 3-1 gezeigt hat, decken sich die Aktivitäten Filterung, Harmonisierung, Aggregation und Anreicherung im Rahmen der Transformationsphase eines ETL-Prozesses mit den durch den CRISP-Prozess vorgesehenen Aktivitäten Clean Data, Construct Data, Integrate Data und Format Data. Mit der Erstellung einer Persistant Staging Area wurde bereits eine Filterung auf Datenbanktabellenebene vorgenommen und dafür gesorgt, dass für die Konstruktion eines Data Warehouse mit Dimensions- und Faktentabellen nur noch eine Datenquelle genutzt werden muss. 3 Data Preparation 21 Der gesamte Prozess von der Extraktion der vorgefilterten Daten aus der PSA über die Transformation, die Erstellung von Dimensions- und Faktentabellen sowie die damit verbundene Konstruktion und das Laden der Daten in das Data Warehouse wurde innerhalb eines zweiten, separaten Integration Services-Projekts implementiert. Dabei wurde durch die Verwendung von zwei getrennten SSIS-Paketen zwischen der Verarbeitung der Dimensionen und der Verarbeitung der Fakten unterschieden. Eine generelle Unterteilung der Transformationsphase in die einzelnen Aktivitäten, wie sie beispielsweise durch den CRISP-Prozess beschrieben werden, lässt sich nicht direkt vornehmen. Das liegt daran, dass die einzelnen Aktivitäten nicht einmal allgemeingültig abgearbeitet werden können, sondern explizit auf die unterschiedlichen Daten jeder zu ladenden Tabelle individuell angewandt werden müssen. Einen allgemeingültigen Ablauf der Transformationsphase, wie er bei WESTFA implementiert wurde, zeigt Abbildung 3-11. Abbildung 3-11: Der allgemeine Transformationsprozess Für die weitere Verarbeitung der Daten wurde der Schwerpunkt auf die während der Informationsbedarfsanalyse gefundenen Anforderungen gelegt 17. 3.3.1 Filterung Die Filterung beschreibt die erste Schicht der Transformationsphase und hat zum Ziel, die für das Data Warehouse benötigten Daten aus den entsprechenden Quellen zu selektieren und diese von Mängeln zu befreien. Somit lässt sich die Filterung in die beiden Teilbereiche der Selektion und der Bereinigung von Daten unterteilen. Diese entsprechen den Aktivitäten „Select data“ und „Clean data“ des CRISP-Prozesses. 17 (Claßen, 2008 S. 50) 22 3.3 Transformation der Daten 3.3.1.1 Selektion Für die Selektion von Daten kann es nicht nur relevant sein, eine Selektion von Tabellen und Attributen vorzunehmen, sondern auch eine Selektion auf Datensatzebene kann ein entscheidendes Kriterium sein. Dieses spielt vor allem dann eine Rolle, wenn in einer Tabelle des operativen Systems eine sehr große Datenmenge vorhanden ist oder eine Tabelle aus sehr vielen für das Data Warehouse relevanten Attributen besteht. In diesen Fällen ist zu überdenken, ob es nötig ist, alle vorhandenen Daten in das Data Warehouse zu übernehmen oder ob eine Einschränkung der Daten, beispielweise auf einen bestimmten Zeitraum wie die letzten drei Jahre, vorgenommen werden kann. Bei WESTFA sind die in der PSA vorhandenen Daten bereits im Rahmen der Extraktionsphase auf der Tabellenebene gefiltert worden, so dass nur Tabellen mit für das Data Warehouse relevanten Inhalten aus den operativen Systemen übernommen wurden. Für die Erstellung von Dimensions- oder Faktentabellen im Rahmen der Transformationsphase müssen nun lediglich noch die für das Data Warehouse benötigten Attribute aus den Tabellen selektiert werden. Für die Selektion der Attribute bietet der Quell-Task des BI-Studios zwei grundlegende Möglichkeiten. Entweder können nach Angabe der Quelltabelle die benötigten Attribute der Tabelle ausgewählt werden, oder sie können über einen manuell erstellten SQL-Befehl bestimmt werden. Die Bestimmung der Attribute über einen SQL-Befehl wurde bei WESTFA primär verwendet, da sich diese Lösung als wesentlich flexibler herausgestellt hat. Über einen SQL-Befehl lassen sich nicht nur mehrere Tabellen verknüpfen, sondern der Befehl kann auch zu einem späteren Zeitpunkt noch ohne Probleme erweitert werden. Trotz der durch einen SQL-Befehl sehr umfangreichen Möglichkeiten reicht in manchen Fällen ein einziger Quell-Task nicht aus, um alle benötigten Attribute zu extrahieren und in den Datenfluss zu integrieren. In einer solchen Situation werden mehrere Quell-Tasks benötigt, um alle relevanten Attribute aus den Tabellen der PSA zu extrahieren. 3 Data Preparation 23 3.3.1.2 Datenbereinigung Der andere Teilbereich der Filterung ist das Bereinigen der selektierten Daten von syntaktischen und semantischen Mängeln. „Unter syntaktischen Mängeln sind hierbei formelle Mängel der code-technischen Darstellung zu verstehen. Semantische Mängel betreffen dagegen Mängel in den betriebswirtschaftlichen Inhalten der Daten.“ 18 Des Weiteren lassen sich Mängel in drei unterschiedliche Mängelklassen unterscheiden. Die Unterscheidung wird anhand der Möglichkeiten zur Erkennung und der Bereinigung von Mängeln vorgenommen. Abbildung 3-12 zeigt den Entscheidungsprozess, der zur Einordnung eines auftretenden Mangels in eine Mangelklasse dient und verdeutlicht weiter, dass ausschließlich Mängel der 1. Klasse automatisiert behoben werden können. Mängel der 2. und 3. Klasse erfordern manuelle Datenmanipulationen. Abbildung 3-12: Einteilung von Mängeln in drei Klassen Die Behebung von syntaktischen und semantischen Mängeln der 1. Klasse kann durch Transformationsregeln automatisiert werden, „da sie bereits vor der Erstellung der Extraktionsroutinen bekannt sind bzw. ihr Auftreten antizipiert werden kann.“ 19 Im Rahmen der Implementierung eines BI-Gesamtansatzes bei WESTFA wurde mit dem Business Sponsor vereinbart, dass semantische Mängel innerhalb des Datenbestandes nicht automatisiert behoben werden sollen, sondern diese dem Anwender innerhalb der verschiedenen Analysen präsentiert werden sollen. Mit diesem Vorgehen soll das parallele Ziel verfolgt werden, die Datenqualität in den 18 19 (Kemper, et al., 2006 S. 25) (Kemper, et al., 2006 S. 26) 24 3.3 Transformation der Daten operativen Systemen zu steigern. Eine Bereinigung von Mängeln würde aus betriebswirtschaftlicher Sicht zunächst zu „sauberen“ Analysen führen. Jedoch würden Mängel nicht behoben, sondern die Anzahl von Mängeln unter Umständen weiter steigen, da entsprechende Hinweise auf Falscheingaben oder nicht stimmige Automatismen bei der Datenpflege nicht erfolgen. Neben der bereits in Kapitel 3.2.4.1 beschriebenen Fehlerbehandlung während der Extraktionsphase wurde bei WESTFA nur eine sehr grobe Behandlung von Mängeln implementiert. Diese beschränkt sich im Rahmen der semantischen Mängel auf das Verwerfen von verwaisten oder nur testweise angelegten Datensätzen. Diese Bereinigung wurde entweder direkt in die SQL-Anweisungen der Datenselektion durch eine WHERE-Bedingung integriert oder durch eine entsprechende Filterung betroffener Datensätze im Datenfluss implementiert. Abbildung 3-13 zeigt beispielhaft eine SQL-Anweisung, wobei mit Hilfe einer WHERE-Bedingung Datensätze von Unternehmen ohne Kunden- oder Interessentennummer gefiltert werden. Abbildung 3-13: Filterung semantischer Mängel mittels SQL-Anweisung Eine Behandlung von syntaktischen Mängeln im Rahmen der Filterung wurde nicht explizit implementiert. Die Anpassung von unterschiedlichen Datentypen oder Formatierungen wurde mit der Integration von Daten aus unterschiedlichen Datenquellen in die im Anschluss an die Filterung durchzuführende Harmonisierung verschoben. 3.3.1.3 Unterschiede der Filterung für Fakten und Dimensionen Die Schicht der Filterung, speziell die Selektion von Daten, lässt sich aufgrund der unterschiedlichen Zielsetzungen danach unterscheiden, ob Daten für eine zu erstellende Dimensions- oder eine Faktentabelle selektiert werden sollen. Während für die Erstellung einer Dimensionstabelle die für ein Informationsobjekt beschreibenden Daten selektiert werden, wird für die Erstellung einer Faktentabelle auswertbares Zahlenmaterial selektiert. Aber auch die Datenmenge, die im Rahmen der Filterung an die nächsten Prozessschritte übergeben wird unterscheidet sich bei Dimensionen und Fakten. Während für die Erstellung von Dimensionen immer alle vorhandenen Daten zur weiterverarbeitet werden und die Verarbeitung durch Slowly Changing Dimensions 3 Data Preparation 25 übernommen wird, lassen sich zur Verarbeitung der Fakten zwei Herangehensweisen unterscheiden, die im Folgenden kurz erläutert werden. 3.3.1.3.1 Inkrementelle Selektion von Fakten Die inkrementelle Selektion von Fakten setzt voraus, dass mindestens einmal alle Fakten aus dem jeweiligen Quellsystem extrahiert und in die Faktentabelle des Data Warehouse geschrieben wurden. Von diesem Zeitpunkt an ist es ausreichend, nur noch neuere, noch nicht in der Faktentabelle befindliche Datensätze aus den Quellsystemen zu filtern und zu verarbeiten. Realisierbar ist diese Methode beispielsweise, wenn Auftrags- oder Kundennummern fortlaufend durch das Quellsystem vergeben werden. Dann kann die höchste, in der Faktentabelle vorkommende Nummer ermittelt werde und aus dem Quellsystem werden nur noch Datensätze extrahiert, deren Nummer größer ist. Diese Methode verringert nach dem erstmaligen Füllen der Faktentabelle die zu verarbeitende Datenmenge und dadurch auch die Verarbeitungszeit des gesamten ELT-Prozesses deutlich. Ergeben sich jedoch Änderungen an Fakten die bereits in der Vergangenheit liegen, werden diese Änderungen durch die inkrementelle Selektion der Fakten nicht berücksichtigt und können das Analyseergebnis auf Basis dieser Fakten verfälschen. Abhilfe schafft die Erweiterung, die das Änderungsdatum eines Datensatzes, sofern vorhanden, zusätzlich berücksichtigt. 3.3.1.3.2 Vollständige Selektion von Fakten Im Gegensatz zur inkrementellen Selektion werden bei der vollständigen Selektion bei jedem Durchlauf des ETL-Prozesses alle Faktentabellen zunächst geleert und anschließend vollständig neu selektiert und verarbeitet. Diese Methode der Selektion benötigt aufgrund der größeren Datenmenge gegenüber der inkrementellen Selektion mehr Zeit für die entsprechenden Verarbeitungsschritte, stellt jedoch sicher, dass alle Fakten stets aktuell sind. 3.3.2 Harmonisierung Die Harmonisierung bildet die zweite Schicht der Transformation. Sie entspricht der Aktivität „Integrated data“ des CRISP-Prozesses und verfolgt die Angleichung und die anschließende Zusammenführung der aus unterschiedlichen Tabellen oder Datenbanken stammenden Daten. Mit der Integration der Daten und der damit verbundenen themenbezogenen Gruppierung von entsprechenden Informationen werden die operativen Daten hier bereits betriebswirtschaftlich interpretierbar und somit für dispositive Zwecke verwendbar. 26 3.3 Transformation der Daten Um eine themenbezogene Gruppierung, wie sie durch eine Dimension abgebildet wird, erstellen zu können, müssen drei wesentliche Vorbedingungen gelten: ! Abstimmung von Kodierung, Synonymen und Homonymen ! Lösung des Problems der Schlüsseldisharmonien ! Vereinheitlichung betriebswirtschaftlicher Begriffsabgrenzungen 20 Die Problematik von unterschiedlichen Kodierungen sowie von Homonymen hat bei WESTFA während der Transformationsschicht keine Rolle gespielt, da diese Fälle nicht aufgetreten sind. Dass lässt sich mit den drei sehr stark voneinander abweichenden Datenstrukturen der Quellsysteme begründen. Unterschiedliche Kodierungen beschreiben Daten, die identische Attributnamen und eine identische Bedeutung besitzen, jedoch durch abweichende Datenbereiche beschrieben werden. Homonyme hingegen besitzen zwar denselben Attributnamen, weisen jedoch unterschiedliche Bedeutungen auf. Sehr häufig hingegen musste die Problematik der Synonyme behandelt werden. Attribute werden als Synonyme bezeichnet, wenn sie unterschiedliche Attributnamen, jedoch dieselbe Bedeutung besitzen. Auch dieser Fall ist mit den unterschiedlichen Datenstrukturen der drei Quellsysteme zu begründen. Zur Lösung dieser Problematik wurde eine Definition von Begrifflichkeiten erstellt. Diese Definition stellt sicher, dass die Attribute mit demselben Namen im Data Warehouse immer dieselbe Bedeutung haben. Die am häufigsten vorkommende Problematik war die der Schlüsseldisharmonien. Diese lassen sich gerade bei der Integration von Daten aus verschiedenen Systemen oder Datenquellen nicht vermeiden. „Schlüsseldisharmonien basieren auf Unverträglichkeiten der Primärschlüssel in den extrahierten und bereinigten Daten und entstehen durch die Verwendung unterschiedlicher Zugriffsschlüssel in der operativen Datenhaltung.“ 21 In Kolumbus werden künstliche Primärschlüssel in Form eines Attributes des Datentyps Binary(8) für jeden Datensatz erzeugt. Sie sind losgelöst von der Geschäftslogik und dienen lediglich der Identifikation eines Datensatzes. Im Gegensatz zu Kolumbus verwendet megaWWS keine separaten Attribute als Primärschlüssel. Diese werden aus einem oder mehreren Attributen gebildet, die der Geschäftslogik entspringen. Abbildung 3-14 zeigt einen Ausschnitt der megaWWS Kundentabelle. Der Primärschlüssel wird hierbei durch die Personenkontonummer (pkt_nr) gebildet. Interessenten werden in megaWWS in einer separaten Tabelle auf die gleiche Weise gespeichert. In Kolumbus werden 20 21 (Wilmes, et al., 2004 S. 42) (Kemper, et al., 2006 S. 28) 3 Data Preparation 27 jedoch Kunden und Interessenten in einer Tabelle gespeichert. Diese hat drei unterschiedliche Attribute zur Speicherung von Nummern. Solange ein Unternehmen als Interessent geführt wird, ist die entsprechende Nummer in dem Attribut AO_Lead_Code gespeichert. Wird aus dem Interessent ein Kunde, wird eine neue Kundennummer generiert und diese in dem Attribut Account_Code gespeichert. Das Feld ao_display_nummer führt die aktuell gültige Nummer eines Unternehmens. Abbildung 3-14: Ausschnitt der Kundentabelle in megaWWS Abbildung 3-15: Ausschnitt der Unternehmenstabelle von Kolumbus Im Rahmen der Harmonisierung wurden Unternehmensdaten aus megaWWS und Kolumbus über die Attribute ao_display_nummer und pkt_nr verknüpft. Als Verknüpfungstyp wurde die „Vollständige äußere Verknüpfung“ gewählt, da zunächst alle Datensätze aus beiden Tabellen für die Weiterverarbeitung benötigt werden. Als Ergebnis liefert diese Verknüpfung ein Datenset bestehend aus allen Attributen beider Tabellen. Dieses wurde in einem weiteren Schritt so aufbereitet, dass durch die Verknüpfung doppelt vorhandene Attribute wie Namen, Adressen oder Kundennummern eliminiert wurden. Diese Zusammenfassung wurde durch einen Task für „Abgeleitete Spalten“ und bedingte Abfragen realisiert (Abbildung 3-16). Unter der theoretischen Annahme, dass alle Kunden und Interessenten in Kolumbus vorhanden sind (da hier die zentrale Stammdatenverwaltung implementiert wurde), werden die aus Kolumbus stammenden Attribute durch die entsprechenden Werte der aus megaWWS stammenden Attribute ergänzt, wenn kein Wert aus Kolumbus vorhanden ist. 28 3.3 Transformation der Daten Abbildung 3-16: Vereinheitlichung von Unternehmensdaten aus megaWWS und Kolumbus Das inhaltlich aufbereitete Datenset muss nun syntaktisch weiter aufbereitet werden. Dazu werden in einem separaten Task für „Bedingtes Teilen“ zunächst alle unbrauchbaren Datensätze, weil sie unvollständig, leer oder nicht identifizierbar sind gefiltert und von der weiteren Verarbeitung ausgeschlossen. Dieses erfolgt über die Weiterleitung an einen Task „Multicast“, der keine weitere Ausgabe der einkommenden Daten fordert. Alle brauchbaren Datensätze werden hingegen an einen Task zur „Datenkonvertierung“ geleitet, der die Datentypen und deren Formatierung der einzelnen Attribute auf das für die zu erstellende Unternehmensdimension anpasst. Den gesamten Ablauf der Harmonisierung von Unternehmensdaten zeigt Abbildung 3-17. Abbildung 3-17: Harmonisierung von Unternehmensdaten Ob und welche Arbeitsschritte im Rahmen einer Harmonisierung erforderlich sind, ist immer auch abhängig von dem zugrundeliegendem Datenmaterial und dem gewünschten Ergebnis. Aufgrund der jeweiligen Spezialisierungen der drei bei WESTFA eingesetzten operativen Systeme ist eine aufwendige Harmonisierung wie im vorherigen Beispiel der Kunden aus megaWWS und Kolumbus nicht immer nötig oder möglich. Es werden sowohl in megaWWS als auch in der V_Olga Artikel in separaten 3 Data Preparation 29 Artikeltabellen gepflegt. Allgemein würde eine Harmonisierung im Rahmen einer Integration hier einen erkennbaren Mehrnutzen bringen. Aufgrund der großen Unterschiedlichkeit der Artikel aus nicht vergleichbaren Branchen und dem sich daraus ergebenden vollkommen unterschiedlichen Aufbau der beiden Artikeltabellen ist der nötige Zeitaufwand einer integrierten Abbildung der Artikel nicht gerechtfertigt. Daher wurden viele bei WESTFA geschäftsfeldspezifische Strukturen nicht integriert, sondern separat harmonisiert und in die gewünschten Zielformate transformiert. Das Ergebnis der Harmonisierung beschreibt ein „bereinigter und konsistenter Datenbestand auf der niedrigsten Granularitätsebene[..]“ 22. Dieser Datenbestand beschreibt bereits den Aufbau einer Dimensionstabelle. 3.3.3 Aggregation & Anreicherung Mit dem Abschluss der Harmonisierung ist der Transformationsprozess von operativen zu dispositiven Daten auf der niedrigsten Granularitätsebene vollzogen. Aufgrund der riesigen Datenmenge die in einem Data Warehouse gespeichert wird, können Analysen dank der bisher durchgeführten Transformation der Daten zwar unternehmensweit durchgeführt werden, jedoch sind sie oft noch sehr zeitintensiv. Dieses lässt sich vor allem mit den verschiedenen Berechnungen von Werten auf unterschiedlichen Granularitätsebenen begründen, welche im Rahmen einer Analyse durchzuführen sind. Die Transformationsschichten Aggregation und Anreicherung behandeln die Themen der betriebswirtschaftlichen Aufbereitung der gefilterten und harmonisierten Daten. 3.3.3.1 Aggregation Das Ziel der Aggregationsschicht ist es daher, aus Gründen der Performanceoptimierung, bestimmte Werte bereits im Vorfeld zu aggregieren und in separaten Tabellen für spätere Analysen zu speichern. Die Aufsummierungen lassen sich hierarchisch bis zu einer obersten Gesamtsumme auf unterschiedlichsten Aggregationsstufen abbilden. Durch die vorberechneten Werte ist es für durchzuführende Analysen nicht mehr nötig, diese Aggregationen zur Laufzeit selbst durchzuführen, denn sie können die berechneten Werte direkt aus dem Data Warehouse entnehmen. Um aus betriebswirtschaftlicher Sicht sinnvolle Aggregationen von Werten zu erhalten, orientieren sich die Aggregationen an zu definierenden Hierarchien innerhalb der Dimensionen. Diese werden in einem Data Warehouse durch 22 (Wilmes, et al., 2004 S. 43) 30 3.3 Transformation der Daten unterschiedliche Dimensionshierarchietabellen abgebildet. Als typische Hierarchien lassen sich beispielhaft Artikelgruppen für Artikel oder Kundengruppen für Kunden nennen. Auch die hierarchische Darstellung der Zeit kann einen Einfluss auf die Aufsummierung von Werten haben, ebenso wie auf die Darstellung von Hierarchieebenen. Einmal definierte Dimensionshierarchien durchlaufen mit der Zeit strukturelle Veränderungen. Beispiele dafür wären, wenn sich das Verkaufsgebiet eines Vertriebsmitarbeiters zu einem Zeitpunkt um einige Postleitzahlenbereiche vergrößert oder aufgrund von Änderungen im Produktsortiment die Unterteilung der Produkte in Produktgruppen geändert wird. Um solche Änderungen im Rahmen von Analysen auch „über die Historie der Daten zu gewährleisten, sind die Veränderungen in den Tabellen mit Gültigkeitsstempeln (Zeitstempeln) zu versehen.“ 23 3.3.3.2 Anreicherung Die Anreicherung der Daten findet im Anschluss an die Aggregation statt. Dabei werden aus den Daten der unterschiedlichsten Granularitätsebenen betriebswirtschaftliche Kennzahlen berechnet und im Data Warehouse gespeichert. Die Speicherung der ermittelten Kennzahlen kann sowohl in separaten Tabellen erfolgen und auch als neues Attribut für einen vorhandenen Datensatz. Mit der Aggregation und der Anreicherung von Daten durch Zusatzinformationen, beruhend auf betriebswirtschaftlichem Verständnis, verschwimmen die klassischen Grenzen zwischen der Anwendungs- und der Datenhaltungsschicht. Aus einer reinen Datenbasis wurde das Data Warehouse durch die Implementierung von Geschäftslogik zum betriebswirtschaftlichen Werkzeug. Die Implementierung einer Aggregations- und Anreicherungsschicht wurde für das bei WESTFA erstellte Data Warehouse nicht vorgenommen. Mit dem Ziel der Implementierung eines auf OLAP basierenden Analysesystems wurden die Aktivitäten dieser Schichten erst mit dem durch den SQL-Server angebotenen Werkzeug zur Erstellung eines OLAP-Cubes implementiert (siehe Kapitel 4). Dieses bietet für das Definieren von unterschiedlichen Hierarchien, berechneten Werten und betriebswirtschaftlichen Kennzahlen weitgehende Unterstützung. Zudem soll der Zugriff der späteren Anwender vorwiegend über das zu erstellende Analysesystem erfolgen und das Data Warehouse daher primär als integrierte Datenbasis dienen. 23 (Kemper, et al., 2006 S. 31) 3 Data Preparation 31 Abbildung 3-18 zeigt den bis zu diesem Zeitpunkt bei WESTFA implementierten ETLProzess. Abbildung 3-18: Bisher bei WESTFA implementierter Aufbau des ETL-Prozesses 24 3.4 Konstruktion und Laden des Data Warehouse Mit der Verlagerung der Aggregations- und Anreicherungsschicht auf einen späteren Implementierungszeitpunkt folgt im Anschluss an die Harmonisierung die abschließende Phase des Ladens der innerhalb der Transformationsphase konstruierten Dimensionen und Fakten in physisch vorhandene Dimensions- und Faktentabellen des Data Warehouse. Die einmalige Erstellung der entsprechenden Tabellen im Data Warehouse erfolgt dabei während der Realisierung des Ladevorgangs mit Hilfe des BI-Studios. Mit der Implementierung von Fakten- und Dimensionstabellen im Data Warehouse werden die aus den operativen Daten erzeugten dispositiven Daten in einer sich am Geschäftsverständnis von WESTFA orientierenden dimensionalen Datenstruktur gespeichert. Eine Definition der dimensionalen Modellierung liefert Kimball: „Dimensional modeling is a logical design technique for structuring data so that it’s intuitive to business users and delivers fast query performance.“ 25 Eine dimensionale Datenstruktur lässt sich in Measures, im Weiteren Fakten genannt, und in beschreibenden Kontext unterteilen. Fakten entstehen durch die Abbildung von Geschäftsprozessen innerhalb der operativen Systeme in Form von auswertbarem Zahlenmaterial. Jeder Fakt wird zum Zeitpunkt seiner Erstellung von 24 25 (Kemper, et al., 2006 S. 28) (Kimball, et al., 2008 S. 234) 32 3.4 Konstruktion und Laden des Data Warehouse Kontext umgeben, der zu genau diesem Zeitpunkt aktuell ist. Dieser beschreibende Kontext wird thematisch geordnet und zusammengefasst in Dimensionen unabhängig von den Fakten abgebildet. „Dimension describe the „who, what, when, where, why and how” context of the measurement. 26“ Um innerhalb des Ladeprozesses die Fakten ihrem Kontext, also den Dimensionen, zuordnen zu können, muss dieser vor der Erstellung eines Datensatzes innerhalb einer Faktentabelle vorhanden sein. Realisiert wird diese Verbindung über Fremdschlüsselbeziehungen im Data Warehouse, siehe Kapitel 3.4.3. Dieses impliziert, dass innerhalb des Ladeprozesses zunächst die Dimensionstabellen und anschließen die Faktentabellen mit Daten gefüllt werden. Entsprechend dieser Reihenfolge wird in den folgenden Kapiteln zunächst das Laden der Dimensionstabellen (3.4.1) und anschließend das der Faktentabellen (3.4.2) näher erläutert. 26 (Kimball, et al., 2008 S. 235) 3 Data Preparation 33 3.4.1 Laden der Dimensionstabellen Die Implementierung der Ladeprozesse kann aufgrund der gegebenen Unterstützung des BI-Studios im direkten Anschluss an die Transformationsphase stattfinden. Für die Erstbefüllung der Dimensionstabellen muss noch auf keine Restriktion geachtet werden. Aus Gründen der Performance wurde bei WESTFA deshalb zunächst ein einfacher OleDB Ziel-Task verwendet. Dieser schreibt übergebene Datensätze in eine Zieltabelle. Zur Konfiguration des OleDB Ziel-Tasks wurde zunächst die Datenbank, in diesem Fall westfaDW, ausgewählt. Jetzt kann entweder eine bestehende Tabelle als Ziel angegeben werden oder es kann eine neue Tabelle erstellt werden. Wie bereits beschrieben, wurden die erforderlichen Dimensionstabellen in der Datenbank noch nicht angelegt, weshalb an dieser Stelle die für eine Dimension entsprechende Tabelle zunächst definiert werden musste. Standardmäßig wird durch das BI-Studio in Form einer SQL-Anweisung ein Befehl zur Erstellung einer neuen Tabelle generiert, siehe Abbildung 3-19 auf Seite 34. Die Anweisung wird basierend auf den Metadaten, die dem Task vom Datenfluss übergeben werden generiert. Als Name der Tabelle wird der dem Ziel-Task angegebene Name verwendet. Als Attribute werden standardmäßig alle im Datenfluss verfügbaren Attribute mitsamt ihren Datentypen vorgeschlagen. Mit dem Bestätigen dieser Anweisung wird in der angegebenen Zieldatenbank eine Tabelle nach diesen Vorgaben erstellt. 34 3.4 Konstruktion und Laden des Data Warehouse Abbildung 3-19: Ole DB-Ziel: Durch das BI-Studio generierte SQL-Anweisung zum erstellen einer neuen Dimensionstabelle Nicht alle im Laufe des Datenflusses verwendeten Attribute sind für den Aufbau einer Dimensionstabelle erforderlich. Daher ist es zwingend erforderlich, die generierte SQL-Anweisung lediglich als groben Rahmen zu verstehen und die erforderlichen Anpassungen gemäß der jeweiligen Zielsetzung vorzunehmen. Die Anpassungen sind im Wesentlichen: ! ! ! ! ! Reduzierung der Attribute den Anforderungen entsprechend Überprüfung der Namensgebung von Attributen Überprüfen der Datentypen und deren Wertebereiche Definition eines Surrogat Keys Definition von zwei Attributen zur Abbildung von Zeitstempeln (falls eine Historisierung der Dimension erforderlich ist) 3 Data Preparation 35 Die für eine Unternehmensdimension angepasste SQL-Anweisung zeigt Abbildung 3-20. Es wurden überflüssige, noch aus der Transformationsphase stammende Attribute entfernt, aussagekräftige Attributnamen verwendet, Attributtypen und deren Wertebereich angepasst, ein künstliches Primärschlüsselattribut erzeugt und für die Abbildung von historischem Kontext zwei DateTime-Attribute bestimmt. Abbildung 3-20: Bearbeitete SQL-Anweisung zum erstellen einer Dimensionstabelle Mit dem Bestätigen dieser SQL-Anweisung wird in der angegebenen Zieldatenbank die entsprechende Dimensionstabelle angelegt und kann nun erstmalig geladen werden. Die Vorgehensweise des Ladeprozesses von Dimensionstabellen lässt sich auf unterschiedliche Weise implementieren. Grundsätzlich lassen sich jedoch abhängig von der gewünschten Dimensionsverwendung zwei Arten unterscheiden. Entweder kann eine Dimension dazu genutzt werden, Fakten lediglich in den aktuellsten Kontext einzubetten, oder sie kann dazu genutzt werden, Fakten zusätzlich in einem historischen Kontext darzustellen. Um Fakten nur dem aktuell gültigen Kontext zuzuordnen, reicht es aus, den Inhalt der Dimensionstabelle innerhalb des Ladeprozesses neu zu erstellen. Dieses kann über das Leeren der Dimensionstabelle und das anschließende Laden von aktuellen Daten realisiert werden. Dieses Vorgehen lässt sich jedoch nicht realisieren, wenn auf der Datenbankebene Fremdschlüsselbeziehungen der Faktentabelle zu dieser Dimensionstabelle bestehen. Die Fremdschlüsselbeziehungen dürfen zu keinem 36 3.4 Konstruktion und Laden des Data Warehouse Zeitpunkt ins Leere verweisen, was sie im Falle einer verknüpften und geleerten Dimensionstabelle aber tun würden. Die Definition von Fremdschlüsselbeziehungen wird in Kapitel 3.4.3 genauer erläutert. In den meisten Fällen jedoch sollen Dimensionen innerhalb eines Data Warehouse die Schwäche der operativen Systeme, nämlich Daten ausschließlich im aktuellen Zusammenhang darstellen zu können, durch eine historische Darstellungsmöglichkeit von Fakten ausgleichen. Die Verarbeitung von Dimensionen und die je nach Anforderung unterschiedliche Aufbereitung von inhaltlichen Veränderungen werden unter dem Begriff „Slowly Changing Dimensions“ zusammengefasst. 3.4.1.1 Slowly Changing Dimensions Der Begriff der Slowly Changing Dimensions stammt aus der Beobachtung, dass sich die Inhalte einer Dimensionstabelle im Gegensatz zu den sich ständig verändernden und stetig anwachsenden Faktentabellen nur langsam verändern. Innerhalb der Slowly Changing Dimensions werden Typ 1, Typ 2 und Typ 3 abhängig vom jeweiligen Umgang mit neuen und sich ändernden Attributwerten bestehender Datensätze unterschieden. Jede Dimension, unabhängig von ihrem implementierten Verfahren innerhalb des Ladeprozesses, beinhaltet einen so genannten Geschäftsschlüssel. Dieser kann als die reale Bezeichnung der Entität verstanden werden, die durch eine Dimension abgebildet wird. Geschäftsschlüssel für Kunden oder Produkte wären demnach die Kunden- und die Produktnummer. 3.4.1.1.1 Typ1 Wird eine Dimension als Slowly Changing Dimension vom Typ 1 implementiert, bedeutet dieses, dass neue Datensätze in die Dimensionstabelle geschrieben werden und bei einer Änderung eines Attributwertes der alte Wert durch den neuen überschrieben wird. Die Identifikation eines Datensatzes kann dabei über den Geschäftsschlüssel, der in einer Dimension vom Typ 1 als Primärschlüssel verwendet werden kann, erfolgen. Durch das einfache Aktualisieren des Attributwertes wird gewährleistet, dass die Dimension zu jeder Zeit den aktuellsten Stand beschreibt. Dadurch wird jedoch die Möglichkeit jeglicher Vergangenheitsbetrachtung genommen. Die Verwendung des Typ 1 für eine Dimension ist angebracht, wenn an bestehenden Daten lediglich Datenkorrekturen vorgenommen werden oder wenn die Attributwerte keine Bedeutung für eine betriebswirtschaftliche Beschreibung der Fakten haben. Die Implementierung eines Ladeprozesses für eine Dimension nach Typ 1 ist ohne 3 Data Preparation 37 viel Aufwand möglich. Jedoch muss man sich während der Implementierung bewusst sein, dass solche Dimensionen nicht mehr den historischen Kontext zum Zeitpunkt des Auftretens eines Faktes beschreiben, sondern ihn im aktuellen Kontext abbilden. Im Folgenden zeigt ein Beispiel die Verarbeitung von Slowly Changing Dimensions nach Typ 1. Ausgangssituation ist eine fiktive Kundendimension. nummer (pk) 230981 230982 230983 name Luke Dalton Dalton vorname Lucky Joe Averall strasse Wildwestweg 3 Kittchengasse 1 Kittchengasse 2 telefon 123456 456789 123789 Tabelle 1: SCD Typ1: fiktive Kundendimension vor Verarbeitung Folgender Datensatz wird aus dem operativen System extrahiert: 230982 Dalton Joe Freierweg 7 456789 Tabelle 2: SCE Typ1: extrahierter Datensatz mit geändertem Attributwert Nach Typ 1 sieht die Dimension nach dem Ladeprozess wie folgt aus: nummer (pk) 230981 230982 230983 name Luke Dalton Dalton vorname Lucky Joe Averall strasse Wildwestweg 3 Freierweg 7 Kittchengasse 2 telefon 123456 456789 123789 Tabelle 3: SCD Typ1: fiktive Kundendimension nach Verarbeitung 3.4.1.1.2 Typ2 Die am häufigsten verwendete Methode, den Ladeprozess einer Dimension zu implementieren, ist die der Slowly Changing Dimension Typ 2. Im Gegensatz zum Typ 1 bietet sie die Möglichkeit, Veränderungen von Attributwerten historisch abzubilden und somit einen Fakt im zum Zeitpunkt seines Auftretens gültigen Kontext darzustellen. Im Rahmen der Implementierung einer Slowly Changing Dimension vom Typ 2 werden zunächst die Dimensionsattribute bestimmt, die für eine historische Darstellung von Fakten relevant sind. Während des Ladeprozesses wird analog zu Typ 1 anhand des Geschäftsschlüssels zunächst in neue und bereits in der Dimension vorhandene Datensätze unterschieden. Neue Datensätze werden direkt in die Dimension geschrieben, während bei bereits vorhandenen Datensätzen eine erneute Unterscheidung vorgenommen wird. Für diese muss geprüft werden, ob sich eine Veränderung im jeweiligen Datensatz gegenüber den in der Dimension gespeicherten ergeben hat. Bei Abweichungen in für die historische Darstellung von Fakten nicht relevanten Attributen wird der vorhandene Wert mit dem neuen, wie auch in Typ 1, überschrieben. Liegen Änderungen in für die Historie relevanten 38 3.4 Konstruktion und Laden des Data Warehouse Attributen vor, wird ein neuer Datensatz mit den nun aktuellen Attributwerten erzeugt. Um nachvollziehen zu können, welcher Datensatz zu welcher Zeit gültig war, werden Dimensionen vom Typ 2 um zwei DateTime-Attribute erweitert. In das eine wird bei der Neuanlage eines Datensatzes der aktuelle Zeitstempel, ab wann der Datensatz gültig ist, als Indikator eingetragen. Tritt der Fall ein, dass ein zweiter Datensatz angelegt werden muss, weil Änderungen an wichtigen Attributwerten festgestellt wurden, erhält der alte Datensatz wiederum einen Zeitstempel, der das Ablaufdatum des Datensatzes kennzeichnet. Der neue Datensatz erhält seinerseits einen Zeitstempel, der ihn als aktuell gültig identifiziert. Durch die Verwendung von Gültigkeitszeiträumen für die Datensätze einer Dimension lässt sich der historische Kontext für Fakten jederzeit abbilden. Diese Methode der Historienbildung hat jedoch zur Folge, dass Dimensionstabellen vom Typ 2 mit der Zeit immer mehr Speicherplatz benötigen, weil sie konstant anwachsen. Des Weiteren können Datensätze innerhalb dieser Dimension anhand ihres Geschäftsschlüssels nicht mehr eindeutig identifiziert werden, da diese nun mehrfach vorkommen können. Hierdurch ist man gezwungen, einen neuen Primärschlüssel für die Dimension zu erschaffen. Eine Möglichkeit ist, einen neuen Primärschlüssel bestehend aus dem Geschäftsschlüssel und den DateTime-Indikatoren für die Gültigkeit der Datensätze zu definieren. Jedoch sind DateTime-Attribute zur Verwendung als Primärschlüssel schon sehr ungeeignet und innerhalb eines Data Warehouse verursacht ein aus mehreren Attributen zusammengesetzter Primärschlüssel sehr hohe Performance- und Speicherkosten. Aufgrund dessen ist die häufigste Lösung die Konstruktion eines neuen, künstlichen Ersatzschlüssels, der jeden Datensatz innerhalb einer Dimension eindeutig identifiziert und der unabhängig von den vorhandenen Attributwerten eines Datensatzes gebildet wird. Den Ersatzschlüsseln, auch Surrogatschlüssel genannt, kommt im Rahmen der Konstruktion eines Data Warehouse eine sehr große Bedeutung zu, weshalb deren Verwendung in Kapitel 3.4.1.2 näher erläutert wird. 3 Data Preparation 39 Im Folgenden ein Beispiel, welches die Verarbeitung von Slowly Changing Dimensions nach Typ 2 verdeutlicht. Ausgangssituation ist eine fiktive Kundendimension, die am 7.1.09 geladen wurde. key (pk) 1 2 3 nummer 230981 230982 230983 name Luke Dalton Dalton vorname Lucky Joe Averall strasse Wildwestweg 3 Kittchengasse 1 Kittchengasse 2 telefon 123456 456789 123789 von 7.1.09 7.1.09 7.1.09 bis Tabelle 4: SCD Typ2: fiktive Kundendimension vor Verarbeitung Folgender Datensatz wird aus dem operativen System am 8.1.2009 extrahiert: 230982 Dalton Joe Freierweg 7 456789 Tabelle 5: SCD Typ2: extrahierter Datensatz mit geändertem Attributwert Nach Typ 2 sieht die Dimension nach dem Ladeprozess wie folgt aus: key (pk) 1 2 3 4 nummer 230981 230982 230983 230982 name Luke Dalton Dalton Dalton vorname Lucky Joe Averall Joe strasse Wildwestweg 3 Kittchengasse 1 Kittchengasse 2 Freierweg 7 telefon 123456 456789 123789 456789 von 7.1.09 7.1.09 7.1.09 8.1.09 bis 8.1.09 Tabelle 6: SCD Typ2: fiktive Kundendimension nach Verarbeitung 3.4.1.1.3 Typ 3 Slowly Changing Dimensions Typ 3 werden verwendet, wenn sich Attribute einer Dimension nur selten ändern und eine nur sehr grobe Historisierung erforderlich ist. In diesem Fall wird, wenn an einem Attributwert eines in der Dimension bereits vorhandenem Datensatz eine Änderung festgestellt wird, ein neues Attribut an den vorhandenen Datensatz angehängt. Dieses Attribut erhält den zu überschreibenden, nun veralteten Wert. Danach kann der alte Wert in dem ursprünglichen Attribut mit dem neuen Wert überschrieben werden. Die Dimension enthält dadurch ein Attribut mit dem aktuell gültigen Wert und eines mit dem Vorgängerwert. Alle auf diese Dimension beruhenden Auswertungen verwenden automatisch den neuen Attributwert, wobei es dennoch möglich bleibt, eine Auswertung auf Basis des Vorgängerwertes zu erstellen. Dieses Verfahren kommt ohne zusätzliche Zeitstempel aus und macht die Verwendung von Surrogatschlüsseln zur Identifikation von einzelnen Datensätzen unnötig. Jedoch kann auf diese Weise nur eine sehr begrenzte Anzahl von Änderungen an Attributwerten verfolgt werden und auch der Zeitpunkt der Änderung kann nicht nachvollzogen werden. Das folgende Beispiel soll die Verarbeitung von Slowly Changing Dimensions nach Typ 3 verdeutlichen. Ausgangssituation ist die bekannte, fiktive Kundendimension. 40 3.4 Konstruktion und Laden des Data Warehouse nummer (pk) 230981 230982 230983 name Luke Dalton Dalton vorname Lucky Joe Averall strasse Wildwestweg 3 Kittchengasse 1 Kittchengasse 2 telefon 123456 456789 123789 Tabelle 7: SCD Typ3: fiktive Kundendimension vor Verarbeitung Folgender Datensatz wird aus dem operativen System extrahiert: 230982 Dalton Joe Freierweg 7 456789 Tabelle 8: SCD Typ3: extrahierter Datensatz mit geändertem Attributwert nummer (pk) 230981 230982 230983 name Luke Dalton Dalton vorname Lucky Joe Averall strasse Wildwestweg 3 Freierweg 7 Kittchengasse 2 telefon strasse_alt 123456 456789 Kittchengasse 1 123789 Tabelle 9: SCD Typ3: fiktive Kundendimension nach Verarbeitung 3.4.1.1.4 Implementierung bei WESTFA Das BI-Studio bietet auch für die Abbildung von Slowly Changing Dimensions eine sehr gute und geführte Unterstützung in Form eines separaten Tasks mit dem Namen „Langsam veränderliche Dimension“. Mit Hilfe dieses Tasks wurden der Ladeprozess und die damit verbundene Verarbeitung je nach Dimensionstyp bei WESTFA implementiert. Vorteil dieses Tasks ist die grafische und durch einen Assistenten geführte Implementierungsmöglichkeit aller drei Dimensionstypen. Außerdem lassen sich die Dimensionen über diesen Task aktualisieren, ohne dass gegen Restriktionen (Fremdschlüsselbeziehungen, siehe Kapitel 3.4.3) auf Seiten der Datenbank verstoßen wird, da die Dimensionen zu keinem Zeitpunkt geleert werden müssen. Abbildung 3-21 zeigt den ersten Schritt zum erstellen einer Slowly Changing Dimension, nachdem der entsprechende Task in den Datenfluss integriert wurde. Voraussetzung für die Verwendung des Wizards ist, dass die Dimensionstabelle bereits in der Datenbank angelegt wurde. Nach der Auswahl der Zieldatenbank westfaDW und der zugrundeliegenden Dimensionstabelle, in diesem Fall die dimUnternehmen, werden alle verfügbaren Attribute der dimUnternehmen aufgelistet und es werden die entsprechenden Attribute aus dem bisherigen Datenfluss den entsprechenden Dimensionsattributen zugeordnet. Wesentlich hierbei ist, dass gleich welcher Dimensionstyp verwendet werden soll, ein Dimensionsattribut als Geschäftsschlüssel gekennzeichnet wird anhand dessen ein Unternehmensdatensatz identifiziert werden kann. Wie zu sehen ist, gibt es für die vorhandenen Dimensionsattribute gueltig_von und gueltig_bis noch keine entsprechenden Attribute, weshalb hier keine Zuordnung stattgefunden hat. Sie werden im weiteren Verlauf des „Assistenten für langsam veränderliche Dimensionen“ separat behandelt. 3 Data Preparation 41 Abbildung 3-21: SCD Assistent: Zuordnung von Datenflussattributen zu den Dimensionsattributen Erst im zweiten Schritt zur Konfiguration der Slowly Changing Dimension, den Abbildung 3-22 auf Seite 42 zeigt, erfolgt die Festlegung auf die Verarbeitungslogik nach Typ1, Typ2 oder Typ3. Diese wird über die Konfiguration der einzelnen Änderungstypen der Dimensionsattribute bestimmt. Bei den Änderungstypen werden die drei Möglichkeiten „Festes Attribut“, „Veränderliches Attribut“ und „Verlaufsattribut“ unterschieden. „Feste Attribute“ dürfen ihren Attributwert nie ändern. Wird hier eine Änderung des Wertes festgestellt, wird die Verarbeitung des Tasks abgebrochen oder, sofern definiert, eine entsprechende Fehlerbehandlung durchgeführt. Diese Funktionalität kann genutzt werden, um Slowly Changing Dimensions vom Typ 3 abzubilden. Diese Änderungen werden durch den Task nicht direkt unterstützt, da hierfür Änderungen an der Dimensionstabelle nötig wären. Mit Hilfe der Definition von „Festen Attributen“ lassen sich jedoch Attribute vom Typ 3 identifizieren; lediglich die weitere Implementierung kann nicht mit Unterstützung des Assistenten durchgeführt werden „Veränderliche Attribute“ beschreiben den Typ 1 einer Slowly Changing Dimension. Bei Veränderungen der Attributwerte wird der alte Wert durch den neuen überschrieben. Werden alle Attribute einer Dimension als „Veränderliches Attribut“ gekennzeichnet, entspricht dieses einer Slowly Changing Dimension vom Typ 1. 42 3.4 Konstruktion und Laden des Data Warehouse Werden Veränderungen an Attributwerten festgestellt, die als „Verlaufsattribut“ gekennzeichnet sind, wird ein neuer Datensatz in der Dimensionstabelle angelegt. Dabei werden alle Attributwerte des bereits vorhandenen Datensatzes übernommen und ausschließlich die Änderungen von „Verlaufsattributen“ in den neuen Datensatz geschrieben. Sobald ein Dimensionsattribut als „Verlaufsattribut“ gekennzeichnet wird entspricht dieses einer Slowly Changing Dimension vom Typ 2. Durch die Möglichkeit, den Änderungstyp für jedes Dimensionsattribut separat festlegen zu können wird verhindert, dass Dimensionstabellen vom Typ 2 zu schnell anwachsen, denn nicht bei jeder Änderung eines Attributwertes wird ein neuer Datensatz angelegt. Bei WESTFA wurden im Rahmen der durchgeführten Informationsbedarfsanalyse und dem „Data Understanding“ bereits Attribute einzelner Entitäten identifiziert, für die eine historische Betrachtung ermöglicht werden soll. Abbildung 3-22: SCD Assistent: Festlegung von Änderungstypen für die Dimensionsattribute Im weiteren Verlauf des Assistenten muss bei der Verwendung des Änderungstyps „Veränderliches Attribut“ angegeben werden, wie der aktuelle Datensatz gekennzeichnet werden soll. Dazu können entweder ein separates Attribut mit 3 Data Preparation 43 wählbarem Indikator oder zwei zusätzliche DateTime-Attribute genutzt werden. Während ein Indikator lediglich den aktuellen Datensatz markiert aber keine Aussage darüber zulässt, bis wann ein alter Datensatz gültig ist, wird dies durch die Verwendung eines Start- und Enddatums möglich. An dieser Stelle des Assistenten werden die im ersten Schritt ignorierten Dimensionsattribute gueltig_von und gueltig_bis konfiguriert. Als Attributwert kann dabei entweder ein Datum manuell vorgegeben oder der Inhalt einer Systemvariablen genutzt werden. Bei WESTFA wurden Dimensionen zur Abbildung einer Historie einheitlich nach der in Abbildung 3-23 gezeigten Methode unter Verwendung von zwei zusätzlichen DateTime-Attributen implementiert, um die Historie innerhalb der Dimensionen auch in einem zeitlichen Kontext abbilden zu können. Abbildung 3-23: SCD Assistent: Kennzeichnung des aktuellen Datensatzes bei SCD Typ 2 Zusätzlich zu den hier beschriebenen grundlegenden Konfigurationen innerhalb des Assistenten für langsam veränderliche Dimensionen bietet dieser einige zusätzliche Möglichkeiten der Behandlung von abgeleiteten Attributen. Diese wurden bei WESTFA zum aktuellen Stand der Implementierung nicht verwendet und werden daher an dieser Stelle nicht weiter beschrieben. Der Assistent sorgt zum Schluss abhängig von der durchgeführten Konfiguration für eine Erweiterung des bisherigen Datenflusses. Die durch den Assistenten erzeugte Verarbeitung der Dimensionsdatensätze und das anschließende Laden dieser in die Dimensionstabelle zeigt Abbildung 3-24. Ausgehend vom Ursprungs Task „Langsam veränderliche Dimension“ wurden drei Datenflüsse erzeugt: 44 3.4 Konstruktion und Laden des Data Warehouse Die „Ausgabe der Updates von veränderlichen Attribute“ führt zu einem Task zur Ausführung einer Datenbank-Anweisung. Hier werden die Werte von bereits vorhandenen Datensätzen über eine Update-Anweisung aktualisiert. Die „Ausgabe der Einfügevorgänge im Verlaufsattribut“ behandelt den Fall, dass eine Änderung an einem Verlaufsattribut festgestellt wurde. Hier wird zunächst das aktuelle Datum ermittelt und anschließend in den veralteten, bereits in der Dimensionstabelle vorhandenen Datensatz als gueltig_bis Datum geschrieben. Die „Neue Ausgabe“ enthält alle Datensätze, die anhand des definierten Geschäftsschlüssels noch nicht in der Dimensionstabelle gefunden werden konnten und wird durch den Task „UNION ALL“ mit den Datensätzen aus der „Ausgabe der Einfügevorgänge im Verlaufsattribut“ zusammengeführt. Für diese Datensätze wird ebenfalls das aktuelle Datum ermittelt, diesmal jedoch in das Attribut gueltig_von geschrieben. Anschließend werden diese in die Dimensionstabelle geladen. Abbildung 3-24: Implementierung einer Slowly Changing Dimension Typ 2 bei WESTFA 3 Data Preparation 45 3.4.1.2 Surrogatschlüssel Zunächst soll die Frage beantwortet werden, was ein Surrogatschlüssel ist. Dazu folgende Definition: “A surrogate key is an artificial or synthetic key that is used as a substitute for a natural key.“ 27 Ein Surrogatschlüssel ist jedoch nicht nur ein Ersatz für den aus dem operativen System stammenden natürlichen Primarschlüssel, sondern innerhalb eines Data Warehouse dringend erforderlich, um komplexe Abfragen handhabbar zu gestalten und letztendlich auch, um eine gute Performance sicherstellen zu können. In megaWWS besitzt zum Beispiel die Tabelle für Auftragspositionen einen zusammengesetzen Primarschlüssel aus den Attributen bel_art, auftnr und posnr wie Tabelle 10 zeigt. bel_art char(3) auftnr char(9) posnr char(3) artnr char(16) bez1 char(60) Tabelle 10: auftpos aus megaWWS Die Struktur eines Data Warehouse wird in Form eines Star- oder SnowflakeSchema 28 beschrieben und besteht in seiner Summe aus Join-Anweisungen von Dimensionstabellen und einer oder mehreren Faktentabellen. Je größer der verwendete Primärschlüssel bei einer solchen Anweisung ist, umso ineffizienter wird die Ausführung. Die Größe des Primärschlüssels kann dabei entweder durch den Datentyp des als Primärschlüssel verwendeten Attributes beeinflusst werden oder durch einen zusammengesetzten Schlüssel. Im hier dargestellten Beispiel beansprucht der Primärschlüssel einen Speicherbereich von 15 Byte und besteht aus drei Attributen. Dieses kann für die Abbildung von Geschäftslogiken im operativen System durchaus als praktikabel gelten, ist jedoch in einem Data Warehouse mit der Zielsetzung von komplexen und zugleich performanten Abfragen nicht vereinbar. Aufgrund dieser Problematik sind Surrogatschlüssel in einem Data Warehouse notwendig. Die einfachste und praktikabelste Integration von Surrogatschlüsseln kann über die Erweiterung der entsprechenden Tabellen um ein zusätzliches Integer-Attribut erfolgen. Dieses dient dann im Data Warehouse als Primärschlüssel und benötigt lediglich 4 Byte an Speicherplatz. Dieses kann dann beginnend bei eins für jeden neuen Datensatz um eins hochgezählt werden. Durch diese sehr einfache Funktionalität wird erreicht, dass die Join-Anweisung nicht mehr über einen zusammengesetzten Primärschlüssel mit einer Größe von 15 Byte, sondern lediglich 27 28 (Kimball, 1998) (Claßen, 2008 S. 16) 46 3.4 Konstruktion und Laden des Data Warehouse noch über ein Attribut mit der Größe von 4 Byte erfolgen muss. Somit wird die Abfrage nicht nur schneller, sondern es wird zusätzlich fast dreiviertel des zuvor benötigten Arbeitsspeicher eingespart. Eine weitere Verfeinerung dieses Konzeptes könnte dadurch erfolgen, dass bei Tabellen mit voraussichtlich nur wenigen Datensätzen anstelle eines Integer-Surrogatschlüssles ein nur 2 Byte belegender Smallint als Surrogatschlüssel verwendet wird. Bereits in Kapitel 3.4.1 wurde beschrieben, dass die zu ladenden Dimensionstabellen mit Hilfe eines OleDB Ziel-Tasks durch die Manipulation der erzeugten Anweisung erstellt wurden. Abbildung 3-20 auf Seite 35zeigt die SQL-Anweisung zur Erstellung der Unternehmensdimension. Darin wurde ein neues Attribut unternehmens_key vom Typ Integer definiert. Dieses wurde zusätzlich als IDENTITY(1, 1)NOT NULL definiert. Diese Definition weist die Datenbank an, beim Einfügen eines Datensatzes in die Tabelle, diesem, im Vergleich zu dem vorherigen Datensatz einen um eins erhöhten Wert für dieses Attribut zuzuweisen. Das Attribut wird somit durch den SQL-Server selbstständig verwaltet und kann im Data Warehouse als neuer Primärschlüssel verwendet werden. 3.4.2 Laden der Fakten Im Gegensatz zu den nötigen Verarbeitungsschritten im Rahmen der Transformationsschicht für die Erstellung der Dimensionstabellen sind für die Erstellung der Faktentabellen keine Transformationen nötig. Das selektierte und bereits bereinigte Datenmaterial besteht zu diesem Zeitpunkt lediglich noch aus auszuwertendem Zahlenmaterial und Schlüsselattributen aus den operativen Systemen, anhand derer eine Verknüpfung zu bestehenden Dimensionen erstellt werden muss. Die Faktentabellen bilden den Mittelpunkt des durch ein Star- oder Snowflake-Schema beschriebenen Data Warehouse. Da im Rahmen des Ladevorgangs der Dimensionen für diese neue Primärschlüssel in Form von Surrogatschlüsseln definiert wurden, lässt sich der wesentliche Bestandteil des Ladevorgangs von Faktentabellen wie folgt beschreiben: „Grab each production dimension key in the fact table record and replace it with the correct current surrogate key.“ 29 Um die ursprünglichen Schlüssel innerhalb der Fakten durch die neuen Surrogatschlüssel der Dimensionen ersetzen zu können, ist es zwingend erforderlich, dass die Fakten erst geladen werden, nachdem die Dimensionen 29 (Kimball, 1998) 3 Data Preparation 47 verarbeitet wurden. Diese Funktionalität lässt sich manuell über sehr komplexe SQL-Anweisungen ausführen oder über so genannte „Suche“-Tasks, die das BI-Studio anbietet. 3.4.2.1 Lookup-Transformation Die deutsche Übersetzung „Suche“ des eigentlichen Lookup-Tasks im BI-Studio ist irreführend, weil sie von der eigentlichen Funktionalität des Tasks ablenkt. Er bietet die vor allem während des Ladeprozesses von Fakten benötigte Funktion, aus einer verknüpften Tabelle den passenden Datensatz zu identifizieren und ein Attribut aus dieser Tabelle in den Datenfluss zu integrieren. Innerhalb der Konfiguration des Tasks müssen zunächst die Datenbank und anschließend die Tabelle angegeben werden, in der sich der gesuchte Ausdruck befinden. Am Beispiel in Abbildung 3-25 ist dieses die bereits bekannte Dimension dimUnternehmen. Abbildung 3-25: Verweistabelle für die Suche nach Surrogatschlüsseln Auf dem zweiten Reiter „Spalten“ wird die Verknüpfung der bisher im Datenfluss verfügbaren Attribute mit der Dimensionstabelle definiert. Die Verknüpfung erfolgt in der Regel über den Geschäftsschlüssel der Dimension. Ist die Verknüpfung 48 3.4 Konstruktion und Laden des Data Warehouse definiert, können die Dimensionsattribute ausgewählt werden, die an den Datenfluss zurückgegeben werden sollen. Für den Ladeprozess der Fakten wird hier lediglich der Surrogatschlüssel der Dimension benötigt. Für die gewählten Dimensionsattribute kann zusätzlich ein Ausgabealias vergeben werden. Die Verknüpfung der Dimension anhand des Attributes kundennr und die Rückgabe des Surrogatschlüssels zeigt Abbildung 3-26. Abbildung 3-26: Verknüpfung und Suchspalte für die Suche nach Surrogatschlüsseln Abhängig von der Anzahl der zu verknüpfenden Dimensionstabellen sind entsprechend viele Suche-Tasks nötig, um die Geschäftsschlüssel durch die Surrogatschlüssel zu ersetzen. Wichtig für eine möglichst schnelle Verarbeitung aller Fakten ist, dass die Verarbeitungsschritte parallel ausgeführt werden. Dies bedeutet, dass nicht erst alle Datensätze in Suche1 verarbeitet werden und dann in Suche2, sondern dass wenn ein Datensatz Suche1 durchlaufen hat, er zur Suche2 weitergeleitet wird, während der folgende Datensatz in Suche1 verarbeitet wird. Diese Verarbeitungslogik übernimmt das BI-Studio automatisch. Des Weiteren ist ein wesentlicher Punkt für die Verarbeitungsgeschwindigkeit, ob die Lookup-Tabellen, also die Dimensionstabellen, in denen nach dem passenden 3 Data Preparation 49 Surrogatschlüssel gesucht werden soll, im Arbeitsspeicher der ausführenden Maschine vorgehalten werden können, oder ob sie auf der Festplatte physisch zwischengespeichert werden müssen. Liegt eine Lookup-Tabelle im Arbeitsspeicher, so kann die Verarbeitung aufgrund seiner wesentlich höheren Geschwindigkeit schneller ausgeführt werden als wenn die Tabelle auf der im Vergleich zum Arbeitsspeicher langsameren Festplatte zwischengespeichert wird. Die Auswahl, in welchem Speicher die Lookup-Tabelle bereitgestellt wird, lässt sich auf dem Reiter „Erweitert“ des Suche-Tasks bestimmen, wie Abbildung 3-27 zeigt. Abbildung 3-27: Erweiterte Manipulationen der Suche nach Surrogatschlüsseln Im Standard sind in dieser Maske alle Felder deaktiviert, wodurch eine vollständige Vorzwischenspeicherung erfolgt. Dabei werden alle Verweisdaten vor dem Beginn der Verarbeitung in den Speicher geladen. Diese Konfiguration hat zur Folge, dass alle Tasks zeitgleich die Lookup-Tabellen in den Arbeitsspeicher der ausführenden Maschine schreiben und es dadurch zu negative Auswirkungen auf das Laufzeitverhalten kommen kann, wenn der Arbeitsspeicher der ausführenden Maschine nicht ausreichend ist. Bei der Verwendung mehrerer Suche-Tasks und großen Dimensionstabellen 50 3.4 Konstruktion und Laden des Data Warehouse empfiehlt es sich daher, an dieser Stelle Anpassungen im Hinblick auf die performante Verarbeitung des Datenflusses anzustellen. Durch das alleinige Aktivieren der Option „Arbeitsspeicherbeschränkung aktivieren“ wird verhindert, dass die Lookup Tabelle dieses Tasks in den Arbeitsspeicher geschrieben wird. Dadurch wird der Arbeitsspeicher geschont, jedoch ein Geschwindigkeitsverlust bei der Verarbeitung in Kauf genommen. Durch das zusätzliche aktivieren der Option „Zwischenspeichern aktivieren“ kann im Vorfeld manuell festgelegt werden, wie viel Speicherplatz für das Zwischenspeichern bereitgestellt werden soll. Mit der Aktivierung der Option „SQL-Anweisung ändern“ kann Einfluss auf die Daten genommen werden, die zwischengespeichert werden sollen. Hier können einzelne Attribute ausgewählt werden oder generelle Einschränkungen der Datenmenge durch das Anfügen von Bedingungen vorgenommen werden. In Abbildung 3-27 wurde diese Option aktiviert, die SQL-Anweisung jedoch noch nicht manipuliert. Mit dem Suche-Task stellt das BI-Studio eine sehr einfach zu konfigurierende, zuverlässige und vor allem schnell auszuführende Methode zur Verfügung, die Geschäftsschlüssel in einer Faktentabelle durch die entsprechenden Surrogatschlüssel der Dimensionen zu ersetzen. Jedoch eignet sich die Standardkonfiguration lediglich für den Fall, dass der gesuchte Geschäftsschlüssel in der Dimensionstabelle nur genau einmal vorkommt. Dieses entspricht einer Slowly Changing Dimension vom Typ 1. Gerade in einem Data Warehouse wird jedoch sehr häufig die Funktionalität von Slowly Changing Dimensions des Typen 2 genutzt. Wie bereits in Kapitel 3.4.1.1.2 beschrieben, lassen sich in diesem Fall Datensätze über den Geschäftsschlüssel nicht mehr eindeutig identifizieren. Mit der Problematik, Fakten in den historisch korrekten Kontext einzubetten befasst sich das folgende Kapitel 3.4.2.2 3.4.2.2 Lookup von Surrogatschlüsseln einer SCD vom Typ 2 Die Konfiguration und die Funktionsweise des Suche-Tasks zum ermitteln von Surrogatschlüsseln aus einer Dimensionstabelle wurde bereits in dem vorherigen Kapitel erläutert. Da in einer Slowly Changing Dimension vom Typ 2 ein Geschäftsschlüssel aufgrund der historischen Abbildung von Datensätzen mehrfach in der Dimensionstabelle vorhanden sein kann, lässt sich der Suche-Task in seiner Standardkonfiguration hier nicht verwenden. Ist der gesuchte Schlüssel mehrfach in der Dimensionstabelle vorhanden, wird durch den Suche-Task der Surrogatschlüssel des ersten gefunden Datensatzes als Ergebnis zurückgegeben. Die Zuordnung von Surrogatschlüsseln zu den Fakten würde demnach willkürlich durchgeführt und eine sinnvolle Analyse auf Basis der Daten nicht mehr möglich. 3 Data Preparation 51 Um einen Fakt den zum Zeitpunkt seiner Erstellung gültigen Dimensionswert zuordnen zu können, muss ein Abgleich seines Erstellungsdatums mit den Gültigkeitsbereichen, für seinen Geschäftsschlüssel gefundenen Dimensionsdatensätzen erfolgen. Gibt es nur einen Dimensionsdatensatz zu dem Geschäftsschlüssel, muss der Beginn der Gültigkeit kleiner oder gleich dem Erstellungsdatum des Faktes sein und das Ablaufdatum darf nicht gefüllt sein. Wurden mehrere Dimensionsdatensätze zu dem Geschäftsschlüssel gefunden, muss derjenige gefunden werden, dessen Beginndatum kleiner-gleich und dessen Enddatum nicht definiert oder größer als das Erstellungsdatum des Faktes ist. Um diese Logik in den Ladevorgang der Fakten zu implementieren bieten sich verschiedenen Möglichkeiten an. Die erste Möglichkeit bietet ein separater Task zur Ausführung einer SQLAnweisung. Die definierte SQL-Anweisung zur Ermittlung des passenden Dimensionsdatensatzes wird dann für jeden Datensatz einzeln gegen die Datenbank ausgeführt. Dieser Ansatz ist leicht zu implementieren, benötigt jedoch sehr viel Zeit, da alle Anfragen direkt an die Datenbank gestellt werden und im Vorfeld der Ausführung keine Zwischenspeicherung erfolgt. Die Dauer der Ausführung des bei WESTFA definierten Datenflusses zum Laden der Faktentabelle würde mit dieser Methode hochgerechnet ca. drei Tage dauern. Die zweite Möglichkeit besteht in der Nutzung eines Suche-Tasks, wie er bereits für die Suche nach Surrogatschlüsseln in Slowly Changing Dimensions vom Typ 1 genutzt wird. Durch die manuelle Erweiterung der SQL-Anweisung unter dem Reiter „Erweitert“ um die bereits beschriebene Logik zur Abfrage der Gültigkeit von Dimensionsdatensätzen kann das gleiche Ergebnis wie mit der vorherigen Lösungsmöglichkeit über die einfache SQL-Anweisung erreicht werden. Jedoch besteht über den Suche-Task die Möglichkeit, den schnelleren Arbeitsspeicher der ausführenden Maschine zu nutzen, da der Suche-Task Daten vor der Ausführung dort ablegt. Dieses bringt gegenüber dem Task mit der einfachen SQL-Anweisung einen Vorteil in der Verarbeitungsgeschwindigkeit, ist jedoch trotzdem zu langsam für den produktiven Einsatz, da auch hier die meisten Anfragen des Suche-Tasks nicht aus dem Arbeitsspeicher, sondern von der Datenbank beantwortet werden. Die Zeitersparnis gegenüber dem Task mit der SQL-Anweisung liegt bei mehreren Stunden. Für die Suche nach dem zu einem Fakt passenden Surrogatschlüssel in einer Slowly Changing Dimension vom Typ 2 wurde bei WESTFA ein INNER JOIN und eine bedingte Teilung des Datenflusses genutzt. Das Vorgehen wird im Folgenden anhand eines Beispiels mit der Kundendimension verdeutlicht. Zunächst muss der Datenfluss nach dem Geschäftsschlüssel, in diesem Beispiel der 52 3.4 Konstruktion und Laden des Data Warehouse Kundennummer, sortiert werden. Für die Sortierung wurde ein Sortieren-Task verwendet. Anschließend wurde eine Zusammenführungsverknüpfung in den Datenfluss integriert. Diese erhält als linke Eingabe die nach dem Geschäftsschlüssel sortierten Datensätze. Eine zusätzliche Datenquelle selektiert den Surrogatschlüssel, den Geschäftsschlüssel und die beiden Gültigkeitsdaten aller Datensätze, sortiert nach dem Geschäftsschlüssel aus der Dimensionstabelle dimUnternehmen. Diese bilden die rechte Eingabe der Zusammenführungsverknüpfung. Innerhalb der Zusammenführungsverknüpfung wurde die Verknüpfungsart „Innere Verknüpfung“ ausgewählt und eine Verknüpfung der beiden Tabellen über den Geschäftsschlüssel nummer vorgenommen. Außerdem wurden der Surrogatschlüssel und die Gültigkeitsdaten der Dimensionstabelle als zusätzliche Ausgabespalten des Tasks definiert. Die an den Verknüpfungstask übergebene Zeile eines Faktes zeigt Tabelle 11. nummer 23091981 auftragsdatum 21.12.2008 Tabelle 11: Datensatz vor der Verknüpfung Nach der Verknüpfung mit drei zur nummer gefundenen Dimensionsdatensätzen der Unternehmensdimension existieren drei unterschiedliche Datensätze des Faktes, wie Tabelle 12 zeigt. nummer 23091981 23091981 23091981 auftragsdatum 21.12.2008 21.12.2008 21.12.2008 sorrogatekey 133 134 135 gueltig_von 01.01.2008 07.01.2008 10.08.2008 gueltig_bis 07.01.2008 10.08.2008 NULL Tabelle 12: Datensätze nach der Verknüpfung Im Anschluss an die Verknüpfung findet eine bedingte Teilung des Datenflusses statt. Dieser Task prüft das Datum des Faktdatensatzes mit den Gültigkeitsdaten der Dimensionsdatensätze. Nur der passende Datensatz wird an den weiteren Verlauf des Datenflusses übergeben. Die Filterung des ‚richtigen‘ Datensatzes wird durch die folgende Split-Bedingung erreicht: auftragsdatum <= gueltig_von && (auftragsdatum < gueltig_bis || ISNULL(gueltig_bis)) Nach der Trennung existiert zu dem Faktdatensatz der Surrogatschlüssel des historisch gültigen Dimensionsdatensatz (Tabelle 13). nummer 23091981 auftagsdatum 21.12.2008 sorrogatekey 135 Tabelle 13: Datensatz nach der Trennung mit Surrogatschlüssel 3 Data Preparation 53 Abbildung 3-28 zeigt den gesamten Ablauf der beschriebenen Transformation. Abbildung 3-28: Lookup des Surrogatschlüssels einer SCD Typ2 Die Realisierung dieser Transformation gestaltet sich im Gegensatz zu den beiden vorher beschriebenen Möglichkeiten etwas aufwendiger. Dafür konnte die Laufzeit des Ladeprozesses dieser Faktentabelle auf ca. fünf Minuten reduziert werden. Den gesamten Ladeprozess der Faktentabelle für eine Darstellung von Umsätzen, Absätzen, Aufträgen und Angeboten aus megaWWS zeigt die folgende Abbildung 3-29. Die Fakten werden über zwei getrennte SQL-Anweisungen auf Positionsebene ermittelt, konvertiert und zusammengeführt. Nachdem Aufträge und Rechnungen von Testkunden gefiltert wurden werden zunächst die Surrogatschlüssel aus Slowly Changing Dimensions des Typs 1, dann die aus Typ 2 ermittelt. Anschließend werden die Daten in die Faktentabelle geschrieben. Für die Lookup-Tasks wurde zusätzlich eine Fehlerbehandlung implementiert. Datensätze für die kein Surrogatschlüssel gefunden wurde werden in eine separate Tabelle geschrieben. Abbildung 3-29: Ladeprozess einer Faktentabelle 54 3.4 Konstruktion und Laden des Data Warehouse 3.4.3 Fremdschlüsselbeziehungen im Data Warehouse Nachdem Dimensions- und Faktentabellen vollständig verarbeitet sind, lässt sich die während des gesamten ETL-Prozesses erstellte, multidimensionale Struktur, auch physisch in der Datenbank, dem Data Warehouse, hinterlegen. Die geleisteten Vorarbeiten, vor allem aber das Einführen von Surrogatschlüsseln, erlauben es nun, mit dem „Microsoft SQL Server Management Studio“, die Dimensionstabellen über Fremdschlüsselbeziehungen mit den Faktentabellen zu verbinden. Für die Abbildung des Data Warehouse bei WESTFA wurde mit Hilfe des „Microsoft SQL Server Management Studio“ ein Datenbankdiagramm erzeugt, das die Tabellen und Beziehungen der Tabellen untereinander visualisiert. Über diese grafische Oberfläche ließen sich zunächst die Surrogatschlüssel in den Dimensionen als Primärschlüssel definieren. Dieses ist notwendig, da sich Fremdschlüssel aus einer Tabelle, im Data Warehouse in der Regel die Faktentabelle, immer auf den Primärschlüssel einer zu verbindenden Tabelle, hier die Dimensionen, beziehen müssen. Nachdem die Primärschlüssel definiert waren, konnten die Beziehungen durch einfaches Ziehen von Verbindungslinien innerhalb des Datenbankdiagramms erstellt werden. Abbildung 3-30 zeigt einen Ausschnitt des bei WESTFA erstellten Datenbankdiagramms mit den definierten Primärschlüssen in den Dimensionstabellen und den Beziehungen der Faktentabelle zu diesen. Abbildung 3-30: Detailausschnitt des Data Warehouse westfaDW von WESTFA 3 Data Preparation 55 Durch die Definition der Fremdschlüssel der Faktentabelle und den damit verbundenen Beziehungen zu den Dimensionen wird sichergestellt, dass die referentielle Integrität innerhalb des Data Warehouse gewahrt ist. „Die referentielle Integrität (Englisch referential integrity) einer relationalen Datenbank ist gewahrt, wenn für jeden ihrer Fremdschlüssel gilt: ! Alle Attributwerte des Fremdschlüssels sind ungleich NULL, oder alle Attributwerde des Fremdschlüsselns sind gleich NULL.[…] ! Für einen [..] Fremdschlüssel muss in der durch den Fremdschlüssel referenzierten Relation ein Tupel existieren, dessen Primärschlüssel identisch mit dem Fremdschlüssel ist.“ 30 Die folgende Abbildung 3-31 zeigt eine strukturelle Komplettübersicht des erstellten Data Warehouse. Deutlich zu erkennen ist die sich herauskristallisierende und namensgebende Schneeflocke des Snowflage-Schema. Abbildung 3-31: Aufbau des Data Warehouse "westfaDW" bei WESTFA 30 (Warner, 2007 S. 105) 56 3.5 Automatisierung der Aktualisierung des Data Warehouse 3.5 Automatisierung der Aktualisierung des Data Warehouse Ähnlich wie auch bei der Erstellung der Persistant Staging Area in Kapitel 3.2 wurden die gesamten Verarbeitungen zur Erstellung und Versorgung des nun existierenden Data Warehouse in einzelnen SSIS-Paketen eines Integration Services Projekt abgelegt. Analog zu der bereits in Kapitel 3.2.5 beschriebenen Vorgehensweise wurde auch hier für jedes SSIS-Paket ein Aufruf zur Ausführung innerhalb einer Batch-Datei angegeben. Diese wird ebenfalls über einen definierten Task jede Nacht ausgeführt und startet somit den ETL-Prozess. Durch die in diesem Kapitel beschriebenen Verarbeitungen wurde bei WESTFA ein Data Warehouse implementiert, das tagesaktuelle, dispositive Daten vorhält. Dieses kann, wie auch bereits die erstellte Persistant Staging Area, durch Abfragewerkzeuge bereits zur Geschäftsanalyse genutzt werden. Im Gegensatz zur Persistant Staging Area bietet das Data Warehouse jedoch betriebswirtschaftlich aufbereitete und intuitiv verständliche Daten, die aufgrund ihrer multidimensionalen Struktur komplexere Anfragen in kürzerer Zeit beantworten können. 4 Modeling 57 4 Modeling Die Phase des Modeling beschreibt die vierte Prozessphase des CRISP-Prozesses. In dieser werden Data Mining Strukturen entwickelt und auf ihre Verwendbarkeit hin getestet. Diese Modelle werden jedoch nur benötigt, wenn das Ziel tatsächlich „Data Mining“ ist. Im Rahmen der Implementierung eines BI-Gesamtansatzes bei WESTFA war das Ziel die Entwicklung eines auf OLAP basierenden Analysesystems. Demnach wurden im Rahmen der durchzuführenden Implementierung bei WESTFA in dieser Phase keine Mining-Strukturen entwickelt, sondern ein OLAP Cube. Die mit dem SQL Server gelieferte Entwicklungssoftware, das SQL Server Business Intelligence Development Studio, bietet eine eigene Entwicklungsumgebung für die Erstellung von multidimensionalen Datenstrukturen, deren Aufbereitung, Verarbeitung, physische Speicherung und schließlich auch für die Analyse des Datenmaterials. Unter diesen Service, der bei Microsoft „Analysis Services“ oder auch „SQL Server Analysis Services“ (SSAS) heißt fallen auch die Entwicklungsumgebungen für das Data Mining, die jedoch nicht Bestandteil dieser Arbeit sind. Zunächst wurde im SQL Server Business Intelligence Development Studio ein neues Analysis Services-Projekt erstellt. Dort musste als erstes eine neue Datenquelle angelegt werden. Jede Datenbank, die innerhalb dieses Projektes als Quelle für zu verarbeitende Daten genutzt werden soll, muss hier mit den entsprechenden Verbindungsparametern wie Server- und Datenbankname, Benutzername und Kennwort angelegt sein. Mit der Anlage des Data Warehouse wurde eine integrierte Datenbasis als Ausgangspunkt für die Erstellung eines Analysesystems geschaffen. Diese soll dem Analysis Services-Projekt einzig als Datenquelle dienen und wurde dementsprechend als neue Datenquelle definiert. 58 4.1 Definition einer Datenquellensicht 4.1 Definition einer Datenquellensicht Die Definition mindestens einer Datenquellensicht ist erforderlich, um im weiteren Verlauf eine multidimensionale Datenbank in Form eines Cubes erstellen zu können. Die Datenquellensicht beschreibt ein logisches Datenmodell basierend auf verknüpften „[…] Tabellen, Sichten und Abfragen aus einer oder mehreren Datenquellen [.]“ 31.Die Datenquellensicht ruft die Metadaten aller definierten Tabellen und deren Beziehungen aus den Quellsystemen ab und speichert diese. Sofern in den Quellsystemen bereits Primärschlüssel oder Fremdschlüsselbeziehungen definiert wurden, werden diese durch die Datenquellensicht ebenfalls automatisch erkannt und übernommen. Die Verwendungsmöglichkeit von mehreren unterschiedlichen Datenquellen erlaubt es, heterogene Datenquellen in einem homogenen Datenmodell darzustellen. Durch die Zwischenspeicherung der Metadaten aller in einer Datenquellensicht verwendeten Objekte wird eine Bearbeitung des Analysis Services-Projekt ermöglicht, auch wenn keine aktive Verbindung zu den definierten Quellsystemen besteht. Außerdem erlaubt die von den Quellsystemen unabhängige Speicherung der Datenquellensicht die Erweiterung und Änderung von darin definierten Objekten, ohne dass sich diese auf die Quellsysteme auswirken. Da bei WESTFA in Vorfeld bereits ein separates Data Warehouse erstellt wurde, bildet dieses für das Analysis Services-Projekt die Datenbasis. Über die bereits definierte Datenquelle als Verbindung zur Datenbank „westfaDW“ wurden die erstellten Tabellen für die Verwendung innerhalb der Datenquellensicht ausgewählt. Da die Definition von Primärschlüsseln und Fremdschlüsselattributen bereits im Data Warehouse erfolgt ist, wurden diese Informationen ebenfalls automatisch in die Datenquellensicht übernommen. In diesem Fall spiegelt die Datenquellensicht das bereits aus Kapitel 3.4.3 bekannte Datenbankdiagramm wieder. Einen Ausschnitt der Datenquellensicht zeigt Abbildung 4-1 auf der folgenden Seite. 31 (Corporation, 2008 S. Verwenden von Datenquellensichten) 4 Modeling 59 Abbildung 4-1: Ausschnitt der Datenquellensicht des Data Warehouse "westfaDW" 4.2 Erstellen eines Cubes Basierend auf der definierten Datenquellensicht können nun ein oder auch mehrere Cubes erstellt werden. Für die Erstellung und Bearbeitung von Cubes bietet das SQL Server Business Intelligence Development Studio einen in die Entwicklungsumgebung eingebetteten Cube-Designer. Dieser stellt alle benötigten Werkzeuge für die Erstellung von Dimensionen, Fakten, berechneten Werten, Unternehmenskennzahlen, etc. bereit. Wie folgende Definition zeigt, bilden Dimensionen und Fakten, im Folgenden Measures genannt, die wichtigsten Bestandteile eines Cubes. „Eine multidimensionale Datenmenge wird von zwei Faktoren bestimmt: ! Die Dimensionen […] ! Die Measures […]“ 32 Die folgenden Kapitel zeigen, wie ein Cube, basierend auf dem in den bisherigen Kapiteln erstellten Data Warehouse, bei WESTFA definiert und in einer Datenbank bereitgestellt wurde. 32 (Schrödl, 2006 S. 25) 60 4.2 Erstellen eines Cubes 4.2.1 Cube-Assistent Durch den Cube-Assistenten werden Schritt für Schritt alle nötigen Informationen zur Erstellung von Dimensionen, Measures, Measuregruppen und, wenn gewollt, auch zu einer Datenquellensicht. Die Ausführung des Cube-Assistenten und somit die Erstellung eines neuen Cubes setzt nicht voraus, dass eine entsprechende Datenquellensicht bereits vorhanden ist. Diese Option kann auf der ersten Seite des Cube-Assistenten gewählt werden, wie Abbildung 4-2 zeigt. Abbildung 4-2: Cube-Assistent - Verwendung einer Datenquellensicht Soll ein Cube ohne die Verwendung einer Datenquelle erstellt werden, werden im weiteren Verlauf des Cube-Assistenten lediglich die multidimensionalen Objekte erstellt und mit Fertigstellung des Cubes zusätzlich die für den erstellten Cube benötigte Datenquellensicht erzeugt. Diese Vorgehensweise lässt sich mit dem Top-Down Prinzip vergleichen. Zunächst wird das erwartete Ergebnis, in diesem Fall der Cube, erstellt, danach muss die untere Ebene, hier die Datenquelle, die entsprechenden Anforderungen zur Erfüllung des Gesamtergebnisses entsprechend angepasst werden. Umgekehrt, so wurde es auch bei WESTFA implementiert, entspricht das Vorgehen dem Bottom-Up Prinzip. Die Implementierung beginnt auf der untersten Ebene, also dem Data Warehouse, worauf dann der Cube als Endergebnis aufbaut. Dementsprechend wurde bei WESTFA die Erstellung eines Cubes mithilfe einer Datenquelle verwendet. Die Option zur automatischen Erstellung von Attributen und Hierarchien wurde bewusst nicht gewählt, da diese zu einem späteren Zeitpunkt manuell definiert werden sollen. 4 Modeling 61 Im zweiten Schritt musste dann die für den Cube zu verwendende Datenquellensicht gewählt werden. Da im Vorfeld nur eine Datenquellensicht definiert wurde, bildet diese die Grundlage für die weiteren Erstellungsschritte im Cube-Assistenten. Zunächst wurden die aus der Datenquellensicht verfügbaren Tabellen in Fakt- und Dimensionstabellen unterschieden. Während bei WESTFA die Abgrenzung von Fakt- und Dimensionstabellen bereits im Data Warehouse klar vollzogen wurde, lassen sich Tabellen jedoch auch als Fakt und Dimension gleichzeitig verwenden. Eine solche Verwendung von Tabellen muss an dieser Stelle ebenfalls angegeben werden. Eine besondere Rolle innerhalb jeder multidimensionalen Struktur kommt der Zeitdimension zu. In jedem Analysesystem lässt sich eine Dimension zur zeitlichen Einordnung von Fakten finden, da der Zeitdimension auch im Cube-Assistenten eine besondere Rolle zukommt. Zunächst musste jedoch die als Zeitdimension zu verwendende Tabelle angegeben werden. Bei WESTFA ist dieses die Tabelle dimZeit (Abbildung 4-3). Abbildung 4-3: Unterteilung der Tabellen aus der Datenquellensucht in Fakten und Dimensionen Wurde eine Tabelle für die Verwendung als Zeitdimension angegeben, wird diese im nächsten Schritt des Assistenten konfiguriert. Dabei werden die Attribute der angegebenen Zeitdimensionstabelle den durch die Analysis Services entsprechend vordefinierten Zeitattributen zugeordnet. Einen Ausschnitt aus der vorgenommenen Zuordnung für die bei WESTFA verwendete Dimensionstabelle zeigt Abbildung 4-4 auf Seite 62. 62 4.2 Erstellen eines Cubes Anhand dieser Zuordnungen erstellt der Assistent unabhängig davon, ob zu Beginn die automatische Erstellung von Hierarchien aktiviert wurde oder nicht, eine Hierarchie für die Zeitdimension. Zusätzlich erlaubt die Definition einer Zeitdimension die Verwendung von bestimmten, speziell auf den vorgegebenen Zeitattributen anzuwendende Funktionen. Die Verwendung dieser Funktionen wird in Kapitel 4.2.3.1 im Rahmen von berechneten Werten näher erläutert. Abbildung 4-4: Zuordnung von Zeittabellenspalten der Zeitdimension Im nächten Dialogschritt werden die durch den Cube-Assistenten aus den angegebenen Faktentabellen identifizierten Measures und die zugehörige Measuregruppe angezeigt. Die Gruppierung der Measures zu einer Measuregruppe erfolgt dabei nach den Faktentabellen. Hier können nichtbenötigte Measures, oder ganze Measuregruppen, deaktiviert werden, wodurch diese nicht in den Cube übernommen werden. Die Deaktivierung von Measures wurde bei WESTFA erforderlich, da der Cube-Assistent alle Attribute der Faktentabelle als Measures behandelt, die nicht als Fremdschlüssel verwendet werden. Wie Abbildung 4-5 aus Seite 63 zeigt, wurden der in der Datenbank künstlich angelegte Primärschlüssel der Faktentabelle UmsatzAbsatzTec und drei weitere Attribute, für die eine Verwendung als Fremdschlüsselattribut geplant, aber noch nicht implementiert wurde, aus der Verwendung als Measures herausgenommen. Zusätzlich können die Measures und die Measuregruppen an dieser Stelle umbenannt werden. Durch den Cube-Assistenten wird je Measuregruppe zusätzlich ein neues, nicht in der Faktentabelle vorhandenes Measure erzeugt. Das vorgeschlagene Measure beschreibt die Anzahl von Datensätzen einer Measuregruppe. Auch wenn dieses Measure nicht immer eine direkte Aussagekraft im Rahmen einer angestrebten Analyse hat, kann es trotzdem für später anzustellende Berechnungen sehr hilfreich sein. 4 Modeling 63 Abbildung 4-5: Auswahl und Benennung von Measures und Measuregruppen Nach den Measures werden im nächsten Schritt die Dimensionen konfiguriert. Aufgelistet werden durch den Cube-Assistenten wie in Abbildung 4-6 gezeigt alle als Dimensionstabelle gekennzeichneten Tabellen. Analog zu den Measures kann hier ausgewählt werden, welche Dimensionen und zugehörigen Dimensionsattribute Bestandteile des Cubes werden sollen. Allerdings müssen die Primärschlüsselattribute einer Dimension übernommen werden, wenn die jeweilige Dimension in den Cube integriert werden soll. Auch das Umbenennen der Dimensionsattribute und der Dimensionen selbst ist hier wieder möglich. Wurde zu Beginn des Cube-Assistenten die automatische Erstellung von Hierarchien ausgewählt, würde der Cube-Assistent an dieser Stelle neben der Gruppierung „Attribute“ zusätzlich die Gruppierung „Hierarchien“ anzeigen. In dieser werden durch den Cube-Assistenten automatisch erstellte Hierarchien angezeigt, die anhand der gegebenen Metadaten der Dimensionsattribute erkannt wurden. Da die automatisierte Erstellung von Hierarchien jedoch oftmals zu ungewollten Ergebnissen in Form von nicht schlüssigen oder unvollständigen Hierarchien führte, wurde diese Option, wie bereits zu Beginn beschrieben, für die Erstellung eines Cubes bei WESTFA deaktiviert. Als Folge müssen die gewünschten Hierarchien nach Abschluss des Assistenten manuell für jede Dimension definiert werden (siehe Kapitel 4.2.2.1). 64 4.2 Erstellen eines Cubes Abbildung 4-6: Bestimmung der Dimensionsstrukturen Mit dem Abschluss der Dimensionskonfiguration hat der Cube-Assistent alle benötigten Informationen zur Erstellung eines neuen Cubes erhalten. Nach Beendigung des Assistenten erstellt dieser den Cube und bildet die definierte multidimensionale Struktur innerhalb der Entwicklungsumgebung im BI-Studio ab. Abbildung 4-7 zeigt die gesamte Entwicklungsumgebung der Analysis Services zur Bearbeitung eines Cubes im BI-Studio. In der Mitte der Entwicklungsumgebung wird die dem Cube zugrundeliegende Datenquellensicht mit den einzelnen Tabellen und deren Beziehungen zueinander dargestellt. Die im Cube-Assistenten vorgenommene Unterteilung der Tabellen in Fakten und Dimensionen wird durch farbliche Hervorhebungen kenntlich gemacht. Am linken Rand werden die definierten Measuregruppen und Dimensionen zusätzlich aufgelistet, so dass die Cubestruktur sehr übersichtlich dargestellt wird. Der Projektmappenexplorer, dargestellt am rechten Bildschirmrand, erlaubt einen Überblick über das gesamte Analysis Services-Projekt. Die definierte, multidimensionale Struktur innerhalb des Cubedesigners beschreibt zu diesem Zeitpunkt einen Cube, der jedoch physisch noch nicht vorhanden ist. Erst durch die Verarbeitung der Cubestruktur wird der Cube physisch erstellt und steht nach der durchzuführenden Bereitstellung auch für Anfragen von Clients zur Verfügung. Diese Vorgänge werden in Kapitel 4.3 beschrieben. 4 Modeling 65 Die erstellte Cubestruktur kann innerhalb des Cubedesigners auf den am oberen Rand dargestellten Registrierkarten noch detaillierter bearbeitet werden. Abbildung 4-7: Mit dem Cube-Assistenten definierter Cube in der Entwicklungsumgebung Die folgenden Kapitel zeigen, wie die durch den Cube-Assistenten erstellte Cubestruktur bei WESTFA erweitert wurde. 4.2.2 Dimensionen Die Erstellung der Dimensionen und die Auswahl von benötigten Dimensionsattributen wurden bereits mithilfe des Cube-Assistenten vorgenommen. Aufgrund dessen, dass die automatische Erstellung von Dimensionshierarchien im Cube-Assistenten deaktiviert wurde, mussten die Hierarchien in den jeweiligen Dimensionen manuell definiert werden. Die Bearbeitung von Dimensionen erfolgt über den Dimensions-Designer. Dieser bietet zunächst eine Auflistung der verfügbaren Dimensionsattribute und die Darstellung der Datenstruktur einer Dimension in Form von den Tabellen und deren Beziehungen zueinander, aus denen die Dimension besteht. Neben der Möglichkeit, Hierarchien zu definieren können, Übersetzungen für die einzelnen Dimensionsattribute angegeben werden, und die definierte Dimension kann über die Registrierkarte „Browser“ betrachtet werden. 66 4.2 Erstellen eines Cubes 4.2.2.1 Hierarchien Hierarchien bilden einen wesentlichen Bestandteil der Organisation von Dimensionsattributen und deren Ausprägungen. Durch eine hierarchische Darstellung von Daten einer Dimension ergibt sich die Möglichkeit, Measures auf unterschiedlichen Verdichtungsstufen darzustellen. Die Navigation durch eine Dimensionshierarchie wird „Drill-down“ genannt, wenn von einer aggregierten Hierarchieebene auf die darunter liegende Ebene, mit einem höheren Detailierungsgrad gewechselt wird. Die gegenteilige Operation, wenn von einer Hierarchieebene auf die darüberliegende, stärker verdichtete Ebene gewechselt wird, nennt man „Roll-up“. Zur Erstellung einer neuen Hierarchie für die Unternehmensdimension bei WESTFA wurde im Dimensions-Designer zunächst das Dimensionsattribut Klassifikation, das die oberste Hierarchieebene bilden soll, in die Arbeitsfläche für „Hierarchien und Ebenen“ gezogen. Dadurch wurde eine neue Hierarchie erstellt, die bisher aus nur einer Ebene bestand. Die zweite Hierarchieebene wurde aus dem Dimensionsattribut Nummer Name gebildet. Dieses wurde in die erstellte Hierarchie gezogen und unter dem Klassifikation-Attribut angeordnet. Auf die gleiche Weise wurde eine zweite Hierarchie mit den Ebenen Typ und Nummer Name erstellt. Um eine Abhängigkeit zwischen den Hierarchieebenen herzustellen, müssen Beziehungen zwischen den Attributen innerhalb einen Hierarchie hergestellt werden. Diese wurden dadurch erstellt, dass dem in der Hierarchie unterem Attribut sein übergeordnetes Attribut mitgeteilt wurde. Durch „[…]die Definition von Beziehungen zwischen den Attributen kann die Leistung gesteigert werden, da Analysis Services diese Beziehungen zum Definieren von Aggregationen verwendet.“ 33 Den Dimensions-Designer und die beiden Hierarchien für die Unternehmensdimension zeigt Abbildung 4-8 auf Seite 67. 33 (Corporation, 2008 S. Definieren und Konfigurieren einer benutzerdefinierten Hierarchie) 4 Modeling 67 Abbildung 4-8: Dimensions-Designer mit zwei Hierarchien Nach diesem Vorgehen wurden Hierarchien in den jeweiligen Dimensionen erstellt. Die Erstellung von Hierarchien entspricht der Aggregationsschicht innerhalb der Transformationsphase eines ETL-Prozesses, die ursprünglich für die Aggregation von Daten auf verschiedenen Verdichtungsstufen vorgesehen ist. 4.2.3 Measures Den Mittelpunkt einer multidimensionalen Datenstruktur, wie sie auch dem bei WESTFA erstellten Cube zugrunde liegt, bilden die Faktentabellen mit ihrem auswertbaren Zahlenmaterial. Die einzelnen Measures einer Faktentabelle werden im Cubedesigner zusammengefasst und in einer Measuregruppe dargestellt. Diese bilden die Grundlage an auszuwertendem Zahlenmaterial innerhalb einer Cubestruktur und können bereits für Analysen genutzt werden. 68 4.2 Erstellen eines Cubes 4.2.3.1 Berechnete Werte Eine Erweiterung der vorhandenen Measures und damit des für Analysen verfügbaren Zahlenmaterials bilden die so genannten „berechnete Werte“. Sie lassen sich über die Registrierkarte „Berechnungen“ im Cubedesigner erstellen und bilden Berechnungen, basierend auf bereits vorhandenen Measures. Diese berechneten Werte stehen dann innerhalb des Cubes als zusätzliche Measures für Analysen zur Verfügung. Für die Berechnung von neuen Measures ist es außerdem möglich, die Berechnung in Abhängigkeit von Dimensionshierarchien zu definieren. Ein in Analysen häufig angestellter Vergleich ist der eines aktuellen Wertes mit dem des Vorjahres. Dieser Vergleichswert lässt sich basierend auf einem vorhandenen Measure in Abhängigkeit zu einem Dimensionsattribut oder sogar einer Dimensionshierarchie berechnen. Abbildung 4-9 zeigt die Definition des berechneten Wertes „Positionswert Vorjahr“ in Abhängigkeit einer Hierarchie der Zeitdimension bei WESTFA. Dieser Wert gibt den Vorjahreswert des in der Faktentabelle vorhandenen Measure „Positionswert“ in Abhängigkeit der gewählten Zeit-Hierarchieebene aus. Die dafür genutzte, durch das BI-Studio bereitgestellte Funktion PARALLELPERIODE kann nur auf Attribute angewandt werden, denen im Rahmen der Bestimmung einer Zeitdimension eine Zeitfunktionalität zugeordnet wurde. In der Verwendungsmöglichkeit dieser Funktionen begründet sich die explizite Definition einer Zeitdimension innerhalb des Cube-Assistenten. Abbildung 4-9: Definition eines berechneten Wertes in Abhängigkeit einer Hierarchie der Zeitdimension 4 Modeling 69 4.2.3.2 Kennzahlen (KPIs) „Die Idee der KPIs ist, mittels bestimmter Kennzahlen eine quantifizierbare Größe für einen bestimmten Unternehmensbereich zu ermitteln.“ 34 Häufiger Einsatzbereich von KPIs ist die Darstellung von Trends, Abweichungen und Erreichungsgraden von Measures. Unterstützt werden kann das gelieferte Zahlenmaterial zusätzlich durch optische Signale, die den aktuellen Stand eines KPIs signalisieren. Die bekannteste Form dieser Darstellungsart von betrieblichen Kennzahlen ist die „Ampelfunktion“. Über die Registerkarte „KPIs“ können Key Performance Indicators definiert werden. Durch die Angabe eines Wert- und eines Zielausdrucks, für deren Berechnung unterschiedliche Funktionen angeboten werden, können Status- und Trendberechnungen erfolgen. Neben der Ausgabe der einzelnen Berechnungen des KPIs lassen sich die Ergebnisse in Form von verschiedenen, optischen Indikatoren darstellen. Die zusätzliche optische Darstellungsmöglichkeit von KPIs soll den Betrachter einer Analyse in die Lage versetzen, in großen Datenmengen einen schnelleren Überblick zu gewinnen. Die Definition von KPIs ist bei WESTFA vorgesehen, jedoch zum jetzigen Zeitpunkt der Implementierung noch nicht realisiert worden. Die Beziehungen zwischen den Dimensionen und den Measuregruppen macht die Dimensionsverwendungsmatrix deutlich (Abbildung 4-10 auf Seite 70). Anhand dieser Matrix lässt sich erkennen, nach welchen Kriterien sich eine Measuregruppe analysieren lässt. Kann die Datenquellensicht die Beziehung zwischen einer Fakten- und einer Dimensionstabelle nicht automatisch erkennen, muss die Beziehung der Dimensionstabelle zu der Measuregruppe in der Dimensionsverwendung manuell definiert werden. Dieses wird zum Beispiel nötig, wenn die Fremdschlüsselbeziehungen zwischen den Tabellen innerhalb einer Datenquelle nicht definiert wurden. 34 (Schrödl, 2006 S. 302) 70 4.3 Bereitstellung und Verarbeitung des Cubes Abbildung 4-10: Dimensionsverwendungsmatrix des Cube-Designers 4.3 Bereitstellung und Verarbeitung des Cubes Die bis zu diesem Zeitpunkt im Cube-Designer erstellte logische Struktur des Cubes wurde bisher nur lokal gespeichert. Um den Cube für die anstehende Analyse bereitzustellen muss die Cubestruktur zunächst auf den OLAP Server des Microsoft SQL Servers, die Serverkomponente der Analysis Services, erstellt werden. Dazu müssen in den Projekteigenschaften der Zielserver und die Zieldatenbank für den zu erstellenden Cube angegeben werden. Wurde die Cubestruktur auf dem Server erstellt, kann der Cube verarbeitet werden. Im Rahmen der Verarbeitung des Cubes erfolgt zunächst ein Abgleich der lokalen mit der auf dem Zielserver gespeicherten Cubestruktur. Bei Abweichungen wird vor der eigentlichen Verarbeitung die aktuelle Cubestruktur auf den Server übertragen. Danach wird mit der Verarbeitung begonnen. Zur Speicherung von Cubes lassen sich die drei unterschiedliche Speichermodi multidimensionales OLAP (MOLAP), Relationales OLAP (ROLAP) und Hybrides OLAP (HOLAP) unterscheiden. Die Auswahl des zu verwendenden Speichermodus hat unterschiedliche Auswirkungen vor allem auf die Größe eines Cubes und die Geschwindigkeit, mit der Clientanfragen beantwortet werden können. 4 Modeling 71 4.3.1 MOLAP Bei der Verwendung von multidimensionalem OLAP werden alle Quelldaten und Aggregationen in einer multidimensionalen Struktur gespeichert. Diese redundante Speicherung der Daten ermöglicht die maximale Geschwindigkeit bei der Beantwortung von Clientanfragen, da alle nötigen Daten im Cube selbst vorhanden sind. Der Cube kann dadurch ohne Zugriff auf die Quellsysteme alle Anfragen beantworten. Die schnellen Antwortzeiten dieses Speichermodus gehen jedoch aufgrund der redundanten Datenspeicherung auf Kosten des Speicherplatzes. Außerdem muss dafür gesorgt werden, dass, wenn sich die Quelldaten ändern, der Cube neu verarbeitet wird, damit die Änderungen in den Cube integriert werden können. 4.3.2 ROLAP Relationales OLAP speichert die Daten und die Aggregationen in einer relationalen Datenbank. Auf dem OLAP Server wird lediglich die Cubestruktur hinterlegt, alle Anfragen werden jedoch von der relationalen Datenbank beantwortet. Durch die Speicherung aller Daten des Cubes in relationaler Form ist die ROLAP Speichermethode den Speicherplatz betreffend die effektivste, jedoch bei der Beantwortungszeit von Anfragen die langsamste der drei Methoden. 4.3.3 HOLAP HOLAP bildet eine Kombination aus den beiden Speichermodi MOLAP und ROLAP. Dabei werden die Aggregationen in einer multidimensionalen Struktur gespeichert. Die Detaildaten werden wie beim ROLAP in einer relationalen Datenbank gespeichert. Bei Anfragen auf aggregierte Daten kann HOLAP genau so schnell antworten wie MOLAP, braucht jedoch weniger Speicherplatz. Bei Anfragen über Detaildaten antwortet HOLAP langsamer als MOLAP, jedoch immer noch schneller als ROLAP. Der zu verwendende Speichermodus für einen Cube kann für jede Partition, eine Partition entspricht einer Faktentabelle mit allen verbundenen Dimensionstabellen, separat eingestellt werden. Diese separate Auswahlmöglichkeit erlaubt eine zielgerichtete Konfiguration, den gestellten Anforderungen entsprechend. Bei WESTFA wurde für alle Partitionen die MOLAP Speichermethode verwendet, da häufig Anfragen bis auf die unterste Detailebene zu erwarten sind und durch MOLAP die bestmögliche Antwortzeit gewährleistet wird. Zusätzlich wurde für die im Vorfeld der Cubeerstellung zu ermittelnden 72 4.3 Bereitstellung und Verarbeitung des Cubes Aggregationen, pro Partition ein Richtwert von 60% Leistungsgewinn eingestellt, wie Abbildung 4-11 zeigt. Abbildung 4-11: Bestimmung der Speichermethode MOLAP für eine Cubepartition Abhängig von dem gewählten Speichermodus eins Cubes ist seine Verarbeitungszeit. Wird wie bei WESTFA MOLAP verwendet, müssen alle Daten aus den Quellsystemen in den Cube geladen werden. Wurde ROLAP als Speichermodus gewählt, werden keine Daten, sondern nur die Cubestruktur auf den Serverübertragen. Ist der Verarbeitungsprozess erfolgreich beendet, kann direkt aus dem Cube-Designer über die Registerkarte „Browser“ auf den Cube zugegriffen werden. Aber auch der externe Zugriff über die Serverkomponente der Analysis Services auf den Cube, sofern in den Sicherheitsrichtlinien erlaubt, kann nun erfolgen. Mögliche Zugriffsmöglichkeiten bieten das SQL Server Management Studio oder MS Excel 2007. Für eine regelmäßige und zeitgesteuerte Aktualisierung der Daten im Cube wurde der im Rahmen der Data Preparation Phase erstellte ETL-Prozess um ein zusätzliches Paket erweitert. Dieses Paket wird nach dem Ladevorgang des Data Warehouse ausgeführt. Den Inhalt des Paketes stellt Abbildung 4-12 dar. Zunächst wird ein Task ausgeführt, der die Verarbeitung des Cubes und somit die Aktualisierung vornimmt. Nach der Verarbeitung des Cubes wird ein weiterer Task ausgeführt, der das Logfile für die westfaDW Datenbank verkleinert. In diesem Logfile werden alle ausgeführten Aktionen, betreffend die westfaDW Datenbank, gespeichert. Während der Ausführung des ETL-Prozesses vergrößert sich dieses Logfile um zusätzlich bis zu 20 Gigabyte. Um hier möglichen Problemen den Speicherplatz betreffend vorzubeugen, wird das File nach jeder Ausführung des ETLProzesses auf eine Größe von zehn Megabyte reduziert. Zum Abschluss der Paketausführung wird eine Erfolgsmail versendet. Abbildung 4-12: automatisierte Verarbeitung des Cube 5 Evaluation 73 5 Evaluation Mit dem Abschluss der Prozessphase des „Modeling“ wurde ein auf OLAP basierendes Analysesystem in Form eines Cubes erstellt und für den externen Zugriff bereitgestellt. Die fünfte Prozessphase des CRISP-Prozesses, die Evaluation, sieht vor, das erstellte Ergebnis mit den zu Beginn des Projektes ermittelten Anforderungen abzugleichen und auf die korrekte Funktionsweise hin zu überprüfen. 5.1 Evaluation der Funktionen und Daten Um das bei WESTFA durch den Cube bereitgestellte Analysesystem auf die Erfüllung der geforderten Funktionalitäten zu überprüfen, wurde die während der Informationsbedarfsanalyse erstellte Dimensionsmatrix 35 als Referenz betrachtet. Die Dimensionsmatrix beschreibt die Anforderungen der interviewten Mitarbeiter bei WESTFA sowohl in Bezug auf die auszuwertenden Zahlen als auch auf die Möglichkeiten von deren Darstellung. 35 (Claßen, 2008 S. 50) 74 5.1 Evaluation der Funktionen und Daten Abbildung 5-1: Aus den Anforderungen der Informationsbedarfsanalyse erstellte Dimensionsmatrix Die bereits vorhandene Dimensionsmatrix wurde im Rahmen der Evaluation um zusätzliche, nicht explizit geforderte Möglichkeiten der Analyse erweitert, beziehungsweise bisher nicht implementierte Möglichkeiten wurden kenntlich gemacht. Abbildung 5-2 zeigt auf der folgenden Seite die erweiterte Dimensionsmatrix, die den aktuellen Stand der implementierten Analysemöglichkeiten zeigt. In Grau hervorgehoben sind die nicht implementierten und in Grün die nicht geforderten Analysemöglichkeiten. Der Grund dafür, dass die offenen Posten der Kunden nicht im erstellten Cube verfügbar sind, ist, dass diese aus einem vierten Quellsystem hätten extrahiert werden müssen. Die Konzentration während der Implementierung sollte aber laut den Anforderungen des Vertriebs von WESTFA auf die Analyse der TEC und Kolumbus-Daten gelegt werden. 5 Evaluation 75 Abbildung 5-2: Erweiterte Dimensionsmatrix Um die Qualität der im Cube befindlichen Daten und somit die Qualität von durchgeführten Analysen zu sichern, wurde auf Basis des Cubes eine Auswertung über Umsätze, Absätze und den Auftragseingang des Geschäftsfelds WESTFATEC erstellt. Diese Auswertung wurde einer bei WESTFA bestehenden und seit vielen Jahren eingesetzten Analyse gegenübergestellt. Die gelieferten Werte wurden verschiedenen Verdichtungsstufen und mit unterschiedlichen Filterkriterien verglichen. Der durchgeführte Vergleich lieferte für jede Stichprobe Werte, die bis auf den Centbetrag identisch waren. Dieser Vergleich wurde zusätzlich über einen Zeitraum von zwei Wochen täglich wiederholt, um die Gefahr einer zufälligen Übereinstimmung vorzubeugen. Während dieser Testphase konnte zu keinem Zeitpunkt eine Differenz zwischen den verglichenen Werten festgestellt werden. Um die aus Kolumbus stammenden Vertriebsdaten wie die Anzahl von Besuchen, die geplante Anzahl von Besuchen oder die Potenzialpunkte zu evaluieren, wurden nach dem Stichprobenverfahren Analysen der einzelnen Werte durchgeführt und diese direkt mit den Ist-Daten in Kolumbus abgeglichen. Auch hier konnten keine Abweichungen festgestellt werden. 76 5.2 Evaluation Informationsbeschaffung 5.2 Evaluation Informationsbeschaffung Die Evaluation des erstellten Analysesystems im Hinblick auf den funktionalen Umfang und der Richtigkeit der Daten konnte aufgrund der positiven Testergebnisse mit Erfolg abgeschlossen werden. Ein zusätzliches Ziel des Business Intelligence Ansatzes bei WESTFA war es jedoch auch, den Prozess der Beschaffung von analytischen Informationen für das Management zu verbessern. Dabei sollte vor allem die Vertriebssteuerung durch einen ersten Implementierungsansatz unterstützt werden. In Abbildung 5-3 wird der aktuelle Prozess zur Informationsbeschaffung für eine Vertriebssteuerung bei WESTFA grob dargestellt. Abbildung 5-3: Aktueller Prozess zur Informationsbeschaffung für eine Vertriebssteuerung Zunächst muss sich der Vertriebsleiter entscheiden, welche Daten er betrachten möchte. Umsatz- und Absatzbetrachtungen für das Geschäftsfeld WESTFATEC werden durch MS Excel in einer vordefinierten Pivot-Tabelle bereitgestellt. Informationen über Besuchshäufigkeiten und deren Gründe werden durch Kolumbus in Form von flachen Listen bereitgestellt. In Kolumbus muss zusätzlich aus einer Liste von ca. 20 Auswertungen die für die gesuchte Information richtige ausgewählt und geöffnet werden. 5 Evaluation 77 Durch die integrierte Datenbasis des Cubes ist dieser in der Lage, sowohl die Vertriebsdaten aus Kolumbus als auch die Umsätze und Absätze aus dem Geschäftsfeld WESTFATEC darzustellen. Dadurch konnte der Prozess der Informationsbeschaffung vereinfacht, verbessert und vor allem für den Anwender wesentlich schneller gemacht werden. Den sich daraus ergebenden neuen Prozess zur Informationsbeschaffung der gleichen Informationen wie im ersten Prozessbeispiel zeigt Abbildung 5-4 Abbildung 5-4: Durch das Analysesystem verbesserter Prozess zur Informationsbeschaffung Rückwirkend betrachtet kann die Prozessphase der Data Preparation, also die der Implementierung eines ETL-Prozesses, als die aufwändigste, die am meisten Zeit beanspruchende, als Phase mit den meisten Iterationen des gesamten CRISPProzessverlaufs und damit der Implementierung eines BI-Gesamtansatzes bei WESTFA, beschrieben werden. In dieser Phase wurde die Basis für die resultierende „Business Intelligence“ gelegt. Die Qualität des erstellten OLAP-Analysesystems ist abhängig von den durch das Data Warehouse bereitgestellten Daten. Somit muss der Fokus, vor allem bei einer so heterogenen Verteilung der Geschäftsdaten wie bei WESTFA, auf die Phase der Data Preparation und somit auf die Extraktion, Transformation und die integrierte Bereitstellung der Geschäftsdaten gelegt werden. 78 6.1 Analysen mit MS Excel 2007 6 Deployment Mit der sechsten CRISP-Prozessphase, dem Deployment, erfolgt nach Definition des CRISP-Prozesses die Auslieferung und damit der Übergang in den produktiven Einsatz des im bisherigen Prozessverlauf implementierten Analysesystems. Bei WESTFA wurde der abschließende Schritt, das bestehende Analysesystem in Form des Cubes an die Adressaten in Form des Managements von WESTFA auszuliefern, noch nicht vollzogen. Zum aktuellen Zeitpunkt wurde der Zugriff auf den Cube lediglich ausgewählten Anwendern mit entsprechenden Kenntnissen der Daten und im Umgang mit den Analysis Services ermöglicht. Für eine Auslieferung von vordefinierten Analysen und deren Einbindung in ein Management-Cockpit gibt es jedoch verschiedene für WESTFA denkbare Alternativen. 6.1 Analysen mit MS Excel 2007 Die am einfachsten zu implementierende Auslieferung könnte in Form von vordefinierten Pivot-Tabellen in MS Excel 2007 erfolgen. Excel 2007 bietet eine separate Schnittstelle zu den Analysis Services des SQL Server an, um diese als Quelle für Analysen zu nutzen. Geforderte Analysen könnten bei WESTFA durch im Umgang mit Excel erfahrene Mitarbeiter erstellt und über eine Verzeichnisstruktur mit lesendem Zugriff an die Adressaten verteilt werden. Zusätzlich kann Excel 2007 als Werkzeug für Ad-hoc Abfragen genutzt werden. Excel bietet den Anwendern ein bekanntes Arbeitsumfeld und ist intuitiv bedienbar. Außerdem ist bei WESTFA bereits jeder Arbeitsplatz mit Excel ausgestattet, was eine Verteilung von Analysen unproblematisch machen würde. Nachteilig bei der Auslieferung von Analysen über Excel sind die mangelhafte Vergabe von Benutzerrechten und der Zugriff auf einzelne Dateien über das Filesystem. Diese Art der Bereitstellung von Unternehmensanalysen widerspräche dem Gedanken einer zentralen Portallösung, die die Rechteverwaltung übernimmt und einen Einstiegspunkt in die Unternehmensanalyse bieten soll. Jedoch ist Excel sehr gut geeignet, um Ad-hoc Analysen durchzuführen. Aufgrund der hervorragenden Integration der Microsoftprodukte ist es auch für unerfahrene 6 Deployment 79 Anwender in kurzer Zeit erlernbar, mit Excel Anfragen an das Analysesystem zu stellen. 6.2 Separate Frontendwerkzeuge Eine Alternative zu MS Excel bestünde in der Verwendung von Frontendwerkzeugen, welche auf die Erstellung von komplexen Analysen und den Umgang mit großen Datenmengen ausgelegt sind. Viele der Anbieter von Frontendwerkzeugen unterstützen außerdem die Erstellung von Portallösungen. Für eine Auslieferung über eine separate Anwendung müsste jedoch eine Produktauswahl getroffen, ein Produkt angeschafft und eingerichtet werden. Außerdem müssten Mitarbeiter bei WESTFA in dem Umgang des neuen Produktes geschult werden. Somit würde ein Zeitverlust und zusätzliche Kosten entstehen. 6.3 Reporting Services des SQL Servers Der SQL Server bringt eine separate Serverkomponente zur Bereitstellung und eine eigene Entwicklungsumgebung zur Erstellung von Auswertungen mit. Diese werden unter dem Namen Reporting Services zusammengefasst. Mit den Reporting Services lassen sich sowohl statische Listen als auch komplexe Analysen erstellen und über den Report Server webbasierend bereitstellen. Die Reporting Services bilden einen Mittelweg zwischen dem Spagat der starren und schlecht verteilbaren Excel-Lösung und einer neu einzuführenden, separat zu lizensierenden Portalanwendung. Daher besteht bei WESTFA die Absicht, Analysen und Auswertungen mithilfe der Reporting Services zu entwickeln und in einem ersten Schritt über den Reportserver des SQL Servers bereitzustellen. In einem zweiten Schritt wird geplant, den SharePoint Portal Server von Microsoft bei WESTFA einzuführen und die mit den Reporting Services erstellten Auswertungen dort zu integrieren. 80 7.1 Zusammenfassung 7 Abschluss 7.1 Zusammenfassung Für die Implementierung eines BI-Gesamtansatzes wurde bei WESTFA der bereits lizensierte Microsoft SQL Server 2005 eingesetzt. Dieser konnte mit seinem Datenbankmodul, den Integration Services, den Analysis Services und abschließend auch mit den Reporting Services passende und vor allem integrierte Werkzeuge für die Erstellung der einzelnen Komponenten eines BI-Gesamtansatzes zur Verfügung stellen. Im ersten Schritt wurde durch die Erstellung mehrerer Integration Services-Pakete eine Extraktion der Daten aus den drei Quellsystemen von WESTFA vorgenommen und diese unverändert in eine in dem Datenbankmodul erstellte Persistant Staging Area geladen. Somit konnte diese im weiteren Projektverlauf als homogene Datenquelle für die Implementierung eines ETL-Prozesses genutzt werden. Der Schwerpunkt des ETL-Prozesses liegt auf der Transformation der extrahierten, operativen Daten in dispositives Datenmaterial, das in eine dimensionale Datenstruktur eines neu erstellten Data Warehouse geladen wird. Aufbauend auf dem Data Warehouse wurde mit den Analysis Services ein auf OLAP basierendes Analysesystem in Form eines Cubes erstellt, das über die Serverkomponente der Analysis Services für Anfragen von Clients bereitgestellt wurde. Über unterschiedliche Abfragewerkzeuge kann der Cube bereits für die Analyse herangezogen werden. Die Implementierung eines Frontends in Form einer Portallösung das Zugriff auf unterschiedliche, vordefinierte Analysen bietet, wurde bei WESTFA bisher nicht vorgenommen. 7 Abschluss 81 7.2 Fazit Die bereits im Rahmen des Business- und des Data Understanding festgestellte Problematik der Verteilung der geschäftsrelevanten Daten von WESTFA auf zwei, durch das separat eingesetzte CRM-System sogar auf drei operative Systeme hat sich auch während der Implementierung des BI-Gesamtansatzes als Hürde herausgestellt. Diese konnte jedoch über die Zwischenspeicherung der Daten in einer Persistant Staging Area umgangen werden. Die Implementierung des ETL-Prozesses zur Datentransformation hat gezeigt, warum der als Grundlage für dieses Projekt dienende CRISP-Prozess zu den iterativen Vorgehensmodellen gezählt wird. Durch immer wieder neu auftretende Probleme mit unvorhergesehenen oder fehlenden Daten musste eine permanente Iteration der Phasen Business Understanding, Data Understanding, Data Preparation und Modeling vorgenommen werden, um das gewünschte Ergebnis zu erreichen. Am Ende konnte ein vollautomatisierter Prozess erstellt werden, der tagesaktuell die Daten aus den Quellsystemen extrahiert, diese transformiert und in das Data Warehouse lädt. Anschließend werden diese Daten für komplexe Analysen mit kurzen Antwortzeiten in einem Analysesystem, dargestellt als Cube mit einer multidimensionalen Datenstruktur, bereitgestellt. Dieses eine Analysesystem erlaubt mit wenigen Klicks Auswertungen, für die bei WESTFA bisher mehrere ExcelTabellen und weitere Mengen an statischen Listen geöffnet werden mussten. Letztendlich hat die Implementierung eines BI-Gesamtansatzes bei WESTFA gezeigt, dass Business Intelligence mehr ist als Datenextraktion, Datentransformation, Datenladen und Datenbereitstellung in Analyse- und Portalsysteme. Im Rahmen des Business Intelligence Projektes bei WESTFA werden zusätzlich Geschäftsprozesse hinterfragt und angepasst, Datenbereinigungen der Quellsysteme initiiert und Mitarbeiter für den richtigen Umgang mit Daten und Informationen sensibilisiert. 82 7.3 Ausblick 7.3 Ausblick Im weiteren Projektverlauf sollen bei WESTFA der SharePoint Portal Server eingesetzt und die Reporting Services des SQL Servers 2005 integriert werden. Somit soll eine Portalanwendung implementiert werden, über die dem Anwender Auswertungen, Analysen und Listen zur Verfügung gestellt werden können. Neben der Entwicklung eines Frontends ist die Integration des Geschäftsfeldes WESTFAGAS in den ETL-Prozess und in das Data Warehouse vorgesehen. Bei der Größe des Cubes, die mit dieser Integration erreicht werden würde, lässt sich zusätzlich die Frage nach der Implementierung von Data Marts stellen. Ein Business Intelligence Projekt lässt sich nicht wie ein klassisches Projekt nach dem Erreichen des definierten Ziels abschließen. Vielmehr beginnt nach dem Abschluss der letzten Prozessphase eine neue Iteration durch den gesamten Implementierungsprozess. Zielsetzungen können dabei die Erschließung neuer interner oder externer Datenquellen sowie die Anpassung des BI-Gesamtansatzes an neue Anforderungen, die durch geschäftsinterne oder am Markt entstandene Veränderungen gegeben werden, sein. Eidesstattliche Erklärung 83 Eidesstattliche Erklärung Gemäß § 26 (1) der DPO erkläre ich an Eides statt, dass ich die vorliegende Arbeit selbstständig angefertigt habe. Ich habe mich keiner fremden Hilfe bedient und keine anderen, als die angegebenen Quellen und Hilfsmittel benutzt. Alle Stellen, die wörtlich oder sinngemäß veröffentlichten oder nicht veröffentlichten Schriften und anderen Quellen entnommen sind, habe ich als solche kenntlich gemacht. Diese Arbeit hat in gleicher oder ähnlicher Form noch keiner Prüfungsbehörde vorgelegen. Dortmund, 02.03.2009 ___________________________ Erklärung Mir ist bekannt, dass nach § 156 StGB bzw. § 163 StGB eine falsche Versicherung an Eides Statt bzw. eine fahrlässige falsche Versicherung an Eides Statt mit Freiheitsstrafe bis zu drei Jahren bzw. bis zu einem Jahr oder mit Geldstrafe bestraft werden kann. Dortmund, 02.03.2009 ___________________________ Abbildungsverzeichnis Abbildungsverzeichnis Abbildung 2-1: Magic Quadrant for Business Intelligence Platforms, 2008............................ 4 Abbildung 2-2: Beziehungen zwischen den Komponenten des SQL Server 2005 ................... 6 Abbildung 3-1: Aktivitäten eines ETL-Prozesses und der Phase Data Preparation ................. 9 Abbildung 3-2: Datenfluss zur Extraktion von Daten aus Kolumbus ..................................... 13 Abbildung 3-3: Verbindungsmanager zur Informix-Datenbank von megaWWS................... 14 Abbildung 3-4: Datenfluss zur Extraktion von Daten aus megaWWS ................................... 15 Abbildung 3-5: Entfernen von Leerzeichen in einem separaten Task des Datenflusses ....... 15 Abbildung 3-6: Datenfluss zur Extraktion von Daten aus V_Olga ......................................... 16 Abbildung 3-7: Erweitere Konfiguration eines Verbindungsmanagers für Dateien mit flacher Datenstruktur ................................................................................................................. 17 Abbildung 3-8: Datenfluss zur Extraktion von Daten mit Fehlerbehandlung ........................ 18 Abbildung 3-9: SSIS-Pakete für die Extraktion ....................................................................... 19 Abbildung 3-10: Geplanter Task zur Ausführung der definierten Batch-Datei ..................... 20 Abbildung 3-11: Der allgemeine Transformationsprozess .................................................... 21 Abbildung 3-12: Einteilung von Mängeln in drei Klassen ...................................................... 23 Abbildung 3-13: Filterung semantischer Mängel mittels SQL-Anweisung ............................ 24 Abbildung 3-14: Ausschnitt der Kundentabelle in megaWWS .............................................. 27 Abbildung 3-15: Ausschnitt der Unternehmenstabelle von Kolumbus ................................. 27 Abbildung 3-16: Vereinheitlichung von Unternehmensdaten aus megaWWS und Kolumbus ........................................................................................................................................ 28 Abbildung 3-17: Harmonisierung von Unternehmensdaten ................................................. 28 Abbildung 3-18: Bisher bei WESTFA implementierter Aufbau des ETL-Prozesses ................ 31 Abbildung 3-19: Ole DB-Ziel: Durch das BI-Studio generierte SQL-Anweisung zum erstellen einer neuen Dimensionstabelle ..................................................................................... 34 Abbildung 3-20: Bearbeitete SQL-Anweisung zum erstellen einer Dimensionstabelle ........ 35 Abbildung 3-21: SCD Assistent: Zuordnung von Datenflussattributen zu den Dimensionsattributen .................................................................................................... 41 Abbildung 3-22: SCD Assistent: Festlegung von Änderungstypen für die Dimensionsattribute ........................................................................................................................................ 42 Abbildung 3-23: SCD Assistent: Kennzeichnung des aktuellen Datensatzes bei SCD Typ 2 .. 43 Abbildung 3-24: Implementierung einer Slowly Changing Dimension Typ 2 bei WESTFA .... 44 Abbildung 3-25: Verweistabelle für die Suche nach Surrogatschlüsseln .............................. 47 Abbildung 3-26: Verknüpfung und Suchspalte für die Suche nach Surrogatschlüsseln ........ 48 Abbildung 3-27: Erweiterte Manipulationen der Suche nach Surrogatschlüsseln................ 49 Abbildung 3-28: Lookup des Surrogatschlüssels einer SCD Typ2 .......................................... 53 Abbildung 3-29: Ladeprozess einer Faktentabelle ................................................................ 53 Abbildung 3-30: Detailausschnitt des Data Warehouse westfaDW von WESTFA ................ 54 Abbildung 3-31: Aufbau des Data Warehouse "westfaDW" bei WESTFA ............................. 55 Abbildung 4-1: Ausschnitt der Datenquellensicht des Data Warehouse "westfaDW" ......... 59 Abbildung 4-2: Cube-Assistent - Verwendung einer Datenquellensicht ............................... 60 85 86 Abbildung 4-3: Unterteilung der Tabellen aus der Datenquellensucht in Fakten und Dimensionen .................................................................................................................. 61 Abbildung 4-4: Zuordnung von Zeittabellenspalten der Zeitdimension................................ 62 Abbildung 4-5: Auswahl und Benennung von Measures und Measuregruppen................... 63 Abbildung 4-6: Bestimmung der Dimensionsstrukturen ....................................................... 64 Abbildung 4-7: Mit dem Cube-Assistenten definierter Cube in der Entwicklungsumgebung ........................................................................................................................................ 65 Abbildung 4-8: Dimensions-Designer mit zwei Hierarchien .................................................. 67 Abbildung 4-9: Definition eines berechneten Wertes in Abhängigkeit einer Hierarchie der Zeitdimension................................................................................................................. 68 Abbildung 4-10: Dimensionsverwendungsmatrix des Cube-Designers................................. 70 Abbildung 4-11: Bestimmung der Speichermethode MOLAP für eine Cubepartition .......... 72 Abbildung 4-12: automatisierte Verarbeitung des Cube ....................................................... 72 Abbildung 5-1: Aus den Anforderungen der Informationsbedarfsanalyse erstellte Dimensionsmatrix .......................................................................................................... 74 Abbildung 5-2: Erweiterte Dimensionsmatrix ....................................................................... 75 Abbildung 5-3: Aktueller Prozess zur Informationsbeschaffung für eine Vertriebssteuerung ........................................................................................................................................ 76 Abbildung 5-4: Durch das Analysesystem verbesserter Prozess zur Informationsbeschaffung ........................................................................................................................................ 77 Tabellenverzeichnis Tabellenverzeichnis Tabelle 1: SCD Typ1: fiktive Kundendimension vor Verarbeitung ......................................... 37 Tabelle 2: SCE Typ1: extrahierter Datensatz mit geändertem Attributwert ........................ 37 Tabelle 3: SCD Typ1: fiktive Kundendimension nach Verarbeitung ...................................... 37 Tabelle 4: SCD Typ2: fiktive Kundendimension vor Verarbeitung ......................................... 39 Tabelle 5: SCD Typ2: extrahierter Datensatz mit geändertem Attributwert ........................ 39 Tabelle 6: SCD Typ2: fiktive Kundendimension nach Verarbeitung ...................................... 39 Tabelle 7: SCD Typ3: fiktive Kundendimension vor Verarbeitung ......................................... 40 Tabelle 8: SCD Typ3: extrahierter Datensatz mit geändertem Attributwert ........................ 40 Tabelle 9: SCD Typ3: fiktive Kundendimension nach Verarbeitung ...................................... 40 Tabelle 10: auftpos aus megaWWS ....................................................................................... 45 Tabelle 11: Datensatz vor der Verknüpfung .......................................................................... 52 Tabelle 12: Datensätze nach der Verknüpfung ..................................................................... 52 Tabelle 13: Datensatz nach der Trennung mit Surrogatschlüssel ......................................... 52 87 Literatur Literatur Chamoni, P., Gluchowski, P. und Hahne, M. 2005. Business Information Warehouse: Perspektiven betrieblicher Informationsversorgung und Entscheidungsunterstützung auf der Basis von SAP-systemen. Berlin : Springer, 2005. 3540675280. Claßen, David. 2008. Business Intelligence im Mittelstand. Business Intelligence im Mittelstand. Dortmund : s.n., 2008. Corporation, Microsoft. 2008. SQL Server 2005-Onlinedokumentation. SQL Server 2005-Onlinedokumentation. [Online] Microsoft Corporation, November 2008. [Zitat vom: 16. Januar 2009.] http://msdn.microsoft.com/dede/library/ms130214(SQL.90).aspx. CRISP-DM consortium. 2000. CRoss Industry Standard Process. CRoss Industry Standard Process. [Online] 2000. [Zitat vom: 20. Oktober 2008.] http://www.crispdm.org/Process/index.htm. Gluchwoski, Peter, Gabriel, Roland und Dittmar, Carsten. 2008. Management Support Systeme und Business Intelligence. Berlin : Springer, 2008. IBM Corporation . IBM Cognos 8 Business Intelligence . IBM Cognos 8 Business Intelligence . [Online] IBM Corporation .[Zitat vom: 15. 01 2009.] http://www.cognos.com/ch/de/products/cognos8businessintelligence/index.html. Kemper, Hans-Georg, Mehanna, Walid und Unger, Carsten. 2006. Business Intelligence - Grundlagen und praktische Anwendungen. Wiesbaden : Vieweg+Teubner, 2006. Kimball, Ralph. 1998. Data Warehouse Architect. Surrogate Keys. [Online] Miller Freeman, Inc., 02. Apris 1998. [Zitat vom: 13. 12 2008.] http://www.dbmsmag.com/9805d05.html. —. 1998. Data Warehouse Architect. Pipelining Your Surrogates. [Online] Miller Freeman, Inc., 04. Mai 1998. [Zitat vom: 12. Dezember 2008.] http://www.dbmsmag.com/9806d05.html. Kimball, Ralph, et al. 2008. The Data Warehouse Lifecycle Toolkit. Indianapolis : Wiley Publishing Inc., 2008. Microsoft Corporation. Microsoft Business Intelligence. Microsoft Business Intelligence. [Online] Microsoft Corporation.[Zitat vom: 15. 01 2009.] http://www.microsoft.com/germany/bi/. 89 90 Oracle Corporation. Business Intelligence Lösungen von Oracle. Business Intelligence Lösungen von Oracle. [Online] Oracle Corporation.[Zitat vom: 15. 01 2009.] http://www.oracle.com/lang/de/solutions/business_intelligence/index.html. Richardson, James, Schlegel, Kurt und Ne, Bill Hostmann. 2008. Magic Quadrant for Business Intelligence. Magic Quadrant for Business Intelligence. [Online] Gartner, Inc., 01. 02 2008. [Zitat vom: 15. 01 2009.] http://mediaproducts.gartner.com/reprints/microsoft/vol7/article3/article3.html. G00154227. SAP Deutschland AG & Co. KG. Komponenten & Werkzeuge von SAP NetWeaver Business Intelligence. Komponenten & Werkzeuge von SAP NetWeaver Business Intelligence. [Online] SAP Deutschland AG & Co. KG.[Zitat vom: 15. 01 2009.] http://www.sap.com/germany/plattform/netweaver/components/businessintellige nce/index.epx. Schrödl, Holger. 2006. Business Intelligence mit Microsoft SQL Server 2005. München : Hanser Fachbuchverlag, 2006. Warner, Daniel. 2007. Advanced SQL SQL für Praxis und Studium. Poing : Franzis Verlag, 2007. 3772371701. Wilmes, Caroline, Dietl, Helmut und van der Velden, Remco. 2004. Die strategische Resource "data Warehouse". Wiesbaden : Deutscher Universitäts-Verlag/GWV Fachverlage GmbH, 2004. 3824480468.