Oracle BI EE / SE-1: Modellierung für Fortgeschrittene

Werbung
<Insert Picture Here>
Oracle BI EE / SE-1: Modellierung für
Fortgeschrittene
Marc Bastien
Agenda
• Modellierung für WEN?
• Zugriff auf nicht DWH-Quellen
•
•
•
•
Schweineohren
Alias-Tables
Fakten auf unterschiedliche Ebenen / Berechnungen
Opaque Views
• Einbindung Oracle OLAP
• Lokalisierung
• Writeback
Informationszugriff zu jeder Zeit an jedem Ort
Eine Plattform, Ein Modell, Mehrere Wege der Bereitstellung
Datenintegration
Ad-hocAnalyse
Interaktive
Dashboards
Analysen
mit
Essbase
Reporting &
Publishing
Proaktives
Aufdecken
und Alarme
Analysen
in Offline
& mobil
MS Office& OutlookIntegration
Common Enterprise Information Model
Integrierte Security, Benutzerverwaltung, Personalisierung
Multidimensionale Kalkulation und Integration
Intelligente Generierung von Anfragen und Services für einen optimierten Datenzugriff
OLTP & ODS
Systeme
Data Warehouse
Data Mart
Essbase
SAP, Oracle
PeopleSoft, Siebel,
Eigenentwicklungen
Dateien
Excel
XML
BusinessProzess
Oracle BI Server
Einfach, Leistungsstark, Intelligenz Quellenübergreifend
• Vereinfachte Sicht mithilfe von
Business-Modellen
Oracle BI EE
Presentation
Services
Open SQL Interface
• Fortschrittliche Engine für
Kalkulation & Integration
• Intelligente Generierung von
Anfragen und Services für einen
optimierten Datenzugriff
Andere 3rd
Party Tools
• Oracle BI
Server
•
•
•
•
•
•
•
Simplified Business View
Unified Metadata
Intelligent Caching
Advanced calculations
Aggregate navigation & creation
Federated query and integration
Optimized SQL / function shipping
• Hohe Skalierbarkeit und
Performance
• Grundlage für alle Presentation
Services von OBIEE
Native RDBMS
• Oracle
• SQL Server
• DB2
• Teradata
ODBC
Multidimensional
• XMLA
• Oracle OLAP Option
• MS Analysis Services
• SAP BW
Andere
• XML,
• Excel
• Text
Modellierung für WEN?
• Fortgeschritten ist relativ...
• Aktuelles Projekt:
• Drei Monate Entwicklungszeit (BI Server und Frontend)
• Kontinuierliche, punktuelle Unterstützung bei Problemen
• Problem im Frontend: zwei Kennzahlen nicht gleichzeitig
darstellbar
• Zwei Sekunden: Löschen des gesamten Repositories und
aller darauf basierenden Berichte
• Zwei Tage intensives Hands-On und Problembehebung
• Alle Berichte neu, viel Stress (Messe!),etc
• Standard-Tutorial deckt nur Standardfall ab!
Zugriff auf DWH-Quellen
• Easy-Going:
• Basis ist ein Star-Schema
• ausgebildeten Dimensionen
• Foreign-Keys
• Qualitätsgesichert
• Ziel ist ein Star-Schema...
Zugriff auf DWH-Quellen
• Vorgehensweise
• Importieren der Quellen, inkl. Foreign-Keys (NEU in 10.1.3: OCI
Import)
• Drag&Drop aller Dimensionen und Fakten ins Business Layer
• logische Verknüpfungen werden übernommen
• Tabellen werden als Dimensionen und Fakten erkannt
• Dimensionen anlegen
• Aggregationen setzen, Abgeleitete Kennzahlen definieren,
Umbennenen
• Drag&Drop in Presentation Layer
• Fertig!
• Realität?
•(schon: im Presales)
Zugriff auf nicht-DWH (nicht Star)
•
•
•
•
Operatives Modell
Aggregationstabellen
Snowflake
Oracle OLAP Cubes
Zugriff auf operatives Modell (Beispiel OE)
Herausforderungen
• PRODUCT_INFORMATION hat
Hierarchieinformationen als „Schweineohren“
• Verschiedene Faktentabellen
„Schweineohr“
• PAR_PRODUCT_ID enthält Vater (PRODUCT_ID)
Schweineohr, Lösung PL
• Alias-Tabellen für alle Ebenen erzeugen: Range und Brand
Schweineohr, Lösung BL
Range/Brand
parent tables will
only be included in
SQL queries when
they are needed!
• Eine LTS mit drei Tabellen (PT)
• WICHTIG: PT müssen gejoined sein!
Mehrere Fakten
• bei Zugriff auf Total wird ORDER_ITEMS nicht gejoined
Logische Faktentabellen
• In einem 3NF Modell wird es selten vorkommen, dass alle Fakten
aus einer einzigen Faktentabellen gelesen werden können
• Anders als bei logischen Dimensionstabellen werden bei LTS alle
Joins stets ausgeführt, auch wenn diese gar nicht notwendig
wären
• Vorschlag: zusätzliche Logical Table Sources (LTS) anlegen,
selbst wenn augenscheinlich überfüssig, um Joins zu vermeiden!
Nur verbunden mit einer
Tabelle, also schneller in
Berichten, in denen nur “#
Orders” und “Order Total”
genutzt werden
Diese LTS enthält
zwei Tabellen, ist
also teurer
Zugriff auf Snowflakes
Auflösung der Flocke
Opaque Views
• Möglichkeit, statt Tabellen SQL-Statements als Quelle
zu verwenden
Opaque Views
• Nachteile:
• Nicht immer performant!
• SQL wird komplexer
• Schlechter zu beguggen
• Es gibt Wege drumrum
• Lassen sich „materialisieren“ (View wird in DB
angelegt)
Cross-Database Joins
• Vorteile:
• Datenquellen übergreifende Analysen erstellen
• Kann sonst fast keiner
• Nachteile:
• Kann langsam sein, keine großen Tabellen nutzen!
• Ggfls. Driving-Table verwenden
• statt einem großen Join über beide Tabellen im BI Server werden
pro Eintrag in der Driving-Table kleine Abfragen gegen die zweite
Tabelle mit WHERE... Abgesetzt
• Alternative (manchmal, wenn beides gleiches RDBMS):
• Unterschiedliche Tabellen von unterschiedlichen Benutzern lassen
sich in einen Ordner der PL verwenden
Cross-Database Joins
• Mehrere Quellen markieren und dann Physical Diagram aufrufen
• Join wie üblich definieren
• Im Business Diagram
ggfls Driving Table auswählen
Berechnungen in PL oder BL?
• Klar:
•Sales = Units * Price
•Produkt1 + Produkt2 = Produktgruppe A
• Bsp1: Produkt1: 100Stk * 1,3€ = 130€ Umsatz
• Bsp2: Produktgruppe A: wie lautet der Gesamtumsatz?
•100Stk Produkt 1 à 1,3€ und 200Stk à 1,7€
•Alternative 1: Summe Stk=300; Avg Preis (1,3+1,7/2)=1,5 also 300*1,5 = 450€ ?
•Alternative 2: 100*1,3 + 200*1,7
= 470€ !
Berechnung in BL
• New logical Column, Berechnung einfügen
Berechnung in PL
• New logical Column einfügen
• Berechnung in der LTS definieren!
Oracle OLAP
• (Leider) kein direkter Zugriff per OLAP API / MDX auf
Oracle Cubes
• Zugriff erfolgt über relationale Views
• Erstellbar aus AWM
• Spezielle Konfigurationsschritt in BI EE
• Deutlicher Performancegewinn gegenüber rein
relationalen Modellen
• Berechnungen sollten in OLAP erfolgen
• Durch neue Expression kann Berechnungsdefinition
in BI EE erfolgen, die Berechnung aber in OLAP
OLAP: Anforderung an die Query
Beispiel: Select Amount, % Chg Prior Period and % Chg Prior Year
SELECT amount,
amount_pct_chg_pp,
amount_pct_cht_py,
category_category_desc,
org_level2_desc,
time_year_desc,
time_quarter_desc
FROM
expense_cubeview
WHERE
CATEGORY_LEVEL = ‘CATEGORY' and
TIME_LEVEL
= ‘QUARTER' and
org_level = 2 and
org_level2_desc in
('Northeast Region',
'Western Region')
Um beste Performance zu erreichen, muss
die Query Filter auf jede einzelnen
Dimensionslevel enthalten.
Also muss BI EE so konfiguriert werden, dass
diese Filter generirt werden!
OLAP: View generieren
View importieren
OLAP im BL: Zerlegung Fakten/Dims
1) Fakten
Aggregation auf “SUM”
OLAP im BL: Zerlegung Fakten/Dims
2) Dimensionen
Mit OLAP gibt es
dieses Attribut
immer!
“Level”
Indikator
OLAP im BL: Dimensionen
Für jede Ebene eine LTS in jeder Dimension (für die Ebenenbestimmung)
3) Eine LTS für jede Ebene
“Channel” ist
für “Total”
level nicht
relevant
Ebene ist
hard-coded
OLAP im BL: “Pinning”
Abfragen auf Ebenen forcieren
4) “Pinning” Dimension anlegen
OLAP, letzter Schritt
Verbingund von Ebene in der “Pinning” Dimension und der Dimension
5) BI EE Security setzen (für jede Fakten- und Dimensionstabelle)
Diese Bedingung
wird in jeder
Abfrage
angefügt.
Muss gleich sein
ACHTUNG: Benutzer darf nicht in der “Administrator”
Gruppe sein, sonst wird die Bedingung ignoriert!
OLAP in BI EE
Beispiel : Bericht braucht Daten auf “Channel” Ebene
gleich
SELECT ……
FROM
……
WHERE CHANNEL_LEVEL =‘CHANNEL’
Lokalisierung
• Was geht:
•
•
•
•
Applikation selbst
Spalteninhalte
Spaltenbeschriftungen
Texte in Dashboards / Answers etc.
• Was geht nicht
• Administrator
• ODBC Treiber
• Ggfls. weitere Admin-Werkzeuge
Lokalisierte Komponenten (DE)
1.
Application Metadata
2.
Web Catalog Metadata
3.
Repository Metadata
4.
Multilingual Data
Lokalisierte Komponenten (EN)
1.
Application Metadata
2.
Web Catalog Metadata
3.
Repository Metadata
4.
Multilingual Data
Dateneingabe
• Was geht:
• Eingabe in vorher definierten Spalten im Dashboard / Answers und
Speicherung in beliebiger Tabelle
• Eingabe eines Wertes in vordefinierten Element und Nutzung
dessen in
• Überschriften, Berechnungen, Schwellwerten
• Was geht nicht
• BI EE ist keine Planungsapplikation!
• Keine Validierung
• Genutzt für
• Kommentare, What-If, Einfache Eingaben ohne Validierung
Dateneingabe: Präsentationsvariablen
• Dashboardprompt wird zum Eingabewert
• Genutzt für What-If, Berechnungen, Eingabe von
Schwellwerten für Color-Coding, Überschriften etc.
PV: Definition und Nutzung
Dateneingabe: Writeback
• „Echtes“ Zurückschreiben in Tabellen
• Voraussetzung
•
•
•
•
Connection Pool muss das erlauben (auch der Benutzer!)
Caching muss für die betreffende Tabelle ausgeschaltet sein
Datenmodell entsprechend anpassen (DB und BI!)
Template erstellen und dann Presentation Server neu starten
• Gute Idee: kein Zurückschreiben auf die „Ist“-Daten
Writeback: Template
• Tipp: erst Answers Query erstellen und in Tabelle Writeback aktivieren,
dann erscheinen Spaltennamen (c1, c2 etc)
• Template: XML Datei im Verzeichnis
„oracle\OracleBIData\web\msgdb\customMessages”
• Nach der Definition PresServer neu starten, Datei wird automatisch
gelesen!
• Struktur:
<?xml version="1.0" encoding="utf-8" ?>
<WebMessageTables xmlns:sawm="com.siebel.analytics.web/message/v1">
<WebMessageTable lang="en-us" system="WriteBack" table="Messages">
<WebMessage name="InsertFC1">
<XML>
<writeBack connectionPool="SQL_Paint">
<insert>INSERT INTO P_FACT_FC (PERKEY,PRODKEY,MKTKEY,SZENKEY,UNITS_FC) VALUES(@{c2},@{c1},@{c0},@{c3},@{c5})</insert>
<update>UPDATE P_FACT_FC SET UNITS_FC=@{c5} WHERE PERKEY=@{c2} AND
PRODKEY=@{c1} AND MKTKEY=@{c0} and SZENKEY=@{c3}</update>
</writeBack>
</XML>
</WebMessage>
</WebMessageTable>
</WebMessageTables>
Dateneingabe: Writeback
• Definition:
• Query in Answers erstellen
• Tabellen-Ansicht wählen
• Die Tabelle zum Zurückschreiben aktivieren und Template angeben
• „Wertinteraktion“ auf „Writeback“ setzen
Zusammenfassung
• Mächtiges Werkzeug
• Viele Möglichkeiten
• Sollten überlegt eingesetzt werden
Herunterladen