Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004.

30
Data Warehouse Data Warehouse mit Visual FoxPro mit Visual FoxPro Marc Voillat Marc Voillat Interbrain AG Interbrain AG 27. Mai 2004 27. Mai 2004

Transcript of Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004.

Page 1: Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004.

Data WarehouseData Warehousemit Visual FoxPromit Visual FoxPro

Marc VoillatMarc Voillat

Interbrain AGInterbrain AG

27. Mai 200427. Mai 2004

Page 2: Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004.

ÜbersichtÜbersicht

TheorieTheorie Interbrain AG und das Projekt „Sportamt ZH“Interbrain AG und das Projekt „Sportamt ZH“ Grundlegendes zum Data WarehouseGrundlegendes zum Data Warehouse SQL Server Analysis Services oder Contour Cube?SQL Server Analysis Services oder Contour Cube?

Praxis Contour CubePraxis Contour Cube Demo anhand der mitgelieferten BeispielapplikationDemo anhand der mitgelieferten Beispielapplikation Definition des CubesDefinition des Cubes Laden und Speichern des CubesLaden und Speichern des Cubes Hinweise auf weitere Probleme beim praktischen Hinweise auf weitere Probleme beim praktischen

EinsatzEinsatz

Page 3: Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004.

Interbrain AGInterbrain AGund das Projekt „Sportamt ZH“und das Projekt „Sportamt ZH“

Interbrain AGInterbrain AG

ProjektübersichtProjektübersicht

SystemarchitekturSystemarchitektur

MengengerüstMengengerüst

Zentrale Auswertungen: Data Warehouse?Zentrale Auswertungen: Data Warehouse?

Page 4: Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004.

Interbrain AGInterbrain AG

Online-Zutrittskontroll-, Abrechnungs- und Online-Zutrittskontroll-, Abrechnungs- und Verwaltungslösungen für einzelne und Verwaltungslösungen für einzelne und verbundene Fitness- und Wellnessanlagenverbundene Fitness- und Wellnessanlagen

Umfassende eigene Softwarelösung auf Umfassende eigene Softwarelösung auf Basis von Visual FoxProBasis von Visual FoxPro

Integration verschiedenster Hardware-Integration verschiedenster Hardware-Komponten von Drittherstellern (POS, Komponten von Drittherstellern (POS, Datenträger, Automaten …)Datenträger, Automaten …)

Page 5: Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004.

Projekt „Sportamt ZH“ (1)Projekt „Sportamt ZH“ (1)

Kassensystem:Kassensystem: Verkauf von lokal gültigen Einzeleintritten Verkauf von lokal gültigen Einzeleintritten

(Tickets mit Barcode)(Tickets mit Barcode) Verkauf von verbundweit gültigen, Verkauf von verbundweit gültigen,

unpersönlichen Punktekarten sowie unpersönlichen Punktekarten sowie persönlichen Saison- und Jahreskarten persönlichen Saison- und Jahreskarten (Chipkarten mit Pfand)(Chipkarten mit Pfand)

Verkauf und Verwaltung von verbundweit Verkauf und Verwaltung von verbundweit gültigen Gutscheinen (mit Barcode)gültigen Gutscheinen (mit Barcode)

Verkauf und Vermietung von ArtikelnVerkauf und Vermietung von Artikeln

Page 6: Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004.

Projekt „Sportamt ZH“ (2)Projekt „Sportamt ZH“ (2)

Zutrittskontrolle mit Drehkreuzen und Zutrittskontrolle mit Drehkreuzen und kombinierten Chip- und Barcodelesernkombinierten Chip- und Barcodelesern

Verwaltung der persönlichen AbonnementeVerwaltung der persönlichen Abonnemente

Zentrale Verwaltung:Zentrale Verwaltung: Konfiguration der Applikation für alle oder einzelne Konfiguration der Applikation für alle oder einzelne

AnlagenAnlagen Abschlussarbeiten für RechnungswesenAbschlussarbeiten für Rechnungswesen Statistische Auswertungen für einzelne, mehrere oder Statistische Auswertungen für einzelne, mehrere oder

alle Anlagenalle Anlagen Fernwartung für alle Stationen des VerbundesFernwartung für alle Stationen des Verbundes

Page 7: Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004.

SystemarchitekturSystemarchitektur

