Oracle BI EE / SE-1: Modellierung für Fortgeschrittene fileMarc Bastien. Agenda • Modellierung...

44
<Insert Picture Here> Oracle BI EE / SE-1: Modellierung für Fortgeschrittene Marc Bastien

Transcript of Oracle BI EE / SE-1: Modellierung für Fortgeschrittene fileMarc Bastien. Agenda • Modellierung...

<Insert Picture Here>

Oracle BI EE / SE-1: Modellierung fürFortgeschrittene

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 OrtEine Plattform, Ein Modell, Mehrere Wege der Bereitstellung

Ad-hoc-Analyse

InteraktiveDashboards

ProaktivesAufdeckenund Alarme

MS Office-& Outlook-Integration

Reporting & Publishing

Analysen in Offline& mobil

OLTP & ODSSysteme

Data WarehouseData Mart

SAP, OraclePeopleSoft, Siebel,

Eigenentwicklungen

DateienExcelXML

Business-Prozess

Multidimensionale Kalkulation und Integration

Integrierte Security, Benutzerverwaltung, Personalisierung

Intelligente Generierung von Anfragen und Services für einen optimierten Datenzugriff

Essbase

Common Enterprise Information Model

Analysenmit

Essbase

Daten-integration

Oracle BI ServerEinfach, Leistungsstark, Intelligenz Quellenübergreifend

Open SQL Interface

Oracle BI EE PresentationServices

Andere 3rd

Party Tools

• Oracle BI Server

Native RDBMS• Oracle• SQL Server• DB2• Teradata

ODBC

Multidimensional• XMLA• Oracle OLAP Option• MS Analysis Services• SAP BW

Andere• XML,• Excel• Text

• Simplified Business View• Unified Metadata• Intelligent Caching• Advanced calculations• Aggregate navigation & creation• Federated query and integration• Optimized SQL / function shipping

• Vereinfachte Sicht mithilfe von

Business-Modellen

• Fortschrittliche Engine für

Kalkulation & Integration

• Intelligente Generierung von

Anfragen und Services für einen

optimierten Datenzugriff

• Hohe Skalierbarkeit und

Performance

• Grundlage für alle Presentation

Services von OBIEE

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 BLRange/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!

Diese LTS enthält zwei Tabellen, ist

also teurer

Nur verbunden mit einer Tabelle, also schneller in

Berichten, in denen nur “# Orders” und “Order Total”

genutzt werden

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 Diagramggfls 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

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' andorg_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: Anforderung an die Query

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 esdieses Attribut

immer!

“Level”Indikator

OLAP im BL: DimensionenFür jede Ebene eine LTS in jeder Dimension (für die Ebenenbestimmung)

“Channel” istfür “Total”level nichtrelevant

3) Eine LTS für jede Ebene

Ebene isthard-coded

OLAP im BL: “Pinning”Abfragen auf Ebenen forcieren

4) “Pinning” Dimension anlegen

OLAP, letzter SchrittVerbingund von Ebene in der “Pinning” Dimension und der Dimension

5) BI EE Security setzen (für jede Fakten- und Dimensionstabelle)

Diese Bedingungwird in jeder

Abfrageangefü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 automatischgelesen!

• 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