Data Warehousing & Data Mining

Similar documents
Summary. Summary. 5. Optimization. 5.1 Partitioning. 5.1 Partitioning. 26-Nov-10. B-Trees are not fit for multidimensional data R-Trees

Data Warehousing & Data Mining

Data Warehouse and Data Mining

Data Warehousing & Mining Techniques

Summary. 4. Indexes. 4.0 Indexes. 4.1 Tree Based Indexes. 4.0 Indexes. 19-Nov-10. Last week: This week:

2. Summary. 2.1 Basic Architecture. 2. Architecture. 2.1 Staging Area. 2.1 Operational Data Store. Last week: Architecture and Data model

Data Warehousing & Mining Techniques

Data Warehousing & OLAP

Decision Support. Chapter 25. CS 286, UC Berkeley, Spring 2007, R. Ramakrishnan 1

Processing of Very Large Data

Data Mining Concepts & Techniques

Data Warehousing and Decision Support

Data Warehousing. Wolf-Tilo Balke Silviu Homoceanu Institut für Informationssysteme Technische Universität Braunschweig

Data Warehousing and Decision Support. Introduction. Three Complementary Trends. [R&G] Chapter 23, Part A

Data Warehousing and Decision Support

Data Warehousing and Decision Support (mostly using Relational Databases) CS634 Class 20

CSE 544 Principles of Database Management Systems. Alvin Cheung Fall 2015 Lecture 8 - Data Warehousing and Column Stores

Data Warehouse and Data Mining

One Size Fits All: An Idea Whose Time Has Come and Gone

Data warehouses Decision support The multidimensional model OLAP queries

Information Management course

CS614 - Data Warehousing - Midterm Papers Solved MCQ(S) (1 TO 22 Lectures)

Data Warehousing and OLAP

Advanced Data Management Technologies

This tutorial will help computer science graduates to understand the basic-to-advanced concepts related to data warehousing.

Overview. DW Performance Optimization. Aggregates. Aggregate Use Example

Overview. Introduction to Data Warehousing and Business Intelligence. BI Is Important. What is Business Intelligence (BI)?

Distributed Data Management

Basics of Dimensional Modeling

Decision Support Systems aka Analytical Systems

Oracle 1Z0-515 Exam Questions & Answers

Evolution of Database Systems

ETL and OLAP Systems

Data Warehouses Chapter 12. Class 10: Data Warehouses 1

Data Warehousing 3. ICS 421 Spring Asst. Prof. Lipyeow Lim Information & Computer Science Department University of Hawaii at Manoa

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

Decision Support, Data Warehousing, and OLAP

Data Vault Partitioning Strategies WHITE PAPER

Accelerating BI on Hadoop: Full-Scan, Cubes or Indexes?

SQL Server Analysis Services

Data Warehousing Conclusion. Esteban Zimányi Slides by Toon Calders

Data Warehousing & OLAP

Distributed Data Management

Evolving To The Big Data Warehouse

Data Warehouse and Data Mining

Data Warehousing & Data Mining

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

ALTERNATE SCHEMA DIAGRAMMING METHODS DECISION SUPPORT SYSTEMS. CS121: Relational Databases Fall 2017 Lecture 22

Data Warehousing 2. ICS 421 Spring Asst. Prof. Lipyeow Lim Information & Computer Science Department University of Hawaii at Manoa

Data Warehousing & Mining Techniques

Lectures for the course: Data Warehousing and Data Mining (IT 60107)

Relational Database Systems 2 1. System Architecture

Advanced Data Management Technologies Written Exam

Data Mining. Data warehousing. Hamid Beigy. Sharif University of Technology. Fall 1394

collection of data that is used primarily in organizational decision making.

Data Warehousing. Overview

The Evolution of Data Warehousing. Data Warehousing Concepts. The Evolution of Data Warehousing. The Evolution of Data Warehousing

Syllabus. Syllabus. Motivation Decision Support. Syllabus

Data Warehouse Design Using Row and Column Data Distribution

Optimized Analytical Processing New Features with 11g R2

Data Warehousing Lecture 8. Toon Calders

Data Warehousing & Mining. Data integration. OLTP versus OLAP. CPS 116 Introduction to Database Systems

