Data Warehouse mit Visual FoxPro Marc Voillat Interbrain AG 27. Mai 2004.
-
Upload
annelie-nau -
Category
Documents
-
view
105 -
download
0
Transcript of 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
Ü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
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?
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 …)
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
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
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)
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
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
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)
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)
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)
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…
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)
Star- und Snowflake-SchemaStar- und Snowflake-Schema
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)