Data Warehousing für TPC-D Daten Teil II:Modellierung und Erstellung eines Data Cubes mit MS OLAP Manager für TPC-D Daten Thomas Stocker & Patrick Sager Data Warehousing für TPC-D Daten 1 Aufgabenstellung Erzeugen eines Datawarehouse mit TPC-D Daten MS OLAP Manager OLE DB Oracle MS-DSS ODBC Wrapper Relational Database Server Cube TPC-D Daten Thomas Stocker & Patrick Sager Aufgabe 2 TPC-D Datenmenge CUSTOMER SF*150K NATION 25 REGION 5 ORDER SF*1500K SUPPLIER SF*10K PART SF*200K LINEITEM SF*6000K PARTSUPP SF*200K SF=Scalefactor: 1-> 1 GB Daten Thomas Stocker & Patrick Sager Aufgabe 3 Warum TPC-D ? TPC-D Business Analysis Business Operations TPC-A TPC-B Thomas Stocker & Patrick Sager TPC-C SQL Aggregate in Standard Benchmarks Benchmark Queries Aggregate GROUP BYs TPC-A, B 1 0 0 TPC-C 18 4 0 TPC-D 16 27 15 Wisconsin 18 3 2 23 20 2 AS3AP SetQuery 7 5 1 Aufgabe 4 Bezeichnungen Dimensionsarten Zeitdimension Hierarchische Dimension Mass Datum Jahr 1998 / 670 Monat Tag Februar / 550 2.2.1998 / 250 Januar / 120 2.1.1998 / 100 1.2.1998 / 300 1.1.1998 / 20 ALL / 670 Thomas Stocker & Patrick Sager 50 300 200 100 20 ABB / 370 UBS / 300 Schweiz / 670 Kunde Name Land Begriffe 5 Schemas Star-Schema Snowflake-Schema Thomas Stocker & Patrick Sager Begriffe 6 Server-Architektur Thomas Stocker & Patrick Sager Architektur des Servers 7 Speicherarten ROLAP Dimensionen: In relationalen Tabellen gespeichert. Aggregate: In relationalen Tabellen gespeichert. Schlechte Performance, gute Skalierbarkeit MOLAP (von uns benutzt) Dimensionen: In multidimensionaler Datenstruktur gespeichert. Aggregate: In multidimensionaler Datenstruktur gespeichert. Gute Performance, schlechte Skalierbarkeit HOLAP Dimensionen: In relationalen Tabellen gespeichert. Aggregate: In multidimensionaler Datenstruktur gespeichert. Gute Performance, gute Skalierbarkeit Thomas Stocker & Patrick Sager Architektur des Servers 8 MS OLAP Speichermechanismen -1 Zellenspeicherung alle Zellen Bsp.: 12.5 % der Zellen besetzt - 8 mal mehr Speicherplatzverbrauch. Datum Jahr 1998 Monat Februar Januar Tag 2.2.1998 1.2.1998 2.1.1998 1.1.1998 20 UBS ABB Schweiz Kunde Name Land MS DSS speichert nur Zellen mit Werten Thomas Stocker & Patrick Sager Architektur des Servers 9 MS OLAP Speichermechanismen -2 Aggregate alle Aggregate Bsp.: pro Dimension Wachstum von 2 (heuristisch [Pendse] 4 MB Datenbank 5 Dimensionen 4MB*2^5=128 MB Datum Jahr 1998 / 20 Monat Februar Tag 2.2.1998 1.2.1998 Januar / 20 2.1.1998 1.1.1998 / 20 ALL /20 20 ABB / 20 UBS Schweiz / 20 Kunde Name Land Im MS DSS kann man Aggregate “auswählen“ anhand von technischen Kriterien wie z.B. MB für Aggregate Thomas Stocker & Patrick Sager Architektur des Servers 10 Einschränkungen der Beta Version -1 Pro Anfrage dürfen höchstens 2^31-1 Zellen als Antwort auftreten. Thomas Stocker & Patrick Sager Architektur des Servers 11 Einschränkungen der Beta Version -2 Materialisierung der Cubes OrderDate gescheitert wegen OLAP Manager Orderprice gescheitert wegen Oracle Server OLE DB Schnittstelle funktioniert nicht Schema muss “zyklenfrei“ sein Thomas Stocker & Patrick Sager Architektur des Servers 12 Design der Cubes Design unserer Cubes PartCube 2 dimensional Dimensionen: 210‘030 Datensätze Mass: 200‘000 Datensätze Orderprice 3 dimensional Dimensionen: 150‘030 Datensätze Mass: 1‘500‘000 Datensätze Umsatz 4 dimensional Dimensionen: 1‘860‘060 Datensätze Mass: 6‘000‘000 Datensätze Thomas Stocker & Patrick Sager Design unserer Cubes 13 TPC-D Schema PART PARTKEY NAME MFGR BRAND TYPE SIZE CONTAINER RETAILPRICE COMMENT PARTSUPP PARTKEY SUPPKEY AVAILQTY SUPPLYCOST COMMENT SUPPLIER SUPPKEY NAME ADDRESS NATIONKEY PHONE ACCTBALL COMMENT Thomas Stocker & Patrick Sager LINEITEM ORDERKEY PARTKEY SUPPKEY LINENUMBER QUANTITY EXTENDEDPRICE DISCOUNT TAX RETURNFLAG LINESTATUS SHIPDATE COMMITDATE RECEIPTDATE SHIPINSTRUCT SHIPMODE COMMENT ORDER ORDERKEY CUSTKEY ORDERSTATUS TOTALPRICE ORDERDATE ORDERPRIORITY CLERK SHIPPRIORITY COMMENT NATION NATIONKEY NAME REGIONKEY COMMENT CUSTOMER CUSTKEY NAME ADDRESS NATIONKEY PHONE ACCTBALL MKTSEGMENT COMMENT REGION REGIONKEY NAME COMMENT Design unserer Cubes 14 TPC-D Frageanalyse PART PARTKEY NAME MFGR BRAND TYPE SIZE CONTAINER RETAILPRICE COMMENT SUPPLIER SUPPKEY NAME ADDRESS NATIONKEY PHONE ACCTBALL COMMENT PARTSUPP PARTKEY SUPPKEY AVAILQTY SUPPLYCOST COMMENT LINEITEM ORDERKEY PARTKEY SUPPKEY LINENUMBER QUANTITY EXTENDEDPRICE DISCOUNT TAX RETURNFLAG LINESTATUS SHIPDATE COMMITDATE RECEIPTDATE SHIPINSTRUCT SHIPMODE COMMENT ORDER ORDERKEY CUSTKEY ORDERSTATUS TOTALPRICE ORDERDATE ORDERPRIORITY CLERK SHIPPRIORITY COMMENT NATION NATIONKEY NAME REGIONKEY COMMENT Aggregate Group By Where (keine Keys und nur neues) Thomas Stocker & Patrick Sager CUSTOMER CUSTKEY NAME ADDRESS NATIONKEY PHONE ACCTBALL MKTSEGMENT COMMENT REGION REGIONKEY NAME COMMENT Design unserer Cubes 15 1. Cube: PartCube SUPPLIER SUPPKEY NAME ADDRESS NATIONKEY PHONE ACCTBALL COMMENT NATION NATIONKEY NAME REGIONKEY COMMENT PARTSUPP PARTKEY SUPPKEY AVAILQTY SUPPLYCOST COMMENT REGION REGIONKEY NAME COMMENT PART PARTKEY NAME MFGR BRAND TYPE SIZE CONTAINER RETAILPRICE COMMENT Part / 200K AVAILQTY 200K SUPPLYCOST VALUE=AVAILQTY*SUPPLYCOST Supplier / 10K Thomas Stocker & Patrick Sager Design unserer Cubes 16 Beispiel Thomas Stocker & Patrick Sager Design unserer Cubes 17 2. Cube: Orderprice ORDER ORDERKEY CUSTKEY ORDERSTATUS TOTALPRICE ORDERDATE ORDERPRIORITY CLERK SHIPPRIORITY COMMENT CUSTOMER CUSTKEY NAME ADDRESS NATIONKEY PHONE ACCTBALL MKTSEGMENT COMMENT NATION NATIONKEY NAME REGIONKEY COMMENT REGION REGIONKEY NAME COMMENT Orderdate / 450K Customer / 150K Clerk / 450K TOTALPRICE Thomas Stocker & Patrick Sager 1500K Design unserer Cubes 18 3. Cube: Umsatz PART PARTKEY NAME MFGR BRAND TYPE SIZE CONTAINER RETAILPRICE COMMENT LINEITEM ORDERKEY PARTKEY SUPPKEY LINENUMBER QUANTITY EXTENDEDPRICE DISCOUNT TAX RETURNFLAG LINESTATUS SHIPDATE COMMITDATE RECEIPTDATE SHIPINSTRUCT SHIPMODE COMMENT ORDER ORDERKEY CUSTKEY ORDERSTATUS TOTALPRICE ORDERDATE ORDERPRIORITY CLERK SHIPPRIORITY COMMENT Thomas Stocker & Patrick Sager SUPPLIER SUPPKEY NAME ADDRESS NATIONKEY PHONE ACCTBALL COMMENT CUSTOMER CUSTKEY NAME ADDRESS NATIONKEY PHONE ACCTBALL MKTSEGMENT COMMENT Seller / 10K NATION NATIONKEY NAME REGIONKEY COMMENT REGION REGIONKEY NAME COMMENT Shipdate / 1800K Part / 200K Buyer / 150K QUANTITY 6000K EXTENDEDPRICE DISCOUNT REVENUE=EXTENDEDPRICE*(1-DISCOUNT) Design unserer Cubes 19 Verbesserungsvorschläge System -1 Möglichkeit von Batchjobs Alle Cubes materialisieren Mehrere Cubes anwählen können Thomas Stocker & Patrick Sager Verbesserungsvorschläge 20 Verbesserungsvorschläge System -2 Wenn man mehrere Cubes materialisiert, kein Rollback über alle Cubes - falls Fehler. Partcube materialisiert Checkpoint Orderprice materialisiert Checkpoint Umsatz Materialisierung fehlgeschlagen Rollback Intelligenterer Zugriff auf Rohdaten. nur Daten im Join verwenden, die gebraucht werden. Thomas Stocker & Patrick Sager Verbesserungsvorschläge 21 Verbesserungsvorschläge Benutzung -1 Konsistenzprüfung am Ende des Designs anstatt nach jedem Schritt. Wizards in der Performance erhöhen. Bsp.: 60 min Design mit Wizard. 10 min Design mit Editor Zeitdimensionen schnelleres Design 1-4 Stunden bis man nur die Dimension definiert hat. Mit einem Index (in Oracle) auf das Zeit Attribut, wäre es auch schneller. Thomas Stocker & Patrick Sager Verbesserungsvorschläge 22 Verbesserungsverschläge Benutzung -2 Sinnlose Buttons vermeiden Thomas Stocker & Patrick Sager Verbesserungsvorschläge 23 Schlussfolgerungen Grenzen von Standard-SQL bei Aggregierung über mehrere Dimensionen. CUBE-Operator als n-dimensionale Erweiterung von GROUP BY und Aggregaten. ROLLUP-Operator als Linearisierung des CUBE-Operators. Beta Version des MS OLAP Managers noch nicht geeignet für grosse Datenmengen. Entkopplung von Design und Speicherung mit Hilfe des MS OLAP Managers. Einfache Benutzung der theoretischen Konzepte durch MS OLAP Manager Oberfläche. Thomas Stocker & Patrick Sager Schlussfolgerungen 24 Beispiel -1 Thomas Stocker & Patrick Sager Schlussfolgerungen 25 Beispiel -2 Thomas Stocker & Patrick Sager Schlussfolgerungen 26 Literaturverzeichnis -1 Die Folien von Teil I basieren hauptsächlich auf dem Artikel von Jim Gray [Gray 96] Papers: [Gray 96]: Jim Gray et al.: Data Cube: A Relational Aggregation Operator Generalizing Group-by, Cross-Tab, and SubTotals. Proc. of the International Conference on Data Engineering, 1996 [Agrawal 97]: Rakesh Agrawal, Ashish Gupta, Sunita Sarawagi: Modeling Multidimensional Databases. Proc. of the International Conference on Data Engineering, 1997 [Cabibbo]:Luca Cabibbo, Ricardo Torlone: A Logical Approach to Multidimensional Databases. In Sixth International Conference on Extending Database Technology (EDBT-98). Reports: [Pendse]:Nigel Pendse: The OLAP Report - Database Explosion: http://www.olareport.com/Database Explosion.htm Thomas Stocker & Patrick Sager Literaturliste 27 Literaturverzeichnis -2 Whitepapers: [WarStrat] Microsoft: Data Warehousing Strategy [DesServ] Microsoft: Microsoft SQL Server 7.0 Decision Support Services: Lowering the Cost of Business Intelligence Getting Started Exercises: [ExBas]: Microsoft Decision Support Services-Basic http://www.microsoft.com/sql/beta/featexercises.asp?A=4 [ExAdv]: Microsoft Decision Support Services-Advanced http://www.microsoft.com/sql/beta/featexercises.asp?A=4 Dokumentation: [Help]: Decision Support Services Documentation: [TPCD]:TPC-D Dokmentation: S.7, S.23-56. http://www.tpc.org Thomas Stocker & Patrick Sager Literaturliste 28