Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004 Übersicht Theorie 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“ Interbrain AG 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 HardwareKomponten 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 fremdbetriebene 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 ETLProzesses (Überführung der Daten vom OLTP-System in die Cubes des DWH) Cubes, Fact Tables, Measures und Dimensions (1) Cube: 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) Fact Table: 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) Dimension: 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-Childund 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-Childund 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 OLTPSystem 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? SQL Server Analysis Services: Charakteristika Vorteile Nachteile Contour Cube: Charakteristika Vorteile Nachteile 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)