The Florida State University: Transactional Reporting in The Real World With OBIEE

You might also like

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 32

The Florida State University

Transactional Reporting in the real


world with OBIEE

Session #27777
March 2, 2010
[NQODBC] [SQL_STATE: S1000]
[nQSError: 10058] A general error has
occurred.
[nQSError: 14026] Unable to navigate
requested expression. Please fix the
metadata consistency warnings.
The Florida State University

Current Enrollment 40,255


Florida State University

…is a premier, comprehensive,


graduate research university,
with both law and medical
schools.
 Annual Operating Budget: $1.1B
 Over 40,000 students
 Over 13,000 employees
 Over 13,000 biweekly paychecks
 Over $18 million in biweekly payroll
Overview

• Introduction to FSU’s BI Initiative


• Overview of FSU’s OBIEE Implementation
• Current BI State
• What is Transactional/OLTP Reporting?
• Physical/Logical Layer Deployment Issues
• Answers… Just turn it on!
• Tuning in the real World; Why is it SOOOO slow?
• Closing Tips
• Questions & Comments
FSU and Oracle PeopleSoft
• Implemented Financials 8.4, Portal 8.8, and
EPM 8.8 in June 2004
• Implemented HR/Payroll 8.8 in Dec 2004
• Upgraded HR & EPM Suites to 8.9 in April 2006
• Upgraded FI Suite to 8.9 in Nov 2006
• Upgraded EPM & Portal Suites to 9.0 in Nov 2007
• Upgraded HR Suite to 9.0 in Oct 2008
• Upgraded FI Suite to 9.0 in April 2009
• Deployed EPM 9.0 & OBIEE 10.1.3.3(Windows) in
March 2008
• Upgraded OBIEE 10.1.3.4(Linux) in April 2009
FSU’s BI Profile
• Deployed new BI Solution 2 years ago
• Solution meets the reporting needs of our the major
Administrative organizations on Campus
• Consists of 25 Dashboards and 27 Subject Areas
• Over 1200 distinct users & 2.5 Million Requests
• Dashboard Consumption & Self Service Reporting
• Currently in Phase III of our Deployment
(Standardization of Campus BI on OBIEE)
• 2009 Oracle Innovation Award Recipient
Current BI Development State
What is Transactional Reporting?

Simply put, reporting against any source database


which stores information outside of the normal
constructs of a dimensional data warehouse model.
Achieving success… The easy way!
• Planning of Subject areas is a must
– Business to source column mapping is key
• You just can’t live without self service reporting…
unless you have an unlimited budget for report
developers.
• Stop, Drop and Roll is no way to deploy a BI
Solution
• Subject Areas should be released in a phased
approach
Achieving success… The easy way!

• Stars are the Goal… Even in the transactional world


Achieving success… The easy way!
• Subject area content should be grouped by business
process.
– Subject Areas typically align tightly with
Dashboard Structure.
– A Self Service user should be able to get at the
data he/she needs to create business appropriate
reports without tracking through 50 tables.
– To many subject areas and you have another BIG
problem; complexity.
Physical/Logical Layer Issues

Now for all of the “Techie” stuff!


Physical Layer Issues
• Circular Joins
– Typically happens when a table has
more than one route to complete a
join.
– Always import tables without FKs
turned on.
– Can be resolved easily with aliases
– Aliases should always be named in a
fashion which relates them to the
logical layer subject matter.
Physical Layer Issues
• Nulls
– It is absolutely imperative to set NULL flags
correctly.
Typical OBIEE Psuedo SQL
Select fields from
Select (Detail Rows) DR,
Select (SubTotal Rows) SR
Where DR.SubTotal Field = SR.SubTotal Field