Lokale VFP-Datenbank auf dem Server jeder Lokale VFP-Datenbank auf dem Server jeder AnlageAnlageReplikation der relevanten Daten über WAN Replikation der relevanten Daten über WAN (VPN über ADSL; Austausch der Basisdaten alle (VPN über ADSL; Austausch der Basisdaten alle 24 h und Leistungsverbuchung sofort über FTP)24 h und Leistungsverbuchung sofort über FTP)Zugriff der zentralen Verwaltung auf die einzelne Zugriff der zentralen Verwaltung auf die einzelne Anlage über Terminal ServerAnlage über Terminal ServerFernwartung durch Verwaltung mit DameWareFernwartung durch Verwaltung mit DameWareVerdichtung der Eintritts- und Verkaufszahlen in Verdichtung der Eintritts- und Verkaufszahlen in einem zentralen Data Warehouse (VFP mit CC)einem zentralen Data Warehouse (VFP mit CC)

Page 8: Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004.

MengengerüstMengengerüst

Verbund mit 21 Standorten in Zürich Verbund mit 21 Standorten in Zürich (Anlagen des Sportamtes und fremd-(Anlagen des Sportamtes und fremd-betriebene Anlagen)betriebene Anlagen)

Total ca. 50 Server und ArbeitsstationenTotal ca. 50 Server und Arbeitsstationen

Mehr als 2 Mio. Eintritte im Jahr 2003, bis Mehr als 2 Mio. Eintritte im Jahr 2003, bis zu 30‘000 an Spitzentagenzu 30‘000 an Spitzentagen

Etwa 50‘000 Jahres-, Saison und Etwa 50‘000 Jahres-, Saison und Punktekarten im UmlaufPunktekarten im Umlauf

Page 9: Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004.

Zentrale Auswertungen:Zentrale Auswertungen:Data Warehouse?Data Warehouse?

Verschiedenste zentrale Auswertungen Verschiedenste zentrale Auswertungen über Eintritte und Verkäufe einzelner, über Eintritte und Verkäufe einzelner, mehrerer oder aller Anlagenmehrerer oder aller Anlagen

Bezüglich Sichtweise, Gruppierung und Bezüglich Sichtweise, Gruppierung und Filterung der Daten möglichst flexibelFilterung der Daten möglichst flexibel

Endform, in der die Daten präsentiert Endform, in der die Daten präsentiert werden, möglichst frei wählbarwerden, möglichst frei wählbar

Aktualisierung alle 24 h genügtAktualisierung alle 24 h genügt

Page 10: Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004.

GrundlegendesGrundlegendeszum Data Warehousezum Data Warehouse

CharakteristikaCharakteristikaCubes, Fact Tables, Measures und DimensionsCubes, Fact Tables, Measures und DimensionsStar- und Snowflake-SchemaStar- und Snowflake-SchemaStar-, Snowflake-, Parent-Child, und Star-, Snowflake-, Parent-Child, und ZeitdimensionenZeitdimensionenTeile des Data Warehouse: Staging Area und Teile des Data Warehouse: Staging Area und OLAP resp. Presentation AreaOLAP resp. Presentation AreaExtraction – Transformation – LoadExtraction – Transformation – LoadCube Processing: MOLAP, HOLAP oder ROLAPCube Processing: MOLAP, HOLAP oder ROLAPOffline Cubes (Data Marts)Offline Cubes (Data Marts)

Page 11: Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004.

CharakteristikaCharakteristika

Spezielle Art der DatenmodellierungSpezielle Art der DatenmodellierungDatenbank mit Fakten (offline)Datenbank mit Fakten (offline)Meta-Datenbank mit Cube-DefinitionenMeta-Datenbank mit Cube-DefinitionenVorberechnete aggregierte WerteVorberechnete aggregierte WertePräsentationsschichtPräsentationsschichtTools zur Automatisierung des ETL-Tools zur Automatisierung des ETL-Prozesses (Überführung der Daten vom Prozesses (Überführung der Daten vom OLTP-System in die Cubes des DWH)OLTP-System in die Cubes des DWH)

Page 12: Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004.

Cubes, Fact Tables,Cubes, Fact Tables,Measures und Dimensions (1)Measures und Dimensions (1)

Cube:Cube: Data Warehouse besteht aus einem oder Data Warehouse besteht aus einem oder

Cubes („Datenwürfel“)Cubes („Datenwürfel“) Strukturdefinition (eine Fact Table pro Cube, Strukturdefinition (eine Fact Table pro Cube,

mehrere Dimensionen und Messwerte)mehrere Dimensionen und Messwerte) Vorberechnete aggregierte WerteVorberechnete aggregierte Werte Präsentationsschicht zum Auswerten der Präsentationsschicht zum Auswerten der

Daten (Slice, Dice und Drill)Daten (Slice, Dice und Drill)

