Bridging the between
Jens-Peter Dittrich1,* Donald Kossmann1,2 Alexander Kreutz2
1ETH Zurich, Switzerland
*Affiliation 2003-2004: SAP BW OLAP Technology
2i-TV-T AG, Germany
Fjord Bridging the between Gap OLAP SQL and - - PowerPoint PPT Presentation
Fjord Bridging the between Gap OLAP SQL and Jens-Peter Dittrich 1, * Donald Kossmann 1,2 Alexander Kreutz 2 1 ETH Zurich, Switzerland *Affiliation 2003-2004: SAP BW OLAP Technology 2 i-TV-T AG, Germany OLAP: The CEOs
Jens-Peter Dittrich1,* Donald Kossmann1,2 Alexander Kreutz2
1ETH Zurich, Switzerland
*Affiliation 2003-2004: SAP BW OLAP Technology
2i-TV-T AG, Germany
08/30/05
OLAP: The CEO’s View
2
08/30/05
OLAP: The Ph.D.’s View
3
OLAP Engine RDBMS/SQL OLAP Client RDBMS/SQL OLAP Client
Not true! Not true! Not true! Not true!
08/30/05
Good!
OLAP Engine
What do OLAP Engines do?...
4
RDBMS/SQL OLAP Client ...OLAP engines bridge the gap between OLAP and SQL!
08/30/05
The Gap
5
Bridging the Gap Closing the Gap
State Customer Product Profit S1 C1 P1 1.0 S1 C1 P2 1.0 S1 C2 P1 1.0 S1 C2 P2 1.0 S2 C1 P1 1.0 S2 C1 P2 1.0 S2 C2 P1 1.0 S2 C2 P2 1.0
Input
Relational Model
Result of SQL Rollup
08/30/05
Relational Model: NULL-values
7
Take care NULL has two different meanings in SQL:
The semantics of a NULL-value can be obtained calling GROUPING().
Result of SQL Rollup
08/30/05
Relational Model: order on rows
8
The result table is ordered lexicographically. Result of SQL Rollup
08/30/05
Relational Model: multi columns
9
Result of SQL Rollup Interpreting NULL- values as multi columns
08/30/05
Relational Model: multi rows
10
Result of SQL Rollup Interpreting NULL- values as multi columns Interpreting adjacent similar values as multi rows
08/30/05
Relational Model: order on columns
11
These cells look different if we chose a different order
Customer, State, Product
08/30/05
Relational Model: Pivot Tables
e.g. (∑∑,P1), (∑∑,P2).
12
Pivot attribute values become attribute names
08/30/05
Relational Model: Summary
13
State Customer Product Profit S1 C1 P1 1.0 S1 C1 P2 1.0 S1 C2 P1 1.0 S1 C2 P2 1.0 S2 C1 P1 1.0 S2 C1 P2 1.0 S2 C2 P1 1.0 S2 C2 P2 1.0
SQL to Pivot Recipe
08/30/05
14
Closing the Gap The Gap Bridging the Gap
08/30/05
Example: BTell’s Operator Model
15
Cache Sort Group Drill-down Filter Filter Observable Result Cache Cache Fetch Split Format Link Align
XML ConvertCell Merge
HTML Convert Excel Convert x xy y x, xy, y x xy y merged data3S operators 1S operators RDBMS Client Client Client Btell OLAP Engine Pivot
x xy y x xy y x xy y x xy y x xy y x xy y x xy ytypes of operators:
1S: returns one output stream [Graefe: Volcano] 3S: returns three output streams:
08/30/05
More Examples
16
see paper
08/30/05
17
The Gap Bridging the Gap Closing the Gap
08/30/05
How to reach OLAP Heaven?
Open questions: How to handle non-relational data? (nested relations?)
18
08/30/05
How to reach OLAP Heaven?
Open questions: How to handle non-relational data? (nested relations?)
19
I m p r
a b l e
08/30/05
How to reach OLAP Heaven?
Open questions: How to handle non-relational data? (nested relations?)
Hard to agree upon Works only for part of the market (see e.g. MDX)
20
I m p r
a b l e
08/30/05
How to reach OLAP Heaven?
Open questions: How to handle non-relational data? (nested relations?)
Hard to agree upon Works only for part of the market (see e.g. MDX)
21
I m p r
a b l e I m p r
a b l e
08/30/05
How to reach OLAP Heaven?
Open questions: How to handle non-relational data? (nested relations?)
Hard to agree upon Works only for part of the market (see e.g. MDX)
Recent proposal for ‘group by’ in XQuery from IBM [SIGMOD 2005]
22
I m p r
a b l e I m p r
a b l e
08/30/05
How to reach OLAP Heaven?
Open questions: How to handle non-relational data? (nested relations?)
Hard to agree upon Works only for part of the market (see e.g. MDX)
Recent proposal for ‘group by’ in XQuery from IBM [SIGMOD 2005]
23
I m p r
a b l e I m p r
a b l e P r
a b l e !
08/30/05
Why XML/XQuery?
24
08/30/05
Example: Pivot Result
25
08/30/05
XQuery+OLAP Extensions
Get 95% of the OLAP query processing pushed into the DBMS (today: 10-20%)
and client
easier
26
RDBMS/SQL OLAP Client OLAP Engine
OLAP Engine
08/30/05
XQuery/OLAP: ON ROWS, ON COLUMNS
27
08/30/05
XQuery/OLAP: ROLLUP
28
08/30/05
XQuery/OLAP: MDVIEW (1/2)
29
08/30/05
XQuery/OLAP: MDVIEW (2/2)
30
08/30/05
XQuery/OLAP: SESSIONS, DEFINE&REDEFINE
31
08/30/05
XQuery/OLAP: SESSIONS, NOTIFY (1/2)
32
08/30/05
XQuery/OLAP: SESSIONS, NOTIFY (2/2)
33
08/30/05
Conclusions
not powerful enough for OLAP
34
Future Work
SQL OLAP
08/30/05
Thanks for your attention!
Contact Author jens.dittrich @ inf.ethz.ch www.inf.ethz.ch/~jensdi
35
More about my research on Thursday, Software Demo Group 6
08/30/05
Backup Slides
36
08/30/05
The Gap
37
Bridging the Gap Closing the Gap
08/30/05
altered, the DBMS receives the entire query definition.
Navigation (1/2)
38
08/30/05
Navigation (2/2)
39 Dimensions:
Customer Product
Dimensions:
Customer
Roll-up Drill-down
Dimensions:
Roll-up Drill-down Drill-down Roll-up by Product by Customer by Customer, Product
08/30/05
Caching (1/2)
40
OLAP Client
{ Cubes, Rollups, Pivots } { HTML, XML, Excel }
OLAP Engine
{ Cubes, Rollups, Pivots } { Materialized Views }
RDBMS/SQL RDBMS/SQL
{ Materialized Views } { Tables }
10,000 feet perspective
08/30/05
Caching (2/2)
manually
41
OLAP Client
{ Cubes, Rollups, Pivots } { HTML, XML, Excel }
OLAP Engine
{ Cubes, Rollups, Pivots } { Materialized Views }
RDBMS/SQL RDBMS/SQL
{ Materialized Views } { Tables }
10,000 feet perspective
Too bad: