Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004
Übersicht Theorie Praxis Contour Cube Interbrain AG und das Projekt „Sportamt ZH“ Grundlegendes zum Data Warehouse SQL Server Analysis Services oder Contour Cube? Praxis Contour Cube Demo anhand der mitgelieferten Beispielapplikation Definition des Cubes Laden und Speichern des Cubes Hinweise auf weitere Probleme beim praktischen Einsatz
Interbrain AG und das Projekt „Sportamt ZH“ Projektübersicht Systemarchitektur Mengengerüst Zentrale Auswertungen: Data Warehouse?
Interbrain AG Online-Zutrittskontroll-, Abrechnungs- und Verwaltungslösungen für einzelne und verbundene Fitness- und Wellnessanlagen Umfassende eigene Softwarelösung auf Basis von Visual FoxPro Integration verschiedenster Hardware-Komponten von Drittherstellern (POS, Datenträger, Automaten …)
Projekt „Sportamt ZH“ (1) Kassensystem: Verkauf von lokal gültigen Einzeleintritten (Tickets mit Barcode) Verkauf von verbundweit gültigen, unpersönlichen Punktekarten sowie persönlichen Saison- und Jahreskarten (Chipkarten mit Pfand) Verkauf und Verwaltung von verbundweit gültigen Gutscheinen (mit Barcode) Verkauf und Vermietung von Artikeln
Projekt „Sportamt ZH“ (2) Zutrittskontrolle mit Drehkreuzen und kombinierten Chip- und Barcodelesern Verwaltung der persönlichen Abonnemente Zentrale Verwaltung: Konfiguration der Applikation für alle oder einzelne Anlagen Abschlussarbeiten für Rechnungswesen Statistische Auswertungen für einzelne, mehrere oder alle Anlagen Fernwartung für alle Stationen des Verbundes
Systemarchitektur Lokale VFP-Datenbank auf dem Server jeder Anlage Replikation der relevanten Daten über WAN (VPN über ADSL; Austausch der Basisdaten alle 24 h und Leistungsverbuchung sofort über FTP) Zugriff der zentralen Verwaltung auf die einzelne Anlage über Terminal Server Fernwartung durch Verwaltung mit DameWare Verdichtung der Eintritts- und Verkaufszahlen in einem zentralen Data Warehouse (VFP mit CC)
Mengengerüst Verbund mit 21 Standorten in Zürich (Anlagen des Sportamtes und fremd-betriebene Anlagen) Total ca. 50 Server und Arbeitsstationen Mehr als 2 Mio. Eintritte im Jahr 2003, bis zu 30‘000 an Spitzentagen Etwa 50‘000 Jahres-, Saison und Punktekarten im Umlauf
Zentrale Auswertungen: Data Warehouse? Verschiedenste zentrale Auswertungen über Eintritte und Verkäufe einzelner, mehrerer oder aller Anlagen Bezüglich Sichtweise, Gruppierung und Filterung der Daten möglichst flexibel Endform, in der die Daten präsentiert werden, möglichst frei wählbar Aktualisierung alle 24 h genügt
Grundlegendes zum Data Warehouse Charakteristika Cubes, Fact Tables, Measures und Dimensions Star- und Snowflake-Schema Star-, Snowflake-, Parent-Child, und Zeitdimensionen Teile des Data Warehouse: Staging Area und OLAP resp. Presentation Area Extraction – Transformation – Load Cube Processing: MOLAP, HOLAP oder ROLAP Offline Cubes (Data Marts)
Charakteristika Spezielle Art der Datenmodellierung Datenbank mit Fakten (offline) Meta-Datenbank mit Cube-Definitionen Vorberechnete aggregierte Werte Präsentationsschicht Tools zur Automatisierung des ETL-Prozesses (Überführung der Daten vom OLTP-System in die Cubes des DWH)
Cubes, Fact Tables, Measures und Dimensions (1) Data Warehouse besteht aus einem oder Cubes („Datenwürfel“) Strukturdefinition (eine Fact Table pro Cube, mehrere Dimensionen und Messwerte) Vorberechnete aggregierte Werte Präsentationsschicht zum Auswerten der Daten (Slice, Dice und Drill)
Cubes, Fact Tables, Measures und Dimensions (2) Datenquelle des Cubes (in der Staging Area) Flache Struktur mit Referenzwerten aus Dimension Tables und Messwerten Enthält einen Datensatz pro Vorgang (Fact) Measure (Messwert): Beispiele: Menge, Preis, Anzahl, Dauer… Basis für die im Cube aggregierten Werte, wie Anzahl Datensätze, Summe von Werten, Minimal- und Maximalwerte, Durchschnitte…
Cubes, Fact Tables, Measures und Dimensions (3) Beispiele: Zeit, Ort, Art der Vorgangs, Merkmale von Leistungserbringern und Leistungsempfängern… Referenztabelle mit Schlüsselwert und Bezeichnung sowie allfälligen Referenzwerten aus sekundären Dimensionen (Snowflake) Kriterium für Gruppierung, Gliederung und Filterung der Vorgänge (Facts)
Star- und Snowflake-Schema
Star-, Snowflake-, Parent-Child- und Zeitdimensionen (1) Star-Dimension: Code in der Fact Table Code und zugehörige Bezeichnung in der Dimension Table Snowflake-Dimension: Dimensionen, welche ihrerseits Referenzwerte (Codes) einer weiteren Dimension enthalten
Star-, Snowflake-, Parent-Child- und Zeitdimensionen (2) Parent-Child-Dimension: Dimensionen, welche einen rekursiven Verweis auf sich selbst enthalten (Stücklistenstruktur) Zeitdimension: Basierend auf Datum-Zeit-Wert Granularität wählbar (Datum, Jahr, Monat, Tag, Stunde, Kalenderwoche, Wochentag…) Vom System zur Verfügung gestellt, keine Dimension Table notwendig
Teile des Data Warehouse: Staging Area und OLAP resp. Presentation Area Staging Area: Offline-Datenbank mit den aus der OLTP Area extrahierten und geladenen Fact und Dimension Tables OLAP oder Presentation Area: Cubes mit den aus den Daten der Staging Area berechneten aggregierten Werten
Extraction – Transformation – Load Data Extraction: Extrahieren aus dem produktiven OLTP-System Übermitteln in die Staging Area Data Transformation: Transformation auf einheitliche Standards Prüfung und Bereinigung der Daten (Cleansing) Anreicherung durch Denormalisierung und Informationen aus externen Quellen (Enrichment) Data Load: Laden der Dimension Tables Laden der Fact Tables
Cube Processing (1): MOLAP Multidimensional Online Analytical Processing: Struktur, aggregierte Werte und Detaildaten im Data Warehouse Platzintensiv, lange Ladezeiten Schneller Zugriff, unabhängig vom OLTP-System Normalfall
Cube Processing (2): HOLAP Hybrid Online Analytical Processing: Struktur und aggregierte Werte im Data Warehouse Detaildaten im OLTP-System Platzsparend, kurze Ladezeiten Abhängig vom OLTP-System Nur für sehr grosse, aber beständige DWH
Cube Processing (3): ROLAP Relational Online Analytical Processing: Nur Struktur im Data Warehouse Keine aggregierten Werte Detaildaten im OLTP-System Platzsparend Abhängig vom OLTP-System, ineffizient und extrem lastintensiv in der Ausführung Nur für Echtzeit-Cubes
Offline Cubes (Data Marts) Können, unabhängig vom Data Warehouse Server, als separate Datei verteilt und mit Excel oder einem speziellen Viewer angezeigt werden Können, einmal erzeugt, nicht aktualisiert, sondern nur neu erstellt werden Erfordern bei grossen Datenmengen entsprechend viel Arbeitsspeicher auf den Arbeitsstationen, die darauf zugreifen
SQL Server Analysis Services oder Contour Cube? Charakteristika Vorteile Nachteile Contour Cube:
SQL Server Analysis Services: Charakteristika Microsoft-Produkt Eigenständige Applikation Basiert umfassend auf SQL Server und dessen Tools Integration in eine VFP-Applikation anspruchsvoll, mit Pivot-Table-Assistent aber prinzipiell möglich Nahezu beliebige OLTP-Datenquellen (OLEDB und ODBC) verwendbar, Staging Area wird sinnvollerweise als SQL-Datenbank angelegt MOLAP, HOLAP und ROLAP möglich Online- und Offline-Cubes
SQL Server Analysis Services: Vorteile Auch für sehr grosse Datenmengen geeignet Defacto-Standard, viele Zusatzprodukte Grosser Funktionsumfang Starke Werkzeuge zur Automatisierung des ETL-Prozesses (DTS, SQL Server Agent) Ausführliche Dokumentation und Beispiele sowie diverse Literatur Sicherheit
SQL Server Analysis Services: Nachteile Gesamthaft betrachtet relativ teuer Hoher Einarbeitungsaufwand Hohe Komplexität Installation und Konfiguration beim Kunden und Verteilung von Updates relativ kompliziert Komplette Aktualisierung der Cubes braucht viel Zeit (mehrere Stunden) Nicht endanwendertauglich, Drittprodukte für professionelle Präsentation und Data Mining in der Regel sehr teuer
Contour Cube: Charakteristika Produkt einer Moskauer Software-Firma Visuelles Active-X-Control Integrierbar in jedes VFP-Formular und damit direkt in eine VFP-Applikation Laden des Cubes über ADO (OLEDB und ODBC) und BDE direkt aus verschiedensten Datenquellen, auch aus Visual FoxPro Aussschliesslich MOLAP Offline-Cubes
Contour Cube: Vorteile Billige Entwicklerlizenz, Royalty free Runtime Licenses Kurze Einarbeitungszeit Gute Programmbeispiele auch in Visual FoxPro Einfache Installation und Aktualisierung beim Kunden Integration in Webseiten problemlos Interbrain kann Vorlagen ausliefern, die der Kunde individuell anpassen kann Schnelles Reprocessing des Cubes
Contour Cube: Nachteile Für sehr grosse Datenmengen nicht oder nur bedingt geeignet (ohne Server) Beschränkter Funktionsumfang Eingeschränkte Präsentations-, Druck- und Exportmöglichkeiten Knappe, nicht ganz fehlerfreie Dokumentation, stark Visual-Basic-lastig Relativ hohe Ladezeiten für bestehenden Cube Grosser Bedarf an Arbeitsspeicher auf dem Client (mindestens ½ GB, besser deutlich mehr)