Fig 1.2: Relationship between DW, ODS and OLTP Systems

In-Memory Data Management

1 Dulcian, Inc., 2001 All rights reserved. Oracle9i Data Warehouse Review. Agenda

Data Warehousing & Data Mining

7. Building the DW. 7.1 The DW Project. 7.1 The DW Project. 7.1 The DW Project. 7.1 The DW Project. 7. Building the DW

HANA Performance. Efficient Speed and Scale-out for Real-time BI

Data Warehouse Performance - Selected Techniques and Data Structures

CHAPTER 3 Implementation of Data warehouse in Data Mining

5.3 Parser and Translator. 5.3 Parser and Translator. 5.3 Parser and Translator. 5.3 Parser and Translator. 5.3 Parser and Translator

Relational Database Systems 2 5. Query Processing

Data warehousing in Oracle

Data Warehouse and Data Mining

Data Warehouse and Data Mining

CSE 544 Principles of Database Management Systems. Fall 2016 Lecture 14 - Data Warehousing and Column Stores

Column Stores vs. Row Stores How Different Are They Really?

Data Mining & Data Warehouse

7. Query Processing and Optimization

ORACLE DATA SHEET ORACLE PARTITIONING

Big Data 13. Data Warehousing

Handout 12 Data Warehousing and Analytics.

Vendor: Microsoft. Exam Code: Exam Name: Developing SQL Data Models. Version: Demo

Chapter 9. Cardinality Estimation. How Many Rows Does a Query Yield? Architecture and Implementation of Database Systems Winter 2010/11

Data Warehousing and Decision Support, part 2

Data Warehousing ETL. Esteban Zimányi Slides by Toon Calders

OLAP Introduction and Overview

Data Warehouses. Yanlei Diao. Slides Courtesy of R. Ramakrishnan and J. Gehrke

Multimedia Databases. Wolf-Tilo Balke Younès Ghammad Institut für Informationssysteme Technische Universität Braunschweig

Microsoft Exam

A Multi-Dimensional Data Model

Data Mining. Part 2. Data Understanding and Preparation. 2.4 Data Transformation. Spring Instructor: Dr. Masoud Yaghini. Data Transformation

Introduction to Data Warehousing

Physical Design. Elena Baralis, Silvia Chiusano Politecnico di Torino. Phases of database design D B M G. Database Management Systems. Pag.

DATA MINING AND WAREHOUSING

Database design View Access patterns Need for separate data warehouse:- A multidimensional data model:-

Data Warehousing & Big Data at OpenWorld for your smartphone

CHAPTER 8: ONLINE ANALYTICAL PROCESSING(OLAP)

Data Warehousing & Data Mining

Data Warehousing & Data Mining

Transcription:

Data Warehousing & Data Mining Wolf-Tilo Balke Kinda El Maarry Institut für Informationssysteme Technische Universität Braunschweig http://www.ifis.cs.tu-bs.de

Summary Last Week: Optimization - Indexes for multidimensional data R-Trees UB-Trees Bitmap Indexes We continue this lecture with optimization Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 2

5. Optimization 5. Optimization 5.1 Partitioning 5.2 Joins 5.3 Materialized Views Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 3

5.1 Partitioning Breaking the data into several physical units that can be handled separately Granularity and partitioning are key to efficient implementation of a warehouse The question is not whether to use partitioning, but how to do it Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 4

5.1 Partitioning Why partitioning? Flexibility in managing data Smaller physical units allow Inexpensive indexing Sequential scans, if needed Easy reorganization Easy recovery Easy monitoring Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 5

5.1 Partitioning In DWs, partitioning is done to improve: Business query performance, i.e., minimize the amount of data to scan Data availability, e.g., back-up/restores can run at the partition level Database administration, e.g., adding new columns to a table, archiving data, recreating indexes, loading tables Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 6

5.1 Partitioning Possible approaches: Data partitioning where data is usually partitioned by Date Line of business Geography Organizational unit Combinations of these factors Hardware partitioning Makes data available to different processing nodes Sub-processes may run on specialized nodes Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 7