Nullable Join
nvl(DR.c1 , 88.0) = nvl(SR.c1 , 88.0)
and nvl(DR.c1 , 99.0) = nvl(SR.c1 , 99.0)
Physical Layer Issues
• Nulls
– The 88.0 and 99.0 are auto generated based on the field being
null.
– For Char/Varchar fields a ‘q’ or ‘z’ are used.
– Very dangerous especially if the join field contains the above
null replacement characters.
– Null when not nullable – Correct answer but can’t use index
– Nullable when not null – Incorrect answers as an equal join
would be used thereby removing rows from the result set
which could be relevant.
Physical Layer Issues
• Recommended Join Structure
– Get it right the first time, physical joins are typically
never touched after initial implementation.
– All joins should be PK/FK
– This will (in most cases) guarantee insulation against
typical errors which OBIEE generates due to not
using standard dimensional model
– Only ONE PK should exist on each table.
– Driving tables are your friend; as long as you know
the data structure.
Physical Layer Issues
• Row level security
– Delivered is handled via joins to SJT tables
– In our case we found it to be better performing by
using the content filtering options on a logical table
source.
– Must be applied to each pseudo fact table in order to
achieve row level security
– Removes the need for a join by simply placing the
restriction in a where clause.
– Must use Repository variable(s) in order to use this
method.
Physical Layer Issues
• Federated Joins
– Federated joins should be avoided at ALL costs.
– If reduction in federated joins isn’t possible; you
should always set driving tables in order to reduce
cost
– Tune MAX_PARAMETERS_PER_DRIVE_JOIN to
control how many in list operators can be sent per
query of a drive.
– Tune MAX_QUERIES_PER_DRIVE_JOIN to control
the number of queries can be sent to formulate a
driving join result set.
Physical Layer Issues
• Poorly Tuned Database features
– Just because it’s the default doesn’t mean it’s correct!
– Most defaults take a very reserved approach as to
limit errors in the BI Server.
– Common objects which should be investigated are:
COUNT_DISTINCT_SUPPORTED
DERIVED_TABLES_SUPPORTED
CASE Statement Support
Running Aggregate support(IE, Sum,Count,etc)
Logical Layer Issues
• Calculations in the Logical Layer
– Keep one thing in mind when developing Logical objects; keep
the objects as close to the database as possible.
Ex: Given the below Case statements, imagine having 20 or
so fields in the same scenario listed below. Those fields
join to 5 smaller code lookup type tables. You create and
answers document which has 5 fields used in the filter and
return all 20 fields with a sum on each one.
Case when “Field1” = ‘A’ then 1 else 0 end
Case when “Field2” = ‘A’ then 1 else 0 end
Case when “Field3” = ‘A’ then 1 else 0 end
Logical Layer Issues
• Problems?
– The resulting SQL would contain somewhere in the
neighborhood of 4.25 MILLION characters.
– The compile time for OBIEE to even generate the SQL could
well exceed 70 seconds
– The BI Server process is pegged at 100% just to generate this
SQL query for the 70 seconds mentioned above.

-------------------- Logical Query Summary Stats: Elapsed time 74,


Response time 74, Compilation time 72 (seconds)
Logical Layer Issues
• So what was the fix?
– Stacking of calculations on a case statement isn’t very wise if
the corresponding case can be handled in a database view. The
best mix seems to be around 2~3 calculations deep and you
should look at other alternatives.
– Aliasing tables to resolve “Fan Traps” which OBIEE didn’t
know how to handle.
– DB Features of support “CASE” logic; There are 2 of these
both on the DB Features tab.
• The Result:
-------------------- Logical Query Summary Stats: Elapsed time 4,
Response time 4, Compilation time 0 (seconds)
Answers Issues

Answers… Can I just turn it on?


Answers Issues
• Query Limits? What’s that?
– It’s not nice to lock those performing
transactions out of the system because an answers
user didn’t understand the meaning of a filter.
– Even properly trained developers still have
“whoopsie” moments!
– We’re actively running reports against the
Transactional System… need I say more?
Answers Issues
• Query Limits! Query Limits! Query Limits!
– An Answers Self Service user should not be
retrieving 10,000 rows through the web in a
properly designed transactional reporting system.
– Is set in the physical layer of the repository based
on the role/groups a user belongs to and can
limit based on row count, execution time or
write back abilities
Answers Issues
• nAminG conVentionS!
– Consistent naming of core business related fields.
– Default aggregation standards by field type
should be defined at planning stage.
– Rename object names in the logical and
presentation layer instead of setting display
name.
– Set display name doesn’t account for formulas
which refer to the actual column name and not
the display name
Answers Issues
• Metadata Generator
– Manually Automatic process from the admin tool, which
must be generated and uploaded to a specific location on
the Presentation Server.
– Allows users to dig into a presentation column and view
the lineage about the column
Answers Issues
• Core Developer Subject Area
– Composed of many tables sometimes between 50-100
– Allows a developer to test reporting options across all subject
matter areas related to a specific database connection.
– Most newly modeled tables start in this area, with subsequent
copies to smaller business related subject areas.
– Allows for testing of data anomalies
– Can reduce need for direct data warehouse access by developers
– Typically only available to developers who are creating university
wide dashboards
Closing
• Plan the Subject Areas instead of them planning
you.
• Solid Physical/Logical Design
- Joins, Aggregation, Security, NULL
• Make sure your DB features are set based on the
database you’re connecting to
• Query Limits; Gotta have em.
• Don’t get view happy in the database!
• Error Message Troubleshooting
• http://download.oracle.com/otndocs/products/bi/bi-ee/docs/784/AnyMsg.pdf
Contact
Reggie Gentle
BI Architect
Enterprise Resource Planning (ERP)
Florida State University
RGentle@admin.fsu.edu

Thanks for attending Session #27777. I value your


feedback. Please complete the session survey.
This presentation and all Alliance 2010 presentations are
available for download from the Conference Site

Presentations from previous meetings are also available

You might also like