Oracle BI Enterprise Edition Deep Dive

advertisement
Deep Dive into Oracle BI EE 10g
Collaborate’10 IOUG Forum, Las Vegas, April 2010
Introduction to the Session
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Who Am I?
• Oracle BI&W Architecture and Development Specialist
• Co-Founder of Rittman Mead Consulting
‣ Oracle BI&W Project Delivery Specialists
• 12+ years with Discoverer, OWB etc
• Oracle ACE Director, ACE of the Year 2005
• Writer for OTN and Oracle Magazine
• Author of forthcoming Oracle Press OBIEE Book
‣ Due Q4 2009
• Longest-running Oracle blog
‣ http://www.rittmanmead.com/blog
• Ex-Chair of UKOUG BIRT SIG
• Co-Chair of ODTUG BI&DW SIG
• Editor of UKOUG “Oracle Scene” Magazine
T : +44 (0) 8446 697 995 E : enquiries@rittmanmead.com W: www.rittmanmead.com
Rittman Mead Consulting
•
•
•
•
•
Oracle BI&DW Project Specialists providing consulting, training and support
Clients in the UK, USA, Europe, Middle-East
Voted UKOUG BI Partner of the Year 2008
Consultants in Europe and North America
Regular speakers at user group and Oracle events
T
697697
995995
E : or
enquiries@rittmanmead.com
T :: +44
+44(0)
(0)8446
8446
(888) 631 1410 (USA) EW:: www.rittmanmead.com
enquiries@rittmanmead.com
W: www.rittmanmead.com
What Do We Do?
•
•
•
•
•
•
•
Consulting, mentoring and support for Oracle BI projects
Technical design, project management, QA
Deliver entire project or just supplement your team
Advise on Oracle BI technology strategy
On-site training
Event organization
Support
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Rittman Mead Blog
• Longest-running Oracle (BI) Blog
• Ten authors including Mark Rittman, Borkur Steingrimsson, Stewart Bryson, Peter Scott
‣ and now Venkat J
(ex-http://oraclebizint.wordpress.com)
• Articles on OBIEE, OWB, DW, Hyperion etc
• All past presentations and articles
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
BI Forum Brighton 2009
•
•
•
•
•
Expert-level developer conference run in Brighton, May 2009
Attended by Oracle, Client and Industry developers and experts from around the world
Two days of presentations, discussions, knowledge exchange & networking
Focus on OBIEE, ODI, Essbase
Running again in May 2010
T : +44 (0) 8446 697 995 E : enquiries@rittmanmead.com W: www.rittmanmead.com
What Is This Session About?
• Oracle Business Intelligence Enterprise Edition Plus
• Oracle’s Next-Generation Business Intelligence Platform
• In today’s session you will learn:
‣ What is OBIEE
‣ How it connects to data sources
‣ What data models it supports
‣ How it federates data
‣ How the BI Server joins data
‣ How reports and portals are created
‣ How it handles Essbase data
‣ What’s coming in OBIEE 11g
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Agenda
1.
2.
3.
4.
5.
6.
7.
Introduction to Oracle BI EE
Oracle BI EE 10g Architecture
Data Modeling using star and 3NF data
Federating multiple data sources
Creating reports, dashboards and alerts (an overview)
Incorporating Essbase and other Multi-dimensional data
What’s coming in OBIEE 11g
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
The Seminar Format
•
•
•
•
Presentations and discussions
A break around 12pm
Finish at 3pm
Slides will be available online
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Participant Introduction
• The most important people in this room are you
• It helps if I know a bit about you
‣ Your Oracle BI experience
‣ Your course objectives
‣ Where you work
• Introduce yourself to me, and to the
other seminar participants
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Deep Dive into Oracle BI EE 10g
Collaborate’10 IOUG Forum, Las Vegas, April 2010
Introduction to the Session
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Deep Dive into Oracle BI EE 10g
Collaborate’10 IOUG Forum, Las Vegas, April 2010
Lession 1 : Introduction to OBIEE 10g
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Oracle Business Intelligence Enterprise Edition Plus 10g
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Hot-Pluggable and Standards-Based
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Connectivity to Most Applications and Data Sources
•
•
•
•
•
•
Oracle Business Intelligence Enterprise Edition is a “federated query server”
Connectivity to Oracle, MS SQL Server, Sybase, IBM DB2, Teradata etc
MS AS, Essbase, Oracle OLAP
Files, XML
Microsoft Excel
etc
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Common Enterprise Information Model
•
•
•
•
Enables consistency, security, reuse, flexibility
Role-based views of the organization
Single metadata model of the business
Consistent definition of business measures,
metrics, calculations
• Drill paths, summaries, security
• Model once, deploy anywhere
• Across any data source
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Pervasive Information Access through a Unified BI Foundation
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Oracle Business Intelligence Applications - Prebuilt Analytics
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Oracle Interactive Dashboards
•
•
•
•
•
•
•
“One-stop shop” for reporting and analysis
All your reports in one place
Fully interactive
Graphs, reports, links
Delivered through your browser
Download to Excel
Print & Save your favorite
reports
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Oracle Answers
•
•
•
•
•
•
•
Used for creating and amending reports
Point-and-click interactive environment
Tables, pivot-tables
Graphs
Gauges
Commentary text
Answers reports are then published
to dashboard
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Sense and Respond
• Delivers/Analytic Agents provides true real-time in context sense and respond
capabilities across systems tailored for any user on any device.
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Sense and Respond
• BI can also be embedded directly within the business processes.
• All BI Content can be exposed as a set of services that are callable by SOA
enabled technologies and applications.
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Oracle Disconnected Analytics
• Fully-featured disconnected client
• The user experience is identical to the connected user.
• Dashboard and Answers functionality will act identically as if the user were
connected to the server.
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Guided Analytics
• Provide guidance and “best next step” for users
• Conditionally display alerts, messages and entire reports
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Oracle Briefing Books - “Pack and Go”
• Bring along an electronic “Briefing Book” which is a collection of your most
important dashboards.
• Briefing Books are extremely small, and can be delivered daily for enterprise
collaboration.
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Oracle BI Publisher - “Pixel-Perfect” BI Publishing
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Microsoft Office BI Integration
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Demonstration
Oracle BI EE 10g
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Summary
•
•
•
•
•
•
•
•
Oracle BI EE enables analytic analysis within your organization
Next-Generation Architecture, web-based analysis
Oracle BI Answers and Oracle BI Dashboards for analysis of data
Oracle BI Delivers provides scheduling and “sense and respond”
Offline analysis using Oracle BI Disconnected Analytics and Briefing Books
Microsoft Office integration to provide BI directly within your working environment
Many tools and opportunities
Oracle BI EE comes with a default repository so you can experiment straightaway
T : +44 (0) 8446 697 995 E : enquiries@rittmanmead.com W: www.rittmanmead.com
Deep Dive into Oracle BI EE 10g
Collaborate’10 IOUG Forum, Las Vegas, April 2010
Lession 1 : Introduction to OBIEE 10g
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Deep Dive into Oracle BI EE 10g
Collaborate’10 IOUG Forum, Las Vegas, April 2010
Lession 2 : OBIEE Architecture and Relational Data Modeling
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Oracle BI Suite Enterprise Edition Plus
•
•
•
•
•
•
Oracle “Next-Generation” BI tools platform
Based on Siebel Analytics
Originally developed by nQuire
Standards (J2EE) based
Heterogeneous connectivity
Server and Web-based
‣ Oracle BI Server
‣ Oracle Presentation Server
‣ Oracle BI Answers
‣ Oracle BI Delivers
‣ Oracle BI Administration
‣ Job Manager, Catalog Manager etc
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
OBIEE 10g Architecture
Web Serv er
(IIS, Tomcat, Websphere, iPlanet)
Orac le BI Publisher
Orac le BI Presentation Servic es TCP/IP (SSL)
Delivery Server
Oracle Interactive
Dashboards
Data Logic
Oracle Answers
User Profiling, Security and Session Mngmt
XML, HTML,
XLS, PDF, TXT
over
HTTP/HTTPS
Javascript
for Usability & Interactivity
Web
Catalog
Service
SOAP Web Services, XML and URL Interface
Layout Interfaces
XSL
Web Browser
SAW Bridge (J2EE/ISAPI)
XML
Framework
Cache Services (Web) & Connection Mngmt
HTML, SOAP
over
HTTP/HTTPS
External Applications and Portals
ODBC over TCP/IP (SSL)
(SSL)
Orac le BI Server
Logical SQL ODBC/JDBC (Logical Business Model)
Load Balancer
Agent Execution Logic
Session Management
Device Adaptive Content
Intelligent Request Generation
Query Govern.
Externalized
Authentication
LDAP
Logical Request Generation
Security Services
Orac le BI
Cluster Controller
Cache
Services
Navigator
Multi-Pass /
Sub-Request Logic
Fragmentation
Optimization
Aggregate
Navigator
DB Authentication
Custom Authenticator
Optimized Query Rewrites
Execution Engine
Metadata Interchange
Scheduling/Event Services
System / Perf Monitoring
Orac le Delivers Server
TCP/IP
Orac le BI A dministration
Metadata Management Services
Multi-User Development Services
Metadata Documentation Services
Server Management Services
Data Source Adapters
ODBC, CLI, OCI, XML, MDX
Analytical and Operational Data Sources
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Oracle BI Server
• Calculation and Data Integration Engine
‣ “Virtual Data Warehouse”
‣ Allows reporting across multiple sources
‣ Data accessed though metadata layer
• Connects to RDBMS and OLAP data
‣ Oracle Database (including Oracle OLAP)
‣ IBM DB2
‣ Microsoft SQL Server
‣ Teradata
‣ Microsoft Analysis Services (OLAP)
‣ SAP BW 'info cubes'
• Security, Summary Management
• Translates incoming “logical SQL”
in to optimized, physical SQL
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Oracle BI Presentation Server
•
•
•
•
•
“BI Application Server”
Single application that provides Oracle BI Answers, Dashboards
Metadata stored in Web Catalog
User Profiling, Security and Session Management
SOAP Web Services, XML and URL Interface
Web Serv er
(IIS, Tomcat, Websphere, iPlanet)
Orac le BI Presentation Servic es TCP/IP (SSL)
SOAP Web Services, XML and URL Interface
Oracle Interactive
Dashboards
Web Browser
SAW Bridge (J2EE/ISAPI)
Oracle Answers
User Profiling, Security and Session Mngmt
Cache Services (Web) & Connection Mngmt
XML, HTML,
XLS, PDF, TXT
over
HTTP/HTTPS
Javascript
for Usability & Interactivity
Web
Catalog
Service
XML
Framework
HTML, SOAP
over
HTTP/HTTPS
External Applications and Portals
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Oracle BI Delivers Server
•
•
•
•
•
Scheduling and distribution
Uses iBots (“Intelligent Bots”)
Integration (through Java) with BPEL
iBot chaining, calling from BPEL, calling BPEL
Permits alerts, through execution of Answers reports
‣ If report returns rows, alert triggered
‣ Alert appears on dashboard,
via email, SMS, cell phone
Orac le Delivers Server
‣ Can trigger narrative and
Scheduling/Event Services
conditionally-appearing reports
Agent Execution Logic
Device Adaptive Content
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Oracle BI Publisher Server
• New in 10.1.3.2, based on Oracle XML Publisher
• Separate application, integrated with Oracle BI Presentation Server
‣ Initially usernames and passwords integrated
‣ Thereafter separately administered
• Provides high-fidelity layout, positioning of
data, charts etc
• Multiple data sources
‣ OBIEE Metadata Layer
Orac le BI Publisher
‣ Oracle BI Answers reports
Delivery Server
‣ Any source accessible via SQL
Layout Interfaces
‣ XML over HTTP
XSL
Data Logic
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Oracle BI Administration
• MS Windows application for managing BI Server
• Creates and manages Common Enterprise Information Model
‣ Physical, logical and presentation layers
• Manage other aspects of BI Server
‣ Security
Orac le BI A dministration
‣ Scheduler (Delivers server)
‣ Jobs
‣ Joins
Metadata Management Services
‣ Marketing
Multi-User Development Services
‣ Sessions
Metadata Documentation Services
‣ Cache
• Utilities and Tools
Server Management Services
• Connect to BI Server via ODBC DSN
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Other Tools
•
•
•
•
•
•
Catalog Manager
Job Manager
OC4J Start / Stop (when hosted in OC4J)
System Manager
ODBC Client
Oracle BI Publisher Enterprise
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Core BI Server Functionality
•
•
•
•
Data Integration through Business Model View
Calculation and analytical engine
Support for RDBMS and OLAP data sources
Intelligent Request Generation and
Optimized Data Access
• Security and Data Scoping
• ODBC Interface out, native RDBMS and
OLAP interfaces in
• Clustering, replication, support
for Windows and Unix/Linux hosts,
32-bit and 64-bit
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Data Access
• Reporting data may be sourced from
multiple databases, applications
‣ Oracle Database (including Oracle OLAP)
‣ IBM DB2
‣ Microsoft SQL Server
‣ Teradata
‣ Microsoft Analysis Services (OLAP)
‣ SAP BW 'info cubes'
‣ SAP, Peoplesoft, Siebel, E-Business Suite
• Oracle BI Server joins this source
data together and presents a
logical business model
‣ Facts
‣ Dimensions
Calculations
T :‣+44
(0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com
‣ Joins
Customer
W: www.rittmanmead.com
Common Enterprise Information Model
• Metadata layer for OBIEE tools
• Three layers of metadata
‣ Physical layer, connections to sources
‣ Logical layer, denormalized facts
and dimensions
‣ Presentation layer, “report-centric”
folders
• Maintained using BI Administrator
• Model is the “center” of the OBIEE
universe
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Data Modeling using Oracle BI Server
• Design goal for the BI Server metadata layer is to create a Star Schema
‣ Fact tables
‣ Dimension tables
‣ Drill paths
• Source data can either be pre-integrated (data mart,
data warehouse) or integrated using
the BI Server (“federated”)
‣ Federated can be faster to deliver (report in place)
- Assumes data sources share common key values
‣ Data marts are simpler and faster to query
• MDX (OLAP, Multi-dimensional) data is converted into
RDBMS row-sets
• Logical layer is main integration point
• Presentation layer allows “report centric” folders
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Information Model Layers
• Physical Layer contains connections, physical tables
‣ Connections start as ODBC, switch to native (OCI etc)
‣ Primary keys and foreign keys
• Logical layer is where the data is integrated
‣ Logical fact tables, logical dimension tables
‣ Dimensions
‣ Calculations
‣ Complex joins to define relationships
• Presentation layer is where data is presented
‣ Can be a simple copy of the logical layer
‣ Or can be made more personalized
‣ Report centric
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Star Schema Design Approach
• Classic “Kimball” approach
• Fact tables contain measures, and joins to dimensions
‣ No attributes except for degenerate dimensions
‣ Leave IDs in, remove in Presentation layer
• Dimension tables contain lookup data
‣ Customer, Product, Time etc
‣ Dimensions can however be facts
- Use alias tables to disambiguate
• Dimension objects define drill path
‣ Multiple hierarchies supported
‣ Ragged hierarchies possible (see later)
‣ Time dimensions enable time-series queries
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Sample Business Model
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Data Modeling Workflow Steps
1. Create logical model in business model & mapping layer
2. Import physical data sources & define primary and foreign keys
3. Map logical model to physical model
4. Create initial calculations
5. Create dimensions
6. Rename and tidy-up logical model
7. Create initial presentation model
8. Create complex calculations, time dimensions etc
9. Add additional columns to presentation model
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Exercise Reporting Scenario
• Global Company has a data warehouse, containing order and customer data
• Requirement is to take the existing warehouse (normalized)
and turn it into a star schema (denormalized)
• For now, OBIEE will be used to map the data
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Step 1: Create Logical Model in Business Model Layer
• Firstly, create new logical model
• Then create logical tables and columns
‣ Either create from scratch, then connect to physical
(best practice)
‣ Or define by dragging and dropping physical tables
• Start from fact table and work outward to the dimensions
• Do one fact/dimension combination first
• Then add more facts
• ... and more dimensions
• Add details on datatypes etc later on
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Demonstration
Create a new Logical Business Model in the Repository
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Step 2: Create Physical Layer
• Create either a native (i.e. OCI) or ODBC connection through to data source
• Import tables, views, keys etc from
data source
• Define keys, foreign keys if needed
• Update row counts
• Define table aliases
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Physical Join Types
• If source data has foreign key joins, they will be imported
• If not, they can be defined in the physical model
• Two types of join
‣ Foreign key joins (e.g. CUSTID = CUSTID)
- 1:N joins only
‣ Complex joins (TRAN_DATE between
STARTDATEID and ENDDATEID)
- also supports 1:1, O:1, 1:O etc
• Important to create physical joins
before importing in to logical layer
‣ Logical joins rely on physical joins
to define paths
‣ Makes life a lot simpler
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Demonstration
Importing the Physical Table Metadata into the Repository
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Step 3: Mapping the Logical Model to the Physical Model(s)
• Once you have your logical model and one or more physical models, you can map
them together
‣ The simpler the mapping, the better
• Drag and drop physical columns
on to the logical model
• Logical model will inherit
physical data types
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Logical Table Sources
• Logical tables can have more than one physical source
• Can create >1 Logical Table Source
‣ BI Server creates two physical queries
‣ Useful when mapping data from
different levels
‣ and when using “fragmentation”
• Each Logical table source can have
>1 table mapped
‣ BI server creates one query per LTS, joining
as per physical foreign key joins
‣ Used when you need columns from other
joined tables in your logical table
(join only happens if additional
columns requested)
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Consider Where to Join Data
• Again, consider where to integrate and join data
• Whilst the BI Server can join data, it may be faster to load into a data mart
‣ ETL tools can integrate data at time of load
‣ Denormalized data structures can be faster than joining at report time
‣ Indexing, Summary Management, Query Optimization
• Creating a data warehouse still is the optimal solution
‣ BIEE data source joining features are most appropriate when bringing
new data in that’s not yet in the data warehouse
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Logical Join Types
• Logical tables are by default not joined
• Logical layer supports both foreign key
and complex joins
• Foreign key joins not recommended
‣ Restrict choices that BI server
can make over join paths
‣ Only there for backward compatibility
• Complex joins are preferred
‣ Indicates relationship between
tables
‣ Allows BI Server to determine
best join path
- Useful when more than one
Logical Table Source
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Demonstration
Map Logical to Physical Model, and create Logical Joins
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Step 4: Create Initial Calculations
• Calculations are created as additional logical columns
• Sit alongside existing logical columns derived from physical layer
• Calculations can also
be created within report
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
OBIEE SQL and the Expression Editor
• Calculations within the repository are defined using the Expression Editor
• Uses OBIEE SQL Syntax
• Reference functions,
expressions, logical
columns, constants,
variables
• Same SQL syntax across
all supported databases
• Ability to pass-through
function calls using
EVALUATE function
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Create Calculations in the Optimal Location
• Whilst the BI Server can create calculations, it may be more appropriate
to do this in the underlying database
‣ Oracle Database analytic functions (LAG, LEAD, RANK etc)
‣ Oracle Database OLAP functions (time-series, forecast, allocation)
• Use the available architecture efficiently
‣ Perform calculations as close to the source data as possible
‣ Use dedicated OLAP technology if available
‣ Use BI Server to provide features not found in the sources
• Just because the BI Server can do something, doesn’t mean it should do
something
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Demonstration
Creating Calculations
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Step 5: Create Dimensions and Hierarchies
• Dimensions define hierarchical relationships between columns
‣ Also used when defining level-based measures
and summaries
• Level-based, starts with Grand Total level
‣ One-way export out to Oracle dimensions (DDL)
also possible
• Enables hyperlinks on columns within
dimension levels
‣ Drill-down through the hierarchy
‣ No drill-up or drill to related (yet)
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Multiple Hierarchies and Ragged / Unbalanced Hierarchies
• Dimensions with multiple hierarchies are possible
‣ All hierarchies must share common top and bottom levels
• Ragged hierarchies, unbalanced hierarchies only supported for
multi-dimensional data sources
‣ MS Analysis Services, SAP BW,
Oracle Hyperion Essbase
‣ For relational, need to balance
hierarchy beforehand
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Demonstration
Creating Dimensions
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Step 7: Create Initial Presentation Models
• Business models themselves are not visible to users
‣ Users see presentation models whose columns are
defined in business models.
‣ Appear as “subject areas”
in the Oracle BI Answers
‣ Appear as “databases” to
client tools using ODBC
• Can create multiple
Presentation Catalogs from
single Logical Model
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Demonstration
Creating Presentation Models
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Step 9: Creating Time Dimension and Time-Series Calculations
• OBIEE 10.1.3.2 supports limited time-series functions
• AGO – value of a measure x months, quarters, years ago
AGO(Videostore."Sales fact view".Sales, Videostore.TimesDim."Month", 1)
• TODATE – value of a measure to the end of a month, quarter, year
TODATE(Videostore."Sales fact view".Sales,
•
Videostore.TimesDim."Quarter", 1)
• Requires at least one “time dimension” in the
metadata layer
‣ Requires at least one or more Chronological keys
‣ Monotonically increasing value (DAY etc)
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
The Calculation Wizard
• Wizard that generates share, percentage change etc calculations
• Useful in conjunction with
Time Dimension
‣ % Change since last month
‣ Change since last month etc
‣ Index
‣ Percent
• Wraps ISNULL around calcs
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Demonstration
Creating Time Dimension and Time-Series Calculations
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Reporting Across Multiple Data Sources
•
•
•
•
OBIEE can combine and join data from multiple data sources
Data is retrieved in separate SQL, MDX calls and joined using the BI Server
Allows you to perform federated queries
Watch out for performance though
‣ End goal should be to eventually move reporting data to a data warehouse
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Federated Query Scenario
• Additional data exists in an Excel spreadsheet
• Contains quotas, plus information on products and dates
• Quotas are at the product category and month level
‣ Existing data is at the product and day level
• Requirement is to join data, but only show quotas the relevant level
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Joining A Second Data Source : Step 1
• Import the new schema into the physical model, ensure FK and PK
constraints are set
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Joining A Second Data Source : Step 2
• Use the Join Manager, or Physical Model Diagrammer, to create
joins between tables in the two schemas
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Joining A Second Data Source : Step 3
• Add the new dimension tables as additional logical table sources
to the existing logical dimension tables
• Set the dimension hierarchy level at which they
are applicable
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Joining A Second Data Source : Step 4
• Add the additional measures to the fact table
• Set the dimension levels at which the measures become relevant
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Demonstration
Adding Additional Data Sources
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Summary
• The Business Model is central to Oracle BI Suite Enterprise Edition
‣ Consists of physical, logical and presentation layers
• Foundation is properly-joined physical table sources
• Denormalized star schema built using complex logical joins
• Calculations (including time-series calculations) not available in the source
database can be added to logical model
‣ Where possible though, use in-database analytics and OLAP
• Dimensions defined to determine drill paths
• Additional data sources can be combined in a single business model
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Deep Dive into Oracle BI EE 10g
Collaborate’10 IOUG Forum, Las Vegas, April 2010
Lession 2 : OBIEE Architecture and Relational Data Modeling
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Inside the Oracle BI Server (10g)
Collaborate’10 IOUG Forum, Las Vegas, April 2010
Lession 3 : Inside the Oracle BI Server
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Inside the Oracle BI Server
• In this session, we will look in-depth at the Oracle BI EE Oracle BI Server
• What components are in the BI Server
• What is the Navigator, and how does it
turn incoming logical requests into
optimized physical SQL and MDX
• What happens when it processes a query
• What happens when the BI Server joins
resultsets in memory
• And what influences SQL generation, join
strategy and BI Server resource usage
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Why Is This Topic Important?
• Now this could be a pretty boring topic
• But its one of the most important parts of the BI EE technology stack
• It provides all of these key features
‣ Query Federation
‣ Heterogeneous Connectivity
‣ The Semantic Model
‣ Aggregate Navigation
‣ Time Travel (sort of)
• So what really happens when Answers
fires off a query, and the BI Server
goes and gets the data...?
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
The Oracle BI EE 10g Server Architecture
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
The Oracle BI Server 10g Architecture
• Logical SQL interface via ODBC and JDBC
• Intelligent Request Generator, made up of
‣ Logical request generator
‣ Navigator
‣ Optimized Query Rewrites
‣ Execution Engine
‣ Cache Services
• Other services include
‣ Load balancing (in conjunction with
cluster controller)
‣ Query governance
‣ Session Management
‣ System / Perf Monitoring (JMX etc)
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Intelligent Request Generation and the BI Server Navigator
• The Navigator is the key component that
parses incoming requests and generates
the relevant physical SQL and MDX queries
• Invoked if cache cannot be used
• Handles the following translations
‣ Function push-down
‣ Multi-pass logic (time series etc)
‣ Aggregate navigation
‣ Fragmentation navigation
• Responsible for generating optimized
SQL and MDX for the mapped data sources
• Uses rules and definitions present in the RPD
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
The BI Server Functional Compensation Model
• The BI Server tries to push functions and joins down to the underlying databases
• Where not possible, the BI Server will functionally compensate by calculation,
joining data sources in memory
Parse Incoming Logical SQL
Generate Optimized Physical SQL(s)
Receiving Incoming Resultsets
Apply any required functions and joins
Return data to user
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
How Does The BI Server Process Queries?
•
•
•
•
•
•
So what happens when the BI Server processes an incoming query?
What are the steps involved in translating logical requests to physical queries?
What does the Navigator do?
What rules and statistics does it use?
How can we influence the physical queries that it generates?
How can we tell what is going on?
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Step 1 : Request Arrives at Intelligent Request Generator
• Query arrives from Answers or other ODBC tool, against Semantic Model
• Passed to Intelligent Request Generation function
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Step 2 : Request Passed to Logical Request Generation Engine
• Request passed to Logical Request Generation engine, responsible for
generating the one or more logical SQL required to satisfy the query
• In this case, request requires multiple columns and a derivation (calculation)
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Step 3 : Check Cache if Enabled
• If caching is enabled, Cache Services is checked for the result
• Avoids calls to physical databases for frequently-requested data
• Intelligent checking of cache including derivation, projection, nested formulas etc
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Rules for a Cache Hit
• Caching is enabled (CACHE=Y in the NQSConfig.INI file);
• WHERE clause is semantically the same
or a logical subset of a cached statement;
• All of the columns have either to be present
or derivable from cached copies
• It has equivalent join conditions
• If DISTINCT is used, the cached copy has to
use this attribute as well
• Aggregation levels have to be compatible,
being either the same or more aggregated
than the cached query
• No further aggregation (for example, RANK)
can be used in the incoming query
• Compatible ORDER BY clause
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Step 4 : Request Passed to the Navigator
• Navigator is responsible for navigating the semantic model and generating
the execution plan, and most optimal physical SQLs, for the request
• Contains multiple functions that are used dependent on the nature of the request
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Step 5 : Multi-Pass / Sub-Request Logic
•
•
•
•
Analyzes request and works out the complexity of the query
Determines whether multi-pass logic is required (time-series etc)
Works out whether one request depends on the results of another (sub-request)
Navigator uses this
function to determine
the most efficient way
to satisfy the request
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Step 6 : Fragment Optimization
• When a measure is fragmented, the Fragment Optimization function will
transform base-level logical SQL into logical SQL fragments
• Also automatically resolves fan-trap issues
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Step 7 : Aggregate Navigation
• Aggregate Navigation checks aggregates mapped in RPD for relevance
• Execution Plan will be written to use aggregates if they return less rows than
the default logical table sources
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Step 8 : Optimized Query Rewrite, and pass to Execution Engine
• Optimized Query Rewrite checks database capabilities for function shipping
and ability to join subqueries
• Generates optimal physical SQL or MDX for relevant data sources
• Passed to Execution
Engine for transfer
to physical databases
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Step 9 : Copy Back to Cache Services, if Enabled
• Results are returned to calling application (Answers etc)
• If caching is enabled, results are copied back to Cache Services
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Key Navigator Functionality
•
•
•
•
•
•
BI Server will pick one or more LTSs at run-time based on query context
Generates an execution plan
Will try and generate as few physical SQL as possible
Will try to push down functions if possible
Will try to push down joins if possible
Will write the optimal SQL or MDX for the
data source, based on DBFunctions.INI matrix
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Level 5 Query Logging and Logical Execution Plans
• The execution plan generated by the Navigator can be viewed when Level 5
logging is enabled
• Shows the execution plan, step-by-step row counts, and the physical SQL / MDX
generated for the request
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
BI Server Joins
• (Almost) Every request requires joins
• For simple queries, you don’t notice this because they are pushed down to the DB
• For more complex queries, the BI Server may need to get involved
‣ Where more than one physical database provides data for the request
‣ Where multi-pass logic is used
‣ Where measures are fragmented
‣ Where more than one fact table is used in the request
• Basic principle is that the BI Server tries to push down all joins
• Depending on the database type and version and nature of request,
the BI Server may need to perform the joins instead
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
The BI Server Source-to-Target Metadata Model
• Facts and dimensions are mapped to physical sources Logical Table Sources
• LTS are chosen at run time based on RPD
definitions (level mapping, fragmentation, federation etc)
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
So What Does The BI Server Do, When It Joins Data In Memory?
• So just what goes on when the BI Server joins data in memory?
• How can we tell when the BI Server has performed the join?
• Why does the BI Server sometimes do the join, and sometimes get the database
to do it instead?
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
BI Server Join Type 1 : Fact + Dimension from Single Database
• Single logical fact and dimension table, joined by a logical join
• Both logical tables have single LTS, which both point to tables in the
same physical database
• Physical tables are joined using a physical foreign key
Single Database
LTS Mapping
Products
Logical
Dimension
Products
Physical
Table
Sales
Logical
Fact
Sales
Physical
Table
LTS Mapping
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Single Source Fact and Dimension Execution Plan & SQL
• BI Server generates execution plan with single logical SQL including join clause
RqList <<2105>> [for database 3023:2820:orcl3,44]
PRODUCTS.PROD_SUBCATEGORY_DESC as c1 GB [for database 3023:2820,44],
sum(SALES.QUANTITY_SOLD by [ PRODUCTS.PROD_SUBCATEGORY_DESC] ) as c2 GB [for database 3023:2820,44]
Child Nodes (RqJoinSpec): <<2136>> [for database 3023:2820:orcl3,44]
PRODUCTS T2874
SALES T2911
DetailFilter: PRODUCTS.PROD_ID = SALES.PROD_ID [for database 0:0]
GroupBy: [ PRODUCTS.PROD_SUBCATEGORY_DESC] [for database 3023:2820,44]
OrderBy: c1 asc [for database 3023:2820,44]
• Single physical SQL with join pushed down to database
select T2874.PROD_SUBCATEGORY as c1,
sum(T2911.QUANTITY_SOLD) as c2from
PRODUCTS T2874,
SALES T2911where ( T2874.PROD_ID = T2911.PROD_ID ) group by T2874.PROD_SUBCATEGORYorder by c1
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
BI Server Join Type 2 : Fact + Dimension from Two Databases
• Single logical fact and dimension table, joined by a logical join
• Both logical tables have single LTS, which point to different databases
• Physical tables are joined using a
physical foreign key
Database #1
Products
Physical
Table
LTS Mapping
Products
Logical
Dimension
Sales
Logical
Fact
Database #2
Sales
Physical
Table
LTS Mapping
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Multiple Source Fact and Dimension Execution Plan
• Excerpt of plan (source rqList cropped)
• Two logical SQL blocks with InnerJoin between fact and dimension tables
‣ Can also be LeftOuterJoin, RightOuterJoin and FullOuterJoin
(
RqList <<2495>> [for database 3023:132:orcl,44]
SALES.PROD_ID as c2 [for database 3023:132,44],
sum(SALES.QUANTITY_SOLD by [ SALES.PROD_ID] ) as c3 [for database 3023:132,44]
Child Nodes (RqJoinSpec): <<2504>> [for database 3023:132:orcl,44]
SALES T211
GroupBy: [ SALES.PROD_ID] [for database 3023:132,44]
OrderBy: c2 asc [for database 3023:132,44]
) as D901
InnerJoin <<2492>> On D901.c2 = D902.c2; actual join vectors: [ 0 ] = [ 1 ]
(
RqList <<2517>> [for database 3023:2500:orcl2,44]
PRODUCTS.PROD_SUBCATEGORY_DESC as c1 GB [for database 3023:2500,44],
PRODUCTS.PROD_ID as c2 [for database 3023:2500,44]
Child Nodes (RqJoinSpec): <<2523>> [for database 3023:2500:orcl2,44]
PRODUCTS T2502
OrderBy: c2 asc [for database 3023:2500,44]) as D902
OrderBy: c2, c3 [for database 0:0,0] ) as D1
OrderBy: c1 asc [for database 0:0,0]
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Multiple Source Fact and Dimension Physical SQL
• Two physical SQL queries sent to the two databases
• BI Server joins the two sources in-memory using a sort-merge join algorithm
-------------------- Sending query to database named orcl (id: <<6057>>):select T211.PROD_ID as c2,
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
sum
BI Server Join Type 3 : Fact + Dimension Using Driving Table
•
•
•
•
Single logical fact and dimension table, joined by a logical join
Two tables typically LTS mapped to different physical databases
One of the logical tables defined as a driving table in the BMM logical join
Driving table uses Parameterized Nested
Loop Join (PNLJ) to “probe” other table
Database #1
Database #2
LTS Mapping
Products
Logical
Dimension
PNLJ
Probe
Lookup
Products
Physical
Table
Sales
Logical
Fact
Sales
Physical
Table
LTS Mapping
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Driving Table Considerations
• By default, federated queries will cause both tables to be loaded into the BI Server
memory, and then joined (as per previous example)
• Can be expensive if one or more of the tables are large
• An alternative is to designate one of the tables as
the “driving table”
‣ Needs to be small, typically <1000 rows
• This table is then queried and filtered first,
then it’s remaining rows are then applied as
a filter to the second table
• Driving table is defined in the Logical Join dialog
T : +44 (0) 8446 697 995 E : enquiries@rittmanmead.com W: www.rittmanmead.com
Parameterized Nested Loop Join Algorithm & Physical SQL
1.
2.
3.
4.
Start reading rows from the driving table
Submit a parameterized query request to non-driving table
Bind values from the drive-table rows into the parameterized query and fetch results
Repeat until all rows from drive table are processed
RqList
PRODUCTS.PROD_SUBCATEGORY as c1 GB,
select T2502.PROD_SUBCATEGORY as c1,
QUANTITY_SOLD:[DAggr(SALES.QUANTITY_SOLD by [ PRODUCTS.PR
select T211.PROD_ID as c2,
sum(T211.QUANTITY_SOLD) as
c3from
SALES T211where ( T211.PROD_ID in (:PARAM1,
:PARAM2, :PARAM3,
:PARAM4, PRODUCTS
:PARAM5, T2502order
:PARAM6, :PARAM7,
T2502.PROD_ID
as c2from
by c2
:PARAM8, :PARAM9, :PARAM10, :PARAM11, :PARAM12, :PARAM13,
:PARAM14, :PARAM15, :PARAM16, :PARAM17, :PARAM18,
:PARAM19, :PARAM20) ) group by T211.PROD_ID order by c2
T : +44 (0) 8446 697 995 E : enquiries@rittmanmead.com W: www.rittmanmead.com
Fact and Dimension Driving Table Execution Plan
• Excerpt of plan
• Note InnerJoin (left drive) and parameterized DetailFilter in plan
(
RqList <<13655>> [for database 3023:2500:orcl2,44]
PRODUCTS.PROD_SUBCATEGORY as c1 GB [for database 3023:2500,44],
PRODUCTS.PROD_ID as
c2 [for database 3023:2500,44]
Child Nodes (RqJoinSpec): <<13658>> [for database
3023:2500:orcl2,44]
PRODUCTS T2502
OrderBy: c2 asc [for
database 3023:2500,44]
) as D901
InnerJoin (left drive) <<13689>> On D902.c2 =
D901.c2; actual join vectors: [ 1 ]=[ 0 ]
(
RqList <<13673>> [for
database 3023:132:orcl,46]
SALES.PROD_ID as c2 [for database 3023:132,46],
sum(SALES.QUANTITY_SOLD by [ SALES.PROD_ID] ) as c3 [for database 3023:132,46]
Child
Nodes (RqJoinSpec): <<13676>> [for database 3023:132:orcl,46]
SALES T211
DetailFilter: SALES.PROD_ID = ?1 or SALES.PROD_ID = ?2 or SALES.PROD_ID = ?3 or
SALES.PROD_ID = ?4 or SALES.PROD_ID = ?5 or SALES.PROD_ID = ?6 or SALES.PROD_ID = ?7 or SALES.PROD_ID = ?8
or SALES.PROD_ID = ?9 or SALES.PROD_ID = ?10 or SALES.PROD_ID = ?11 or SALES.PROD_ID = ?12
or SALES.PROD_ID = ?13 or SALES.PROD_ID = ?14 or SALES.PROD_ID = ?15 or SALES.PROD_ID = ?16
or SALES.PROD_ID = ?17 or SALES.PROD_ID = ?18 or SALES.PROD_ID = ?19 or SALES.PROD_ID = ?20 [for database 0:0]
GroupBy: [ SALES.PROD_ID] [for database 3023:132,46]
OrderBy: c2 asc [for database
3023:132,46]
) as D902
T : +44 (0) 8446 697 995 E : enquiries@rittmanmead.com W: www.rittmanmead.com
BI Server Join Type 4 : Two Facts Using a Single Database
• Query requires data from two fact tables, sharing a common dimension
• BI Server creates two logical queries and “stitches” results together, to avoid “fan trap”
• Join is pushed down to the database if possible
Single Database
LTS Mapping
Costs
Physical
Table
Costs
Logical
Fact
Products
Logical
Dimension
LTS Mapping
Sales
Logical
Fact
Products
Physical
Table
LTS Mapping
T : +44 (0) 8446 697 995 E : enquiries@rittmanmead.com W: www.rittmanmead.com
Sales
Physical
Table
Facts with Conformed Dimensions Execution Plan
• Two result sets are generated, with a FullOuterStitchJoin between them
• Capabilities of physical database determine whether join is pushed down to database
(
RqList <<3474>> [for database 3023:2820:orcl3,46]
sum(COSTS.UNIT_COST by [ PRODUCTS.PROD_SUBCATEGORY_DESC] ) as c1 GB [for database
3023:2820,46],
PRODUCTS.PROD_SUBCATEGORY_DESC as c2 GB [for database 3023:2820,46]
Child Nodes (RqJoinSpec): <<3507>> [for database 3023:2820:orcl3,46]
PRODUCTS T2874
COSTS T2830
DetailFilter: COSTS.PROD_ID = PRODUCTS.PROD_ID [for database 0:0]
GroupBy: [ PRODUCTS.PROD_SUBCATEGORY_DESC] [for database 3023:2820,46]
) as D1 FullOuterStitchJoin <<3565>> On D1.c2 = D2.c2
(
RqList <<3511>> [for database 3023:2820:orcl3,46]
sum(SALES.AMOUNT_SOLD by [ PRODUCTS.PROD_SUBCATEGORY_DESC] ) as c1 GB [for database
3023:2820,46],
PRODUCTS.PROD_SUBCATEGORY_DESC as c2 GB [for database 3023:2820,46]
Child Nodes (RqJoinSpec): <<3544>> [for database 3023:2820:orcl3,46]
PRODUCTS T2874
SALES T2911
DetailFilter: PRODUCTS.PROD_ID = SALES.PROD_ID [for database 0:0]
GroupBy: [ PRODUCTS.PROD_SUBCATEGORY_DESC] [for database 3023:2820,46]
) as D2
T : +44 (0) 8446 697 995 E : enquiries@rittmanmead.com W: www.rittmanmead.com
Facts with Conformed Dimensions Single Physical SQL
• Where database supports subquery factoring (Oracle 10gR2+) a single physical SQL will
be generated with a full outer join between all shared dimension columns
WITH
SAWITH0 AS (select sum(T2830.UNIT_COST) as c1,
T2874.PROD_SUBCATEGORY_DESC as c2
from
PRODUCTS T2874,
COSTS T2830
where ( T2830.PROD_ID = T2874.PROD_ID )
group by T2874.PROD_SUBCATEGORY_DESC),
SAWITH1 AS (select sum(T2911.AMOUNT_SOLD) as c1,
T2874.PROD_SUBCATEGORY_DESC as c2
from
PRODUCTS T2874,
SALES T2911
where ( T2874.PROD_ID = T2911.PROD_ID )
group by T2874.PROD_SUBCATEGORY_DESC)
select distinct SAWITH0.c1 as c1,
SAWITH1.c1 as c2,
case when SAWITH0.c2 is not null then SAWITH0.c2
when SAWITH1.c2 is not null then SAWITH1.c2 end as c3
from
SAWITH0 full outer join SAWITH1 On SAWITH0.c2 = SAWITH1.c2
order by c3
T : +44 (0) 8446 697 995 E : enquiries@rittmanmead.com W: www.rittmanmead.com
Facts with Conformed Dimensions Multiple Physical SQL
• Otherwise, multiple physical SQL queries will be generated
• BI Server will perform in-memory sort-merge stitch full outer join on shared dim columns
-------------------- Sending query to database named orcl3 (id: <<3018>>):
select sum(T2830.UNIT_COST) as c1,
T2874.PROD_SUBCATEGORY_DESC as c2
from
PRODUCTS T2874,
COSTS T2830
where ( T2830.PROD_ID = T2874.PROD_ID )
group by T2874.PROD_SUBCATEGORY_DESC order by c2
+++Administrator:2a0000:2a0005:----2010/02/28 15:05:31
-------------------- Sending query to database named orcl3 (id: <<3055>>):
select sum(T2911.AMOUNT_SOLD) as c1,
T2874.PROD_SUBCATEGORY_DESC as c2
from
PRODUCTS T2874,
SALES T2911
where ( T2874.PROD_ID = T2911.PROD_ID )
group by T2874.PROD_SUBCATEGORY_DESC order by c2
T : +44 (0) 8446 697 995 E : enquiries@rittmanmead.com W: www.rittmanmead.com
Stitch Joins and Federated Queries
• Stitch joins are used whenever multiple fact tables are used in queries
• Also used when federated fact table sources are used, and aggregate sources
• Basic principle is to join facts using FullOuterStitchJoin
across all dimension attribute columns used in the query
...
) as D901 FullOuterStitchJoin <<7800>>
On D901.ProductCategory =NullsEqual D902.ProductCategory
and D901.ProductCategory =NullsEqual D902.ProductCategory;
actual join vectors: [ 0 1 ] = [ 0 1 ]
(
...
T : +44 (0) 8446 697 995 E : enquiries@rittmanmead.com W: www.rittmanmead.com
Rules for BI Server Join Strategy
•
•
•
•
•
Try to generate as few physical SQL / MDX queries as possible
Push as many joins (and functions) down to the database as possible
Where required, join fact and dimensions in memory using inner and outer sort-merge joins
If driving table is specified, iterate through join using nested loop algorithm
Generate one logical SQL query per fact table access,
push down stitch join to database using full outer join
if possible, if not have the BI Server do it
• Logical execution plan and resulting
physical SQLs visible in the Level 5 log file
T : +44 (0) 8446 697 995 E : enquiries@rittmanmead.com W: www.rittmanmead.com
BI Server Join Variations 1 : Fragmentation (Partitioned Measures)
•
•
•
•
•
RPD has a measure mapped through two or more LTS to different physical tables
One physical source for historic data, one for real-time
One for Southern Region, one for Northern Region
Known as fragmentation
BI Server has to UNION the resultsets
together
T : +44 (0) 8446 697 995 E : enquiries@rittmanmead.com W: www.rittmanmead.com
Fragmentation (Partitioned Measures) Logical Execution Plan
• Execution Plan will contain two logical SQL blocks (excerpt shown below)
• RqUnion All union’s the two resultsets, BI Server will attempt to push down to database
if possible (if not, two physical SQLs will need to be retrieved and UNION done in memory)
(
RqList <<7613>> [for database 3023:6594:orcl7,44]
PRODUCTS.PROD_SUBCATEGORY_DESC as c2 [for database 3023:6594,44],
SALES_UPTO_2003.AMOUNT_SOLD as c3 [for database 3023:6594,44]
Child Nodes (RqJoinSpec): <<7617>> [for database 3023:6594:orcl7,44]
PRODUCTS T6596
SALES T6629
DetailFilter: PRODUCTS.PROD_ID = SALES_UPTO_2003.PROD_ID [for database 0:0]
RqUnion All <<7690>> [for database 3023:6594:orcl7,44]
RqList <<7668>> [for database 3023:6594:orcl7,44]
PRODUCTS.PROD_SUBCATEGORY_DESC as c2 [for database 3023:6594,44],
SALES_BEYOND_2003.AMOUNT_SOLD as c3 [for database 3023:6594,44]
Child Nodes (RqJoinSpec): <<7672>> [for database 3023:6594:orcl7,44]
PRODUCTS T6596
SALES T6637
DetailFilter: PRODUCTS.PROD_ID = SALES_BEYOND_2003.PROD_ID [for database 0:0]
) as D3
T : +44 (0) 8446 697 995 E : enquiries@rittmanmead.com W: www.rittmanmead.com
BI Server Join Variations 2 : Time-Series Queries
•
•
•
•
Generated when time-series functions are used in a request
Requires time dimension to be defined in RPD
Currently limited to AGO and TODATE functions
Generates two or more logical SQL queries which need to be joined together to return timeseries results
T : +44 (0) 8446 697 995 E : enquiries@rittmanmead.com W: www.rittmanmead.com
Time Series Logical Execution Plan
•
•
•
•
Execution plan will show multiple nested logical SQL blocks
More complex set of nested blocks will be doing the time offset
Time offset block will need to be FullOuterStitchJoined to the present-day resultset
Excerpt shown below
...
DetailFilter: ITEMS.ORDID = ORDERS.ORDID and ORDERS.ORDERDATE = D4.c2
and D3.c1 = D4.c1 and D3.c2 = 'May-2007' [for database 0:0]
GroupBy: [ D3.c2, D3.c3] [for database 3023:4210,44]
) as D1
OrderBy: c1 asc [for database 3023:4210,44]
) as D901 FullOuterStitchJoin
<<4892>>
On D901.c1 =NullsEqual D902.c1; actual join vectors: [ 0 ] = [ 0 ]
(
RqList <<4963>> [for database 3023:4210:orcl4,44]
D2.c2 as c1 [for database 3023:4210,44],
D2.c1 as c2 GB [for
database 3023:4210,44],
D2.c3 as c3 [for database 3023:4210,44]
...
• Depending on DB capabilities, will either be shipped as one SQL (using subqueries)
or as two or more SQLs (with results full outer stitch joined in memory)
T : +44 (0) 8446 697 995 E : enquiries@rittmanmead.com W: www.rittmanmead.com
Memory and Disk Usage During BI Server Joins
•
•
•
•
So what happens when the BI Server performs an in-memory join?
The BI Server requires memory to join the data sets using a sort-merge algorithm
Initial memory usage is determed by size/complexity of the RPD
Memory usage then rises with # of concurrent
sessions, in-memory joins, aggregations
• Typically paged to file at
{ORACLEBIDATA}/tmp
• Because of paging, use of BI Server
functional compensation is largely I/O
intensive rather than memory intensive
• Extent of paging driven by
VIRTUAL_TABLE_PAGE_SIZE parameter
‣ May benefit from increase on Unix systems
‣ Docs do not imply much benefit though
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
So What Influences Execution Plans and Physical Query(ies)?
• Logical Execution Plan largely determined by the LTS mappings in the RPD
• BI Server Navigator generates execution plan based on context of the request
and the LTS configuration in the BMM layer
• All can be determined by looking at the RPD
‣ No equivalent to the Oracle database CBO
• Physical SQL then determined by
execution plan and DBFeatures.INI
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Are There The Equivalent of Object Statistics in the RPD?
• There are some limited statistics in the RPD that influence the query plan
‣ Row counts on physical tables are ignored
• Number of Elements at this Level value can be used by the Navigator to
determine which of several aggregates to use for a request
• Needs to be manually populated (rough figure is OK)
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Dimension Level Element Counts In Use
• Consider the following dimension
‣ Time Dim -> Year (2), Month (24), Days (730)
‣ Products Dim-> Type (10), Sub-Type (20), SKUs (1000)
‣ Customers Dim-> Regions(20), Districts(500), Customers (100000)
• Sales Fact joins to these dimensions at the lowest level.
• Also assume I have a couple of aggregate tables :
‣ Sales Fact Agg1 -> (Time Dim)Year, (Customer Dim) Districts
‣ Sales Fact Agg2 -> (Time Dim)Year, (Product Dim) Sub-Type
• Consider this Query Example :
• Select Year, Sum(Revenue) from Sales ;
• This can be satisfied by either Agg1 or Agg2, but BI Server has no way of knowing
which is the best option unless the number of elements are entered.
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
What Does the Logical Execution Plan Tell Us?
• It tells us how the BI Server Navigator turned the logical request into physical SQL
and MDX queries
• But there’s nothing that you couldn’t infer from the RPD
• There are no parameters etc that you can use to alter join strategies etc
‣ This is driven by the repository design only
• Extra information provided by Level 7 logging is interesting
‣ Times logged by each entry/step
‣ Tells us how long the BI Server
takes to do each join
• Can be used to fine-tune the
VIRTUAL_TABLE_POOL_SIZE
parameter
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
So What Does This All Tell Us?
•
•
•
•
Co-locate data as much as possible, minimize in-memory joins
Make sure the database version and capabilities is set correctly for each source
Maximize function push-down, mimimize functional compensation
Understand what happens with BI Server joins, and how to read the execution
plan
• Understand what a FullOuterStitchJoin is, and how to avoid unneccesary ones
• Understand the role of LTSs and when to add or remove them
• There is some diagnostic data available for the BI Server, but most of what
you need is contained in the RPD design
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Thank You for Listening
• More details on this topic, and on OBIEE in general, can be found on our blog
‣ http://www.rittmanmead.com/2010/02/25/inside-the-oracle-bi-server-part-1the-bi-server-architecture/
‣ http://www.rittmanmead.com/2010/03/01/inside-the-oracle-bi-server-part-2how-is-a-query-processed/
‣ http://www.rittmanmead.com/2010/03/03/inside-the-oracle-bi-server-part-3bi-server-in-memory-joins/
• Thank you for your time
• Any questions :
‣ Web : http://www.rittmanmead.com
‣ Email : mark.rittman@rittmanmead.com
‣ Twitter : @markrittman
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Inside the Oracle BI Server (10g)
Collaborate’10 IOUG Forum, Las Vegas, April 2010
Lession 3 : Inside the Oracle BI Server
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Deep Dive into Oracle BI EE 10g
Collaborate’10 IOUG Forum, Las Vegas, April 2010
Lession 4 : Building Reports and Dashboards
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Introducing Oracle BI Answers
• The Ad-hoc report editor for Oracle BI Suite Enterprise Edition
• Modify existing reports, create new reports
• Add graphs, formatting, titles and other features, then publish to dashboard
T : +44 (0) 8446 697 995 E : enquiries@rittmanmead.com W: www.rittmanmead.com
Starting Oracle Answers
• New reports are created using Oracle Answers
• Click on the Answers link at the top right-hand side of the dashboard
T : +44 (0) 8446 697 995 E : enquiries@rittmanmead.com W: www.rittmanmead.com
Selecting Subject Areas and Existing Reports
• Answers initially presents you with a list of subject areas
• Existing reports, in your own, and shared folders
• Click on a subject area
to start creating a report
T : +44 (0) 8446 697 995 E : enquiries@rittmanmead.com W: www.rittmanmead.com
The Oracle BI Answers Interface
Data Items in
Your Report
(“Criteria”)
Filters Applied
To Results
Other Data
You Can Add
Tabs to View
Results, Prompts
T : +44 (0) 8446 697 995 E : enquiries@rittmanmead.com W: www.rittmanmead.com
Save, Open
and New Buttons
The Report Criteria
• Lists out the data items (“columns”) that make up your report
• Buttons for filtering, formatting, renaming columns
T : +44 (0) 8446 697 995 E : enquiries@rittmanmead.com W: www.rittmanmead.com
Adding Data Items to a Report
• The left-hand pane in Answers lists the tables and columns
you can add to your report
• Click on the tab name to display the available columns
T : +44 (0) 8446 697 995 E : enquiries@rittmanmead.com W: www.rittmanmead.com
Showing Report Results
• Click on the “Results” tab to show the report results
T : +44 (0) 8446 697 995 E : enquiries@rittmanmead.com W: www.rittmanmead.com
Viewing the Results
• Initial view of the results is a table
• Simple listing of items
• Notice the Title bar above the table - you will now configure it
T : +44 (0) 8446 697 995 E : enquiries@rittmanmead.com W: www.rittmanmead.com
Using the View Selector
• Reports in Oracle Answers can have multiple Views associated with them
• Default views are Table, Title and Compound
‣ Table view is a simple listing
‣ Title view provides a title, subtitle and icon
‣ Compound view combines multiple views
• Compound view is normally the view
displayed in the dashboard
T : +44 (0) 8446 697 995 E : enquiries@rittmanmead.com W: www.rittmanmead.com
Adding a Graph
• From within the Results tab view, select “Chart” from the view selector
• Chart view is then displayed, with Bar Chart as the default graph
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Graph Types
•
•
•
•
•
•
•
•
•
•
•
Area
Horizontal Bar
Bubble
Vertical Bar
Line
Line-Bar Combo
Pareto
Pie
Radar
Scatter
Step
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Adding Gauges
• Gauges are another view option
• Select using View Selector, choose Gauge type using drop-down menus
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Adding Images into Reports
• Reports can be more informative when
using pictures to illustrate values
‣ Gauges to show KPIs
‣ Arrows to show trends
‣ Warning signs to show issues
‣ Stars to show popularity
• Answers can conditionally format any value
using a set of images
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Adding Navigation to Views
• By default, drilling on a column or heading displays data in more detail
‣ Drill down from country > city > town > customer
• Views can be instructed to instead navigate
to a different report or URL
‣ Column value clicked on to
the target request
‣ Receiving request needs to set filter to
“Is prompted”
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Demonstration
Building Reports with Oracle BI Answers
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Introducing Oracle BI Dashboard
• One-stop shop for all your users’ reports
• Fully interactive, single UI for report consumers
T : +44 (0) 8446 697 995 E : enquiries@rittmanmead.com W: www.rittmanmead.com
Dashboard Key Features
Tabs
Log In / Log Off
Reports
Narratives
Graphs
Selectors
Print & Save
Modify
T : +44 (0) 8446 697 995 E : enquiries@rittmanmead.com W: www.rittmanmead.com
The Dashboard Editor
Objects you can
add to dashboard
Control for
Viewing and Adding
Tabs (pages)
Button for
Editing Dashboard
Properties
Buttons for Editing
Report and
Section Properties
Reports you
add to dashboard
Dashboard
Sections
T : +44 (0) 8446 697 995 E : enquiries@rittmanmead.com W: www.rittmanmead.com
Adding Requests to the Dashboard
•
•
•
•
Drag and Drop from the list of available reports
Add Sections from the Dashboard Objects palette as required
Select view of data
Add links for printing,
downloading etc
T : +44 (0) 8446 697 995 E : enquiries@rittmanmead.com W: www.rittmanmead.com
Demonstration
Creating Dashboards
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Deep Dive into Oracle BI EE 10g
Collaborate’10 IOUG Forum, Las Vegas, April 2010
Lession 4 : Building Reports and Dashboards
T : +44 (0) 8446 697 995 or (888) 631 1410 (USA) E : enquiries@rittmanmead.com W: www.rittmanmead.com
Download