5.1 Data Partitioning Data partitioning levels Application level DBMS level vs. Partitioning on DBMS level is obvious, but it also makes sense to partition at application level E.g., allows different definitions for each year Important, since DWs span many years and as business evolves DWs change, too Think for instance about changing tax laws Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 8

5.1 Data Partitioning Data partitioning, involves: Splitting out the rows of a table into multiple tables i.e., horizontal partitioning Splitting out the columns of a table into multiple tables i.e., vertical partitioning Horizontal Master table Vertical Primary key Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 9

5.1 Data Partitioning Horizontal partitioning The set of tuples of a table is split among disjoint table parts Definition: A set of Relations {R 1,, R n } represent a horizontal partitioning of Master-Relation R, if and only if R i R, R i R j =Ø and R= i R i, for 1 i, j n According to the partitioning procedure we have different horizontal partitioning solutions Range partitioning, list partitioning and hash partitioning Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 10

5.1 Horizontal Partitioning Range Partitioning Selects a partition by determining if the partitioning key is inside a certain range A partition can be represented as a restriction on the master-relation R i = σ Pi (R), where P i is the partitioning predicate. The partitioning predicate can involve more attributes P 1 : Country = Germany and Year = 2016 P 2 : Country = Germany and Year < 2016 P 3 : Country Germany Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 11

5.1 Horizontal Partitioning List Partitioning A partition is assigned for a list of values If a row s partitioning key shows one of these values, it is assigned to this partition For example: all rows where the column Country is either Iceland, Norway, Sweden, Finland or Denmark could be a partition for the Scandinavian countries Can be expressed as a simple restriction on the master relation The partitioning predicate involves just one attribute P 1 : City IN ( Hamburg, Hannover, Berlin ) P 2 : City IN (DEFAULT) represents tuples which do not fit P 1 Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 12

5.1 Horizontal Partitioning Hash Partitioning The value of a hash function determines membership in a partition This kind of partitioning is often used in parallel processing The choosing of the hash function is decisive: the goal is to achieve an equal distribution of the data For each tuple t, of the master-table R, the hash function will associate it to a partition table R i R i = {t 1,, t m /t j R and H(t j ) = H(t k ) for 1 j, k m} Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 13

5.1 Horizontal Partitioning In DW, data is partitioned by the Time dimension Periods, such as week or month can be used or the data can be partitioned by the age of the data E.g., if the analysis is usually done on last month's data the table could be partitioned into monthly segments Some dimension other than time If queries usually run on a grouping of data: e.g. each branch tends to query on its own data and the dimension structure is not likely to change then partition the table on this dimension Table size If a dimension cannot be used, partition the table by a predefined size. If this method is used, metadata must be created to identify what is contained in each partition Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 14

5.1 Vertical Partitioning Vertical Partitioning Involves creating tables with fewer columns and using additional tables to store the remaining columns Usually called row splitting Row splitting creates one-to-one relationships between the partitions Different physical storage might be used e.g., storing infrequently used or very wide columns on a different device Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 15

5.1 Vertical Partitioning In DW, common vertical partitioning means Moving seldom used columns from a highly-used table to another table Creating a view across the two newly created tables restores the original table with a performance penalty However, performance will increase when accessing the highly-used data e.g. for statistical analysis Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 16

5.1 Vertical Partitioning In DWs with very large dimension tables like the customer table of Amazon (tens of millions of records) Most of the attributes are rarely if at all queried E.g. the address attribute is not as interesting for marketing as evaluating customers per age-group But one must still maintain the link between the fact table and the complete customer dimension, which has high performance costs! Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 17

5.1 Vertical Partitioning The solution is to use Mini-Dimensions, a special case of vertical partitioning Many dimension attributes are used very frequently as browsing constraints In big dimensions these constraints can be hard to find among the lesser used ones Logical groups of often used constraints can be separated into small dimensions which are very well indexed and easily accessible for browsing Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 18

5.1 Vertical Partitioning Mini-Dimensions, e.g., the Demography table Fact table ProdID TimeID GeoID CustomerID DemogrID Profit Qty Customer table CustomerID Last Name First Name Address DemogrID Demography DemogrID Age group Income group Area Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 19