Page 13: Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004.

Cubes, Fact Tables,Cubes, Fact Tables,Measures und Dimensions (2)Measures und Dimensions (2)

Fact Table:Fact Table: Datenquelle des Cubes (in der Staging Area)Datenquelle des Cubes (in der Staging Area) Flache Struktur mit Referenzwerten aus Dimension Flache Struktur mit Referenzwerten aus Dimension

Tables und MesswertenTables und Messwerten Enthält einen Datensatz pro Vorgang (Fact)Enthält einen Datensatz pro Vorgang (Fact)

Measure (Messwert):Measure (Messwert): Beispiele: Menge, Preis, Anzahl, Dauer…Beispiele: Menge, Preis, Anzahl, Dauer… Basis für die im Cube aggregierten Werte, wie Anzahl Basis für die im Cube aggregierten Werte, wie Anzahl

Datensätze, Summe von Werten, Minimal- und Datensätze, Summe von Werten, Minimal- und Maximalwerte, Durchschnitte…Maximalwerte, Durchschnitte…

Page 14: Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004.

Cubes, Fact Tables,Cubes, Fact Tables,Measures und Dimensions (3)Measures und Dimensions (3)

Dimension:Dimension: Beispiele: Zeit, Ort, Art der Vorgangs, Beispiele: Zeit, Ort, Art der Vorgangs,

Merkmale von Leistungserbringern und Merkmale von Leistungserbringern und Leistungsempfängern…Leistungsempfängern…

Referenztabelle mit Schlüsselwert und Referenztabelle mit Schlüsselwert und Bezeichnung sowie allfälligen Referenzwerten Bezeichnung sowie allfälligen Referenzwerten aus sekundären Dimensionen (Snowflake)aus sekundären Dimensionen (Snowflake)

Kriterium für Gruppierung, Gliederung und Kriterium für Gruppierung, Gliederung und Filterung der Vorgänge (Facts)Filterung der Vorgänge (Facts)

Page 15: Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004.

Star- und Snowflake-SchemaStar- und Snowflake-Schema

Page 16: Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004.

Star-, Snowflake-, Parent-Child- Star-, Snowflake-, Parent-Child- und Zeitdimensionen (1)und Zeitdimensionen (1)

Star-Dimension:Star-Dimension: Code in der Fact TableCode in der Fact Table Code und zugehörige Bezeichnung in der Code und zugehörige Bezeichnung in der

Dimension TableDimension Table

Snowflake-Dimension:Snowflake-Dimension: Dimensionen, welche ihrerseits Dimensionen, welche ihrerseits

Referenzwerte (Codes) einer weiteren Referenzwerte (Codes) einer weiteren Dimension enthaltenDimension enthalten

Page 17: Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004.

Star-, Snowflake-, Parent-Child- Star-, Snowflake-, Parent-Child- und Zeitdimensionen (2)und Zeitdimensionen (2)

Parent-Child-Dimension:Parent-Child-Dimension: Dimensionen, welche einen rekursiven Dimensionen, welche einen rekursiven

Verweis auf sich selbst enthalten Verweis auf sich selbst enthalten (Stücklistenstruktur)(Stücklistenstruktur)

Zeitdimension:Zeitdimension: Basierend auf Datum-Zeit-WertBasierend auf Datum-Zeit-Wert Granularität wählbar (Datum, Jahr, Monat, Granularität wählbar (Datum, Jahr, Monat,

Tag, Stunde, Kalenderwoche, Wochentag…)Tag, Stunde, Kalenderwoche, Wochentag…) Vom System zur Verfügung gestellt, keine Vom System zur Verfügung gestellt, keine

Dimension Table notwendigDimension Table notwendig

Page 18: Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004.

Teile des Data Warehouse:Teile des Data Warehouse:Staging Area und OLAP resp. Staging Area und OLAP resp.

Presentation AreaPresentation Area

Staging Area: Offline-Datenbank mit den Staging Area: Offline-Datenbank mit den aus der OLTP Area extrahierten und aus der OLTP Area extrahierten und geladenen Fact und Dimension Tablesgeladenen Fact und Dimension Tables

OLAP oder Presentation Area: Cubes mit OLAP oder Presentation Area: Cubes mit den aus den Daten der Staging Area den aus den Daten der Staging Area berechneten aggregierten Wertenberechneten aggregierten Werten

Page 19: Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004.

Extraction – Transformation – LoadExtraction – Transformation – Load

