Documente Academic
Documente Profesional
Documente Cultură
Surajit Chaudhuri
Microsoft Research, Redmond, WA, USA surajitc@microsoft.com
Umeshwar Dayal
Hewlett-Packard Labs., Palo Alto, CA, USA dayal@hpl.hp.com
What is OLAP?
On-Line
Analytical Processing Information technology to help the knowledge worker (executive, manager, analyst) make faster and better decisions. OLAP is an element of decision support systems (DSS).
3 2
Dealers:
Time
Sales:
a new sales record that indicates that a red VW Golf was sold in Boston, MA how many black and silver VW Passats were sold at dealership #123 on April 11th 2005
see
comparative sales of the different colors of VW Golf by state which months are particularly favorable to the sale of different VW models and colors VW dealerships by revenue, displaying a ranked list of dealerships and % differences in sales between each dealership and the one ranked 1 place higher
5
See
Rank
OLAP Knowledge worker Decision support Subject-oriented (Star, snowflake) Historical, Consolidated Summarized, Multidimensional Ad hoc Complex query Read mostly Lots of scans Millions Hundreds 100 GB - TB Query throughput, response
6
Extensive use of aggregation, often on related datasets Aggregation over time periods Ranking Use of statistical functions Very large datasets Expectation of an interactive response time
of OLAP is to support ad-hoc querying for the business analyst (Power user) Business analysts are familiar with spreadsheets Extend spreadsheet analysis model to work with warehouse data
Large data set Semantically enriched to understand business terms (e.g., time, geography) Combined with reporting features
Multidimensional
OLAP.
Surajit Chaudhuri, Umeshwar Dayal
Dimensions
Attribute Hierarchies
Attributes
of a dimension may be related An m:1 dependency is most common Dependency graph may be:
Hierarchy: e.g., city -> state -> country Lattice: date -> month -> year date -> week -> year
Hierarchies
are most common Dependencies influence choice of operations and data representation
Surajit Chaudhuri, Umeshwar Dayal 10
Multidimensional Data
Sales volume as a function of product, time, geography
Dimensions
Color, State, Date
WI
CA NY
Attributes
date (year, month, day)
Color
10 50 20 12 15 10
1 2 3 4 5 67
Date
Product
OLAP (ROLAP)
Relational and Specialized Relational DBMS to store and manage warehouse data OLAP middleware to support missing pieces Optimize for each DBMS backend Aggregation Navigation Logic Additional tools and services
Multidimensional
OLAP (MOLAP)
12
Multiple Aggregations
Create
a 2-dimensional spreadsheet that shows sum of sales by year as well as by model of car Each subtotal requires a separate aggregate query
STATE
Y E A R Sum By State
Surajit Chaudhuri, Umeshwar Dayal 13
Sum by Year
14
N = 3 dimensions model = {Golf, Jetta} color = {red, black, white} state = {NY, CA, WI} How many aggregate tuples in the data cube? face 1D agg; edge 2D agg; corner 3D agg
15
Aggregation (roll-up) of detailed data to create summary data Navigation to detailed data (drill-down) from summary Selection (slice) defines a subcube
Project the cube on fewer dimensions by specifying coordinates of remaining dimensions e.g., sales where state = NY and month = Jan
Calculation
Within a dimension, e.g., (sales - expense) by state Across dimensions
Ranking
top 3% of states by average sales
Window Queries
16
17
Select color, sum(price) From SALES Where model = Golf slicing Group By color dicing
Keep
18
More Examples
Q: Given a query, which values from the CUBE do we need to retrieve?
Pivot (Rotate)
LA SF NY Juice 10 Cola 50 Milk 20 Cream 12 Toothpaste 15 Soap 10
Product
1 2 3 4 5 67
Month
Fact data: Sales volume in $100
City
Product
21
single fact table and a single table for each dimension Generated keys are used for performance and maintenance reasons Fact constellation: Multiple Fact tables that share common dimension tables
Example: ProjectedExpense and ActualExpense may share dimensional tables
Snowflake
Year
Year
Performance Considerations
Normalization
Re-use can speed up performance How can we use pre-computed results effectively?
Data
Crucial to use indexes effectively Need for new indexing techniques: bitmap indexes, join indexes
25
alternative representation of RID-list Comparison, join and aggregation operations are reduced to bit arithmetic Specially advantageous for low-cardinality domains
Significant reduction in space and I/O (30:1) Adapted for higher cardinality domains Compression (e.g., run-length encoding) exploited Upper Bound of 2R words for any bitmap over R rows [Hasan & Sinha, 1997]
26
1
1 0
0
0 1
1
1
0 0 0 0
0 0 0 0
1 0 0 0
0 0 0 1
0 1 1 0
27
Join Index
Traditional
index maps the value in a column to a list of rows with that value Join index maintain relationships between attribute value of a dimension and the matching rows in the fact table Join index may span multiple dimensions (composite join index)
Use join index to identify regions of cartesian product that are of interest Few people in Southern California may buy umbrellas
28
Maintain
bit mapped join indexes between each dimension table and the fact table To answer a query over multiple dimensions
Take intersection of join indexes until the set of candidate fact tuples is small Do foreign key joins with rest of the dimension tables Look up the fact table
29
Date
DateKey Date Month Year
component for ROLAP Servers Choice of aggregate views to materialize Physical representation of Materialized Views in the star schema Logic for Aggregation Navigation
make optimum use of materialized aggregates to answer a query
31
can increase dramatically if precomputed views are not chosen properly Must take into account queries in the workload, their frequencies and their costs The decision must be taken in the broader context of physical database design
e.g., should take into account the choice of indexes
Heuristic
32
query can use a view through a selection if Each selection condition C on each dimension d in the query is Logically implies a condition C on dimension d in the view Example: A view has sum(sales) by product and by year for products introduced after 1991 OK to use for sum(sales) by product for products introduced after 1992 CANNOT use for sum(sales) for products introduced after 1989
Surajit Chaudhuri, Umeshwar Dayal 33
view V may be applicable via roll-up if for every grouping attribute g of the query Q: Q has Group By a1,..,g, an V has Group By a1,..,h, an Attribute g is higher than h in the attribute hierarchy Aggregation functions are distributive Example: Compute sum(sales) by category from the view sum(sales) by product
34
Data Warehouse
A
decision support database that is maintained separately from the organizations operational databases. A data warehouse is a
subject-oriented, integrated, time-varying, non-volatile collection of data that is used primarily in organizational decision making.
-- W.H. Inmon, Building the Data Warehouse, 1992.
Surajit Chaudhuri, Umeshwar Dayal 35
Op dbs designed & tuned for known trans. workloads. Complex OLAP queries would degrade performance for operational transactions. Special data organization, access & implementation methods needed for multidimensional views & queries.
Function
Missing data: Decision support requires historical data, which op dbs do not typically maintain. Data consolidation: Decision support requires data consolidation (aggregation, summarization) from many heterogeneous sources: op dbs, external sources. Data quality: Different sources typically use inconsistent data representations, codes, and formats, which have to be reconciled.
Surajit Chaudhuri, Umeshwar Dayal 36
OLAP
External sources
Operational dbs
Query/Reporting
Serve Data Mining
Front-End Tools
37
data warehouse: collects all information about subjects (customers, products, sales, assets, personnel) that span the entire organization.
Requires extensive business modeling. May take years to design and build.
Data
Virtual
materialize some summary views for efficient query processing easier to build requisite excess capacity on operational db servers.
Surajit Chaudhuri, Umeshwar Dayal 38
Three-Tier Architecture
Warehouse OLAP
database server
servers
Relational OLAP (ROLAP): extended relational DBMS that maps operations on multidimensional data to standard relational operations. Multidimensional OLAP (MOLAP): special purpose server that directly implements multidimensional data and operations.
Clients
39
Sort, summarize, consolidate, compute views, check integrity, build indexes, partition
Refresh
40
Data Cleaning
Why?
Data warehouse contains data that is analyzed for business decisions More data and mulitple sources could mean more errors Results in incorrect analysis
Detecting
data anomalies and rectifying them early has huge payoffs Important to identify tools that work together well Long Term Solution
Change business practices and data entry tools Repository for metadata
Surajit Chaudhuri, Umeshwar Dayal 41
Load
Issues:
huge volumes of data to be loaded small time window (usually at night) when the warehouse can be taken off-line when to build indexes and summary tables allow system administrator to monitor status, cancel suspend, resume load, or change load rate restart after failure with no loss of data integrity.
Techniques:
batch load utility: sort input records on clustering key and use sequential I/O; build indexes and derived tables sequential loads still too long (~100 days for TB) use parallelism and incremental techniques.
Surajit Chaudhuri, Umeshwar Dayal 42
Parallel Load
Pipelined and partitioned parallelism
Source tables
Scan
Sort runs
Merge runs
Table insert
Target tables
Build index record Sort runs Merge runs Index insert Target index
Incremental Load
Full load may still take too long. entire load is a (long) batch transaction replace old table with new after transaction commits use periodic checkpoints; after failure, restart from last checkpoint. Use incremental loads during refresh to reduce data volume insert only updated tuples now, incremental load conflicts with queries break into sequence of shorter transactions (every ~1000 records, every few seconds) coordinate this sequence of transactions: must ensure consistency between base tables and derived tables & indices.
44
Refresh
Issues:
when to refresh on every update: too expensive, only necessary if OLAP queries need current data (e.g., up-to-theminute stock quotes) periodically (e.g., every 24 hours, every week) or after significant events refresh policy set by administrator based on user needs and traffic possibly different policies for different sources. how to refresh.
45
Refresh Techniques
Full
read entire source table or database: expensive may be the only choice for legacy databases or files. Incremental techniques (related to work on active dbs) detect & propagate changes on base tables: replication servers snapshots & triggers (Oracle) transaction shipping (Sybase) logical correctness computing changes to star tables computing changes to derived and summary tables optimization: only significant changes transactional correctness: incremental load.
Surajit Chaudhuri, Umeshwar Dayal 46