5.1 Vertical Partitioning All variables in these mini-dimensions must be presented as distinct classes The key to the mini-dimension can be placed as a foreign key in both the fact and dimension table from which it has been broken off Mini-dimensions, as their name suggests, should be kept small and compact Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 20

5.1 Partitioning Advantages Records used together are grouped together Each partition can be optimized for performance Security, recovery Partitions stored on different disks: contention Take advantage of parallel processing capability Disadvantages Slow retrieval across partitions (expensive joins) Complexity Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 21

5.1 Partitioning Use partitioning when: A table is larger than 2GB (from Oracle) A table has more than 100 Million rows (practice) Think about it, if the table has 1 million rows Partitioning does not come for free! Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 22

5.1 Partitioning Partitioning management Partitioning should be transparent outside the DBMS The applications work with the Master-Table at logical level The conversion to the physical partition tables is performed internally by the DBMS It considers also data consistency as if the data were stored in just one table Partitioning transparency is not yet a standard. Not all DBMS support it! Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 23

5.1 Partitioning Management Partitions in practice Oracle supports Range-, List-, Hash-, Interval-, System- Partitions as well as combinations of these methods E.g., partitioning in Oracle: CREATE TABLE SALES( ProdID NUMBER, GeoID NUMBER, TimeID DATE, Profit NUMBER) PARTITION BY RANGE(timeID)( PARTITION before 2015 VALUES LESS THAN (TO_DATE ( 01-JAN- 2015, DD-MM-YYYY )), PARTITION 2015 VALUES LESS THAN (TO_DATE ( 01-JAN- 2016, DD-MM-YYYY )) ); Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 24

5.1 Partitioning Management In Oracle partitioning is performed with the help of only one function - LESS THAN Partition data in the current year ALTER TABLE Sales ADD PARTITION after 2016 VALUES LESS THAN (MAXVALUE); Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 25

5.1 Partitioning Management Partitioning: RowID ProdID GeoID TimeID Profit 121 132 2 05.2014 8K 122 12 2 08.2015 7K 123 15 1 09.2014 5K 124 14 3 01.2016 3K 125 143 2 03.2016 1,5K 126 99 3 05.2014 1K RowID ProdID GeoID TimeID Profit 121 132 2 05.2014 8K 123 15 1 09.2014 5K 126 99 3 05.2014 1K RowID ProdID GeoID TimeID Profit 122 12 2 08.2015 7K RowID ProdID GeoID TimeID Profit 124 14 3 01.2016 3K 125 143 2 03.2016 1,5K Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 26

5.1 Partitioning Management In the data cleaning phase, records can be updated. For partition split tables, this means data migration: UPDATE Sales SET TimeID = 05.2015' WHERE RowID = 121; ERROR at line 1: ORA-14402: updating partition key column would cause a partition change RowID ProdID GeoID TimeID Profit 121 132 2 05.2014 8K 123 15 1 09.2014 5K 126 99 3 05.2014 1K RowID ProdID GeoID TimeID Profit 122 12 2 08.2015 7K RowID ProdID GeoID TimeID Profit 124 14 3 01.2016 3K 125 143 2 03.2016 1,5K Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 27

5.1 Partitioning Management Data migration between partitions is by default disabled ALTER TABLE Sales ENABLE ROW MOVEMENT; ROW MOVEMENT deletes the record from one partition and inserts it into another The issue is that RowID is automatically changed! RowID ProdID GeoID TimeID Profit 121 132 2 05.2014 8K 123 15 1 09.2014 5K RowID ProdID GeoID TimeID Profit 122 12 2 08.2015 7K 13256 132 2 05.2015 8k 126 99 3 05.2014 1K Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 28

5.2 Join Optimization Often queries over several partitions are needed This results in joins over the data Though joins are generally expensive operations, the overall cost of the query may strongly differ with the chosen evaluation plan for the joins Joins are commutative and associative R S S R R (S T) (S R) T Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 29

5.2 Join Optimization This allows to evaluate individual joins in any order Results in join trees Different join trees may show very different evaluation performance Join trees have different shapes Within a shape, there are different relation assignments possible Example: R S T U R S T R S T U U Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 30