Data Extraction:Data Extraction: Extrahieren aus dem produktiven OLTP-SystemExtrahieren aus dem produktiven OLTP-System Übermitteln in die Staging AreaÜbermitteln in die Staging Area

Data Transformation:Data Transformation: Transformation auf einheitliche StandardsTransformation auf einheitliche Standards Prüfung und Bereinigung der Daten (Cleansing)Prüfung und Bereinigung der Daten (Cleansing) Anreicherung durch Denormalisierung und Anreicherung durch Denormalisierung und

Informationen aus externen Quellen (Enrichment)Informationen aus externen Quellen (Enrichment)

Data Load:Data Load: Laden der Dimension TablesLaden der Dimension Tables Laden der Fact TablesLaden der Fact Tables

Page 20: Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004.

Cube Processing (1): MOLAPCube Processing (1): MOLAP

Multidimensional Online Analytical Multidimensional Online Analytical Processing:Processing: Struktur, aggregierte Werte und Detaildaten Struktur, aggregierte Werte und Detaildaten

im Data Warehouseim Data Warehouse Platzintensiv, lange LadezeitenPlatzintensiv, lange Ladezeiten Schneller Zugriff, unabhängig vom OLTP-Schneller Zugriff, unabhängig vom OLTP-

SystemSystem NormalfallNormalfall

Page 21: Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004.

Cube Processing (2): HOLAPCube Processing (2): HOLAP

HybridHybrid Online Analytical Processing: Online Analytical Processing: Struktur und aggregierte Werte im Data Struktur und aggregierte Werte im Data

WarehouseWarehouse Detaildaten im OLTP-SystemDetaildaten im OLTP-System Platzsparend, kurze LadezeitenPlatzsparend, kurze Ladezeiten Abhängig vom OLTP-SystemAbhängig vom OLTP-System Nur für sehr grosse, aber beständige DWHNur für sehr grosse, aber beständige DWH

Page 22: Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004.

Cube Processing (3): ROLAPCube Processing (3): ROLAP

RelationalRelational Online Analytical Processing: Online Analytical Processing: Nur Struktur im Data WarehouseNur Struktur im Data Warehouse Keine aggregierten WerteKeine aggregierten Werte Detaildaten im OLTP-SystemDetaildaten im OLTP-System PlatzsparendPlatzsparend Abhängig vom OLTP-System, ineffizient und Abhängig vom OLTP-System, ineffizient und

extrem lastintensiv in der Ausführungextrem lastintensiv in der Ausführung Nur für Echtzeit-CubesNur für Echtzeit-Cubes

Page 23: Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004.

Offline Cubes (Data Marts)Offline Cubes (Data Marts)

Können, unabhängig vom Data Können, unabhängig vom Data Warehouse Server, als separate Datei Warehouse Server, als separate Datei verteilt und mit Excel oder einem verteilt und mit Excel oder einem speziellen Viewer angezeigt werdenspeziellen Viewer angezeigt werdenKönnen, einmal erzeugt, nicht aktualisiert, Können, einmal erzeugt, nicht aktualisiert, sondern nur neu erstellt werdensondern nur neu erstellt werdenErfordern bei grossen Datenmengen Erfordern bei grossen Datenmengen entsprechend viel Arbeitsspeicher auf den entsprechend viel Arbeitsspeicher auf den Arbeitsstationen, die darauf zugreifenArbeitsstationen, die darauf zugreifen

Page 24: Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004.

SQL Server Analysis ServicesSQL Server Analysis Servicesoder Contour Cube?oder Contour Cube?

SQL Server Analysis Services:SQL Server Analysis Services: CharakteristikaCharakteristika VorteileVorteile NachteileNachteile

Contour Cube:Contour Cube: CharakteristikaCharakteristika VorteileVorteile NachteileNachteile

Page 25: Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004.

SQL Server Analysis Services: SQL Server Analysis Services: CharakteristikaCharakteristika

Microsoft-ProduktMicrosoft-ProduktEigenständige ApplikationEigenständige ApplikationBasiert umfassend auf SQL Server und dessen ToolsBasiert umfassend auf SQL Server und dessen ToolsIntegration in eine VFP-Applikation anspruchsvoll, mit Integration in eine VFP-Applikation anspruchsvoll, mit Pivot-Table-Assistent aber prinzipiell möglichPivot-Table-Assistent aber prinzipiell möglichNahezu beliebige OLTP-Datenquellen (OLEDB und Nahezu beliebige OLTP-Datenquellen (OLEDB und ODBC) verwendbar, Staging Area wird sinnvollerweise ODBC) verwendbar, Staging Area wird sinnvollerweise als SQL-Datenbank angelegtals SQL-Datenbank angelegtMOLAP, HOLAP und ROLAP möglichMOLAP, HOLAP und ROLAP möglichOnline- und Offline-CubesOnline- und Offline-Cubes

Page 26: Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004.

SQL Server Analysis Services: SQL Server Analysis Services: VorteileVorteile

Auch für sehr grosse Datenmengen geeignetAuch für sehr grosse Datenmengen geeignet

Defacto-Standard, viele ZusatzprodukteDefacto-Standard, viele Zusatzprodukte

Grosser FunktionsumfangGrosser Funktionsumfang

Starke Werkzeuge zur Automatisierung des Starke Werkzeuge zur Automatisierung des ETL-Prozesses (DTS, SQL Server Agent)ETL-Prozesses (DTS, SQL Server Agent)

Ausführliche Dokumentation und Beispiele sowie Ausführliche Dokumentation und Beispiele sowie diverse Literaturdiverse Literatur

SicherheitSicherheit

Page 27: Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004.

SQL Server Analysis Services: SQL Server Analysis Services: NachteileNachteile

Gesamthaft betrachtet relativ teuerGesamthaft betrachtet relativ teuerHoher EinarbeitungsaufwandHoher EinarbeitungsaufwandHohe KomplexitätHohe KomplexitätInstallation und Konfiguration beim Kunden und Installation und Konfiguration beim Kunden und Verteilung von Updates relativ kompliziertVerteilung von Updates relativ kompliziertKomplette Aktualisierung der Cubes braucht viel Komplette Aktualisierung der Cubes braucht viel Zeit (mehrere Stunden)Zeit (mehrere Stunden)Nicht endanwendertauglich, Drittprodukte für Nicht endanwendertauglich, Drittprodukte für professionelle Präsentation und Data Mining in professionelle Präsentation und Data Mining in der Regel sehr teuerder Regel sehr teuer

Page 28: Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004.

Contour Cube: CharakteristikaContour Cube: Charakteristika

Produkt einer Moskauer Software-FirmaProdukt einer Moskauer Software-Firma

Visuelles Active-X-ControlVisuelles Active-X-Control

Integrierbar in jedes VFP-Formular und damit Integrierbar in jedes VFP-Formular und damit direkt in eine VFP-Applikationdirekt in eine VFP-Applikation

Laden des Cubes über ADO (OLEDB und Laden des Cubes über ADO (OLEDB und ODBC) und BDE direkt aus verschiedensten ODBC) und BDE direkt aus verschiedensten Datenquellen, auch aus Visual FoxProDatenquellen, auch aus Visual FoxPro

Aussschliesslich MOLAPAussschliesslich MOLAP

Offline-CubesOffline-Cubes

Page 29: Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004.

Contour Cube: VorteileContour Cube: Vorteile

Billige Entwicklerlizenz, Royalty free Runtime Billige Entwicklerlizenz, Royalty free Runtime LicensesLicensesKurze EinarbeitungszeitKurze EinarbeitungszeitGute Programmbeispiele auch in Visual FoxProGute Programmbeispiele auch in Visual FoxProEinfache Installation und Aktualisierung beim Einfache Installation und Aktualisierung beim KundenKundenIntegration in Webseiten problemlosIntegration in Webseiten problemlosInterbrain kann Vorlagen ausliefern, die der Interbrain kann Vorlagen ausliefern, die der Kunde individuell anpassen kannKunde individuell anpassen kannSchnelles Reprocessing des CubesSchnelles Reprocessing des Cubes

Page 30: Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004.

Contour Cube: NachteileContour Cube: Nachteile

Für sehr grosse Datenmengen nicht oder nur Für sehr grosse Datenmengen nicht oder nur bedingt geeignet (ohne Server)bedingt geeignet (ohne Server)Beschränkter FunktionsumfangBeschränkter FunktionsumfangEingeschränkte Präsentations-, Druck- und Eingeschränkte Präsentations-, Druck- und ExportmöglichkeitenExportmöglichkeitenKnappe, nicht ganz fehlerfreie Dokumentation, Knappe, nicht ganz fehlerfreie Dokumentation, stark Visual-Basic-lastigstark Visual-Basic-lastigRelativ hohe Ladezeiten für bestehenden CubeRelativ hohe Ladezeiten für bestehenden CubeGrosser Bedarf an Arbeitsspeicher auf dem Grosser Bedarf an Arbeitsspeicher auf dem Client (mindestens ½ GB, besser deutlich mehr)Client (mindestens ½ GB, besser deutlich mehr)