Академический Документы
Профессиональный Документы
Культура Документы
Klaus Majenz
Overview
complete DW & BI product, comprising ...
ETL tools (extractors, transformation, monitoring, scheduling, ...) OLAP engine data mining engine repository analytical front-end (web- or Excel-based, agents, GIS, ...) prepacked models, built by SAP application departments
client-server architecture
SAP web application servers database server: 7 commercial RDBMS platforms supported (Oracle, MS, 4IBM, SAP)
Overview
Scenario (1)
Year 1998 1998 1998 1998 1998 1998 1998 1998 1998 1998 1998
Month 011998 011998 011998 011998 011998 011998 011998 011998 011998 011998 011998
Day City Region Country Sales Pers. 19980101 BERLIN DE-NORTH DE JIM 19980101 BERLIN DE-NORTH DE MARISA 19980102 BERLIN DE-NORTH DE JACK 19980103 BERLIN DE-NORTH DE MANDY 19980120 MILAN IT-NORTH IT MONICA 19980121 MILAN IT-NORTH IT MONICA 19980122 MILAN IT-NORTH IT BILL 19980123 MILAN IT-NORTH IT JOE 19980124 MILAN IT-NORTH IT JIM 19980124 FRANKFURT DE-SOUTH DE KIM 19980125 FRANKFURT DE-SOUTH DE BILL
Division SOFTWARE SOFTWARE SOFTWARE SOFTWARE SOFTWARE SOFTWARE HARDWARE HARDWARE HARDWARE HARDWARE HARDWARE
Distr. Ch. INTERNET INTERNET AGENT RETAIL AGENT INTERNET AGENT RETAIL AGENT INTERNET INTERNET
Sales Org. AMERICAS AMERICAS EUROPE EUROPE EUROPE EUROPE AMERICAS AMERICAS AMERICAS EUROPE AMERICAS
Product Product Grp. Quantity in PC Profit in $ PAINT OFFICE 730 6763 PAINT OFFICE 390 2614 PAINT OFFICE 780 3866 WIN-OS OS 970 -3734 WIN-OS OS 190 1355 WIN-OS OS 810 7565 PC-3 PC 250 -861 PC-3 PC 40 -44 PC-3 PC 160 -503 PC-3 PC 50 18 PC-3 PC 990 6468
Characteristics
Key Figures
Infoobjects
Scenario (2)
Dimension Time
Day Month Year
Dimension Product
Dimension Region
City Region
Key Figures
Country
Dimension IUSALES3
0CALDAY 0CALMONTH
IUPROD IUPRODGRP
0CALYEAR
Dimension IUSALES1
Key Figures
IUQUAN IUPROFIT
Dimension IUSALES2
IUDIV
IUDCHAN IUSALORG
Data Flow in BW
Aggregate
Initial Fill, Roll-Up
Cube Query
BW Query
V.P. Query
V.P. Query
Cube Query
BW Query
ODS
PSA
PSA
SAP-AG 2005,BW Basicarchitecture, Klaus Majenz 9
PSA table
request package (within request) partition no. record no. (within package)
huge number of individual INSERTs no UPDATE SELECT * FROM WHERE "REQUEST" = mass deleteion: DELETE WHERE "PARTNO" = / DROP PARTITION
ODS
SAP-AG 2005,BW Basicarchitecture, Klaus Majenz 11
1.
ODS upload: INSERT INTO "/BIC/AOIUSALES40" ODS data activation: UPSERT "/BIC/AOIUSALES00" delta records: INSERT INTO "/BIC/B0008215000" (mass) DELETE FROM "/BIC/AOIUSALES40" infocube delta upload from ODS: SELECT * FROM "/BIC/B0008215000"
2.
3.
active data
modified data
SAP-AG 2005,BW Basicarchitecture, Klaus Majenz 13
Change log
Req.ID I Pack.ID I Rec.No ODSRx I P 1 I Rec.1I4711I 10 ODSRy I P 1 I Rec.1I4711I-10 ODSRy I P 1 I Rec.2I4711I+30
from different requests are uploaded in parallel to the activation queue activation the data is sorted by the key fields of active data plus key fields of Activation queue. guaranties the correct sequence of the records and allows inserts instead of table locks .
Activation
During This
Before-
Request After
ID in activation queue and change log differ from each other. update, data in the activation queue is deleted.
Infocube
SAP-AG 2005,BW Basicarchitecture, Klaus Majenz 15
F, E
Infocube IUSALES
Facttable
Dimension 1
X (City)
S (Population)
Dimension 1
S (Population) X (City)
Dimension 1
S (Population) X (City)
B-tree Index (nonunique, nonclustered) B-Tree (unique, clustered)
F Facttable
E Facttable
"P-index"
single column indexes support queries P-index: compress additional bitmap index on part. column
SAP-AG 2005,BW Basicarchitecture, Klaus Majenz 20
F Facttable
"P-index"
B-tree Index (nonunique, nonclustered)
B-Tree (unique, nonclustered)
SELECT
separate slide
Infocube Compression
(ex.: request 3)
UPDATE INSERT
before after
UPDATE of E facttable
do mass INSERT INTO E facttable using INS DROP PARTITION corresponding to REQ in F facttable
UPDATE of E facttable
Aggregate Fill
INSERT INTO [/BIC/E100010] SELECT [D1].[SID_IUCITY] AS [KEY_1000101], [D2].[SID_IUSALPER] AS [KEY_1000102], 0 AS [KEY_100010P], SUM ([F].[/BIC/IUPROFIT]), SUM ([F].[/BIC/IUQUAN]), COUNT(*) AS [FACTCOUNT] FROM [/BIC/FIUSALES] [F], [/BIC/DIUSALES1] [D1], [/BIC/DIUSALES2] [D2], [/BIC/DIUSALESP] [DP] WHERE [F].[KEY_IUSALES1] = [D1].[DIMID] AND [F].[KEY_IUSALES2] = [D2].[DIMID] AND [F].[KEY_IUSALESP] = [DP].[DIMID] AND [DP].[SID_0CHNGID] = 0 AND ( [F].[KEY_IUSALESP] = 0 OR [F].[KEY_IUSALESP] = 2 ) AND [DP].[SID_0REQUID] BETWEEN 0 AND 40 GROUP BY [D1].[SID_IUCITY], [D2].[SID_IUSALPER]
Aggregate Roll-Up
INSERT INTO [/BIC/F100011] SELECT [D1].[SID_IUCITY] AS [KEY_1000111], [D3].[SID_IUPROD] AS [KEY_1000112], 7 AS [KEY_100011P], SUM ([F].[/BIC/IUPROFIT]), SUM ([F].[/BIC/IUQUAN]), COUNT(*) AS [FACTCOUNT] FROM [/BIC/FIUSALES] [F], [/BIC/DIUSALES1] [D1], [/BIC/DIUSALES3] [D3], [/BIC/DIUSALESP] [DP] WHERE [F].[KEY_IUSALES1] = [D1].[DIMID] AND [F].[KEY_IUSALES3] = [D3].[DIMID] AND [F].[KEY_IUSALESP] = [DP].[DIMID] AND [DP].[SID_0CHNGID] = 0 AND [F].[KEY_IUSALESP] = 5 AND [DP].[SID_0REQUID] = 498 GROUP BY [D1].[SID_IUCITY], [D3].[SID_IUPROD]
day
month
distribution channel year sales organization
product
SAP-AG 2005,BW Basicarchitecture, Klaus Majenz 27
product group
month
year = [98-99]
product group
SAP-AG 2005,BW Basicarchitecture, Klaus Majenz 28
month
year = [98-99]
product group
SAP-AG 2005,BW Basicarchitecture, Klaus Majenz 29
product group
SAP-AG 2005,BW Basicarchitecture, Klaus Majenz 30
month
year = [98-99]
product group
SAP-AG 2005,BW Basicarchitecture, Klaus Majenz 31
AND
Examples
Reveal why pure RDBMS technology ... sometimes requires an additional conceptual layer on top, is not sufficient is some cases, has no chance in some situations because it has to be more general than necessary. Examples
be implemented by using materialized views (or equivalent) but they have proved to be inferior
SAP-AG 2005,BW Basicarchitecture, Klaus Majenz 36
Example B: customer master data can be an infoprovider same UI as for other infoproviders
selections, projections, summaries using attributes (e.g. address, customer category, region, ...)
Infocube
ODS-Object
Multiprovider
Infoset
UNION
JOIN
conceptually:
account A B A B A B A B A B A B day 29-Sep 29-Sep 30-Sep 30-Sep 1-Oct 1-Oct 2-Oct 2-Oct 3-Oct 3-Oct 4-Oct 4-Oct balance 100 500 110 500 110 400 110 400 110 400 50 400 - 60 - 100 delta 10
physically:
account A B A A B day 29-Sep 30-Sep 3-Oct 4-Oct 4-Oct ref point no no no yes yes delta 10 - 100 - 60 50 400
performance
flexibility
read
load
Materialized or Indexed Views / Automatic Summary Tables could be used in theory however: maintenance is considerably slower
... due to expensive tracking and logging mechanisms that are necessary if the general case has to be covered
Summary
Summary
brief introduction to SAP BW three examples:
1. an additional conceptual layer on top of the relational one
2. a semantical pattern that is frequently used in business 3. an object that might suffer from the generic approach
Do the examples reveal shortcomings of RDBMS or are they application domain specific ?