5.2 Join Optimization Number of possible join trees grows rapidly with number of join relations For n relations, there are T(n) different tree shapes T (1) 1 n 1 T ( n) T ( i) T ( n i) i 1 Any number of 1 i n-1 relations may be in the left subtree and ordered in T(i) shapes while the remaining n-i relations form the right subtree and can be arranged in T(n-i) shapes. Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 31

5.2 Join Optimization Optimizer has 3 choices Consider all possible join trees Generally prohibitive Consider a subset of all trees Restrict to trees of certain shapes Use heuristics to pick a certain shape Classical join order optimization is discussed in more detail in the RDB2 lecture Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 32

5.2 Join Optimization in DW Relational optimization of star-joins Star schema comprises a big fact table and many small dimension tables Product Product_ID Product group Product category Description An OLAP SQL query joins dimension and fact tables usually in the WHERE clause Sales Product_ID Time_ID Geo_ID Sales Revenue sales.prodid = product.prodid AND sales.timeid = time.timeid AND sales.geoid = geo.geoid AND time.year = 2016 AND geo.country = Germany AND product.group = washing machines 1 n n n 1 1 Time Time_ID Day Week Month Quarter Year Geography Geo_ID Store State Region Country Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 33

5.2 Join Optimization in DW If the OLAP query specifies restrictions or group by s on n dimensions, an n+1 order join is necessary Joins can be performed only pair-wise, resulting in (n+1)! possible join orders Product σ month = Jan 2016 σ group = Electronics Time σ country = Germany Sales Geo Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 34

5.2 Join Heuristics To reduce the number of join-orders, heuristics 1 are used In OLTP heuristics show that it is not a good idea to join tables that are not connected via some attribute to each other E.g., Geo with Time relation leads to a Cartesian product x Sales Product_ID Time_ID Geo_ID Sales Revenue σ country= Germany σ month= Jan 2016 n n n 1 1 Time Time_ID Day Week Month Quarter Year Geography Geo_ID Store State Region Country Geo Time Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 35

5.2 Join Heuristics But this heuristic rule from OLTP is not suitable for DW! E.g., join Sales with Geo in the following case: Sales has 10 mil records, in Germany there are 10 stores, in January 2016 there were products sold in 20 days, Sales σ country = Germany Geo and the Electronics group has 50 products If 20% of our sales were performed in Germany, the selectivity is small and an index would not help that much The intermediate result would still comprise 2 mil records Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 36

5.2 Dimensional Cross Product In star-joins a cross product of the dimension tables is recommended Geo dimension 10 stores Time dimension 20 days Product dimension 50 products 10*20*50 = 10 000 records after performing the cross product of the dimensions Geo The total selectivity is in this case 0.1% which is fit for using an index x x Time Product σ country= Germany σ month= Jan 2016 σ Sales group= Electronics Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 37

5.2 Dimensional Cross Product But dimension cross products can also become expensive If the restrictions on the dimensions are not restrictive enough or if there are many dimension tables E.g. query for the sales of all electronic products of a company in 2015: The company has 100 stores in Germany and it sells 1000 types of electronics products In 2015 it sold products in 300 working days Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 38

5.2 Dimensional Cross Product 100 stores * 300 days * 1.000 products = 30 mil records 30 000 000 30 000 x x 100 300 σ 1 000 group= Electronics Product 100 000 000 Sales σ country= Germany Geo σ year= 2015 Time Very expensive to compute Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 39

5.2 Star-Join Optimization IBM DB2 solution for expensive dimension cross products Build B*-Tree indexes on the fact table for each dimension Apply a semi-join on each index and the corresponding dimension Keep all index entries for the Sales fact table for sales in Germany σ country= Germany Index on Sales(GeoID) Geo Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 40

5.2 Star-Join Optimization Index on Sales for GeoID GeoID ID 1 1 1 2 4 3 Geo GeoID Store City Country 1 S1 BS Germany 2 S2 BS Germany 3 S3 HAN Germany 4 S4 Lyon France GeoID ID 1 1 1 2 σ country= Germany GeoID Store City Country 1 S1 BS Germany 2 S2 BS Germany 3 S3 HAN Germany Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 41

5.2 Star-Join Optimization Index on Sales for our query Index on Sales for electronics σ country= Germany σ PGroup= Electronics σ Year= 2014 Index on Sales(GeoID) Geo Index on Sales(ProdID) Prod Index on Sales(TimeID) Time Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 42

5.3 Materialized Views Materialized Views (MV) Views whose tuples are stored in the database are said to be materialized They provides fast access, like a (very high-level) cache Need to maintain the view as the underlying tables change Ideally, we want incremental view maintenance algorithms Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 43

5.3 Materialized Views How can we use MV in DW? E.g., we have queries requiring us to join the Sales table with another table and aggregate the result SELECT P.Categ, SUM(S.Qty) FROM Product P, Sales S WHERE P.ProdID=S.ProdID GROUP BY P.Categ SELECT G.Store, SUM(S.Qty) FROM Geo G, Sales S WHERE G.GeoID=S.GeoID GROUP BY G.Store. There are more solutions to speed up such queries Pre-compute the two joins involved (product with sales and geo with sales) Pre-compute each query in its entirety Or use an already materialized view Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 44

5.3 Materialized Views Having the following view materialized CREATE MATERIALIZED VIEW Totalsales (ProdID, GeoID, total) AS SELECT S.ProdID, S.GeoID, SUM(S.Qty) FROM Sales S GROUP BY S.ProdID, S.GeoID We can use it in our 2 queries SELECT P.Categ, SUM(T.Total) FROM Product P, Totalsales T WHERE P.ProdID=T.ProdID GROUP BY P.Categ SELECT G.Store, SUM(T.Total) FROM Geo G, Totalsales T WHERE G.GeoID=T.GeoID GROUP BY G.Store Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 45

5.3 Materialized Views MV issues Utilization What views should we materialize, and what indexes should we build on the pre-computed results? Choice of materialized views Given a query and a set of materialized views, can we use the materialized views to answer the query? Maintenance How frequently should we refresh materialized views to make them consistent with the underlying tables? And how can we do this incrementally? Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 46

5.3 Utilization of MVs Materialized views utilization has to be transparent Queries are internally rewritten to use the available MVs by the query rewriter The query rewriter performs integration of the MV based on the query execution graph Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 47

5.3 Utilization of MVs E.g., materialized views utilization, mono-block query (perfect match) Query Q σ Sales π Price, Group, Store MV M σ Sales, Invoice π Price, Group Query Q` σ Sales π Store,Price,Group σ G Sales σ P σ F σ G σ F σ P Geo Product MV M Geo Sales Product Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 48

5.3 Integration of MVs Integration of MV Valid replacement: A query Q` represents a valid replacement of query Q by utilizing the materialized view M, if Q and Q` always deliver the same result set For general relational queries, the problem of finding a valid replacement is NP-complete But there are practically relevant solutions for special cases like star-queries Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 49

5.3 Integration of MVs In order to be able to integrate MV M in Q and obtain Q`, the following conditions need to be respected The selection condition in M cannot be more restrictive than the one in Q The projection from Q has to be a subset of the projection from M It has to be possible to derive the aggregation functions of π(q) from π(m) Additional selection conditions in Q have to be possible also on M Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 50

5.3 Integration of MVs How do we use MV even when there is no perfect match? (Multi-block queries) If the selection in M is more restrictive than the selection in Q Split the query Q in two parts, Q a and Q b such that σ(q a ) = (σ(q) σ(m)) and σ(q b ) = (σ(q) σ(m)) Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 51

5.3 Integration of MVs Query Q σ Sales π Price, Group, Store σ G σ F[Q] σ F[M] Query Q` - all sales - More restrictive: all sales above a threshold σ F[Q] σ P Geo ALL Sales Product σ Sales π Store σ Sales π Price, Group, Store MV M σ Sales, Invoice π Price, Group σ F[M] σ P σ F[Q] σ F[M] MV M Geo σ F[Q] σ F[M] Sales Sales Product Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 52 σ G σ P Product

5.3 MVs in DWs In DW, materialized views are often used to store aggregated results The number of nodes in the lattice of cuboids is n = j=1 n 2 = 2 n n = 3, n = 8 and we would need to materialize 2-D cuboids 1-D cuboids and 0D cuboids; in total 7 views n = 16, n = 65534, too much to materialize What should we materialize? Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 53

5.3 Choosing the MV to Use Choosing the views to materialize Static choice: The choice is performed at a certain time point by the DB administrator (not very often) or by an algorithm The set of MVs remains unmodified until the next refresh The chosen MVs correspond to older queries Dynamical choice: The MV set adapts itself according to new queries Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 54

5.3 Static Choice Static choice Choose which views to materialize, in concordance with the benefit they bring The benefit is computed based on a cost function The cost function involves Query costs Statistical approximations of the frequency of the query Actualization/maintenance costs Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 55

5.3 Static Choice The problem of choosing what to materialize is now a classical knapsack problem We have a maximum MV storage size and the cost of each node in the lattice The choice algorithm is greedy Input: the lattice of cuboids, the expected cardinality of each node, and the maximum storage size available to save MVs It calculates the nodes from the lattice which bring the highest benefit according to the cost function, until there is no more space to store MVs Output: the list of lattice nodes to be materialized Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 56

5.3 Choosing the MV to Use Disadvantages of static choice OLAP applications are interactive Usually, the user runs a series of queries to explain a behavior he has observed, which happened for the first time So now the query set comprises hard to predict, ad-hoc queries Even if the query pattern would be observed after a while, it is unknown for how much time it will remain used Queries are always changing Often modification to the data leads to high update effort There are, however, also for OLAP applications, some often repeating queries that should in any case be statically materialized Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 57

5.3 Choosing the MV to Use Dynamic choice of MV Monitor the queries being executed over time Maintain a materialized view processing plan (MVPP) by incorporating most frequently executed queries Modify MVPP incrementally by executing MVPP generation algorithm (in background) Decide on the views to be materialized Reorganize the existing views Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 58

5.3 Dynamic Choice of MV It works on the same principle as caching, but with semantic knowledge Considered factors for calculating the benefit are: Time of the last access Frequency Size of the materialized view The costs a new calculation or actualization would produce for a MV Number of queries which were answered with the MV Number of queries which could be answered with this MV Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 59

5.3 Dynamic Choice of MV Dynamic update of the cache In each step, the benefit of MV in the cache as well as of the query are calculated All MVs as well as the query result are sorted according to the benefit The cache is then filled with MV in the order of their benefit, from high to low This way it can happen that one or more old MVs are replaced, to insert the result of the current query Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 60

5.3 Maintenance of MV Maintenance of MV Keeping a materialized view up-to-date with the underlying data Important questions How do we refresh a view when an underlying table is refreshed? When should we refresh a view in response to a change in the underlying table? Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 61

5.3 How to Refresh a MV Materialized views can be maintained by recomputation on every update Not the best solution A better option is incremental view maintenance Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 62

5.3 How to Refresh a MV Incremental view maintenance Changes to database relations are used to compute changes to the materialized view, which is then updated Considering that we have a materialized view V, and that the basis relations suffer modifications through inserts, updates or deletes, we can calculate V` as follows V` = (V - - ) +, where - and + represent deleted respectively inserted tuples Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 63

5.3 When to Refresh a MV Immediate As part of the transaction that modifies the underlying data tables Advantage: materialized view is always consistent Disadvantage: updates are slowed down Deferred Some time later, in a separate transaction Advantage: can scale to maintain many views without slowing updates Disadvantage: view briefly becomes inconsistent Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 64

5.3 When to Refresh a MV Deferred refresh comes in 3 flavors Lazy: delay refresh until next query on view, then refresh before answering the query Periodic (Snapshot): refresh periodically; queries are possibly answered using outdated version of view tuples; widely used for DW Event-based: e.g., refresh after a fixed number of updates to underlying data tables Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 65

Summary Partitioning: Horizontal or Vertical Records used together are grouped together However: slow retrieval across partitions Mini-Dimensions Joins: for DW it is sometimes better to perform cross product on dimensions first Materialized Views: we can t materialize everthing Static or Dynamic choice of what to materialize The benefit cost function is decisive Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 66

Next lecture Queries! OLAP queries SQL for DW MDX Data Warehousing & Data Mining Wolf-Tilo Balke Institut für Informationssysteme TU Braunschweig 67