Add More Visualization Capabilities To OBIEE
- 4. www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Real Time BI with Kevin & Stewart
•19 episodes over the last 2
years
•Featured guests from the
Oracle BI & EPM industry
•Published on iTunes and
YouTube
•Join us at the Thursday
Deep-Dive session from
9-11am for a LIVE show that
will be simultaneously
broadcast online!
4
- 8. www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Existing OBIEE Visualizations
•Table
•Pivot Table
•Bar Chart
•Line Chart
•Area Chart
•Pie Chart
•Line-Bar Chart
•Pareto Chart
•Scatter Chart
•Bubble Chart
•Radar Chart
•Waterfall Chart
•Gauge Chart
•Funnel Chart
•Map
•Performance
Tile
•Ticker
•Narrative
•Trellis
• Bar
• Line
• Area
• Line-Bar
• Pie
• Scatter
• Bubble
• Spark
8
- 11. www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Add New Functionality
11
Crossfilter Flot
Drag the handles
to filter all
objects on a
certain time of
day, delay,
distance, or date
range.
Highlight a range in the
summary line chart to
zoom the detail line chart.
- 16. www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Three Types Of Visualization Engines
•Call to a remote server (outside firewall)
•Call to software on another server (inside firewall)
•Call to an engine deployed locally on the BI server or
another application server (inside firewall)
16
- 17. www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Remote Server (Outside Firewall)
17
WebLogic
OBIEE
Remote
Visualization
Engine
Firewall
Data to generate the
visualization is passed
through the firewall to
an API.
The visualization is
passed back as an
embedded web
object.
Database
DW
Data to satisfy the
logical SQL is passed
to OBIEE.
- 18. www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Internal Server
Internal Software Server (Inside Firewall)
18
WebLogic
OBIEE
Visualization
Engine
The visualization is
passed to OBIEE as a
data or web object.
OBIEE makes a call to a service,
API, or data structure.
Database
DW Data to generate the
visualization is passed
to the engine (may go
through BI Server).
- 19. www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Deployed Application On OBIEE Server (Inside Firewall)
19
WebLogic
OBIEE
Deployed
Visualization
Engine
Data to generate the
visualization is
pushed into a
javascript array.
The visualization is
rendered in OBIEE
using javascript.
Database
DW
Data to satisfy the
logical SQL is passed
to OBIEE.
- 20. www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
How Well Do 3rd-Party Engines Integrate Into OBIEE?
•Some integrate into dashboards seamlessly using standard
OBIEE functionality, some are more of an iFrame approach
•Row-level data security may be challenging where the
data is processed externally from the OBIEE front-end
•OBIEE “application” functionality (print, export, navigate,
prompts, dashboard customizations, hover, interact) may
not work seamlessly depending on the engine
• New SampleApp includes java code to help improve some of this
•Some engines may have browser requirements that
conflict with OBIEE browser support or the standard
browser adopted by the user
20
- 21. www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
• Typically well documented
and and usually well
supported
• Data security is a mild
concern
• Processing occurs on a
second server but network
latency exists
• Enhancements/upgrades
are managed
• Typically $$$
• Not always well
documented nor well
supported
• Data security is not a
concern
• Processing occurs on the
same server, which could
degrade overall server
• Enhancements/upgrades
are managed
• Free or $$$
Compare/Contrast
21
• Typically well
documented, though not
necessarily supported
• Data security is a
legitimate concern
• Processing occurs on
another server but over
the internet
• Risk of unexpected
changes or upgrades
• Free or $$$
Internal Server Local ServerRemote Server
- 25. www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Server Setup And Files
•Download the files for the visualization engine
•Place files in a new or existing (analyticsRes) application
folder on the server
•If new, deploy folder in WebLogic Server as an
application
•Create or edit CSS files for consistent formatting
(optional)
25
- 34. www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Criteria Notes
•Dates
• Different visualization engines handle date/time data differently
• Don’t assume it works like the Oracle DB or OBIEE
•Data Formatting
• Remove value formatting like currency, commas, percentages,
etc.
• Again with date/time, you may need to remove the formatting
•Strings
• Be conscious of the use of spaces, commas, special characters in
your text values
34
- 35. www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Narrative View
•Prefix
• One-time text that comes
before the narrative body
•Narrative
• Text that is repeated for every
record in the report (or based
on “Rows to display”)
• Can reference criteria columns
using “@#” syntax (eg, @1)
•Postfix
• One-time text that comes
after the narrative body
35
- 37. www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Narrative Notes / Suggestions
•Despite the following walkthroughs, consider the
following:
•Define CSS and reference in deployed files to maintain
consistency
•Deploy as much javascript as possible to deployed files to
keep Narrative views simple and consistent
•Leverage examples on the internet to jump-start your
efforts, but…
•Large scale use of javascript-based visualizations should
involve knowledgable java programmers to avoid poor
performing objects on dashboards
37
- 40. www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Working With Time In Flot
!
•Timestamp:
CAST(CAST("Time"."T00 Calendar Date" AS
VARCHAR(20)) as TIMESTAMP)
•Base Timestamp
CAST('01-Jan-1970' as TIMESTAMP)
•TS Diff
TIMESTAMPDIFF(SQL_TSI_SECOND, CAST('01-
Jan-1970' as TIMESTAMP),
CAST(CAST("Time"."T00 Calendar Date" AS
VARCHAR(20)) as TIMESTAMP))
•Flot TS
CAST(TIMESTAMPDIFF(SQL_TSI_SECOND,
CAST('01-Jan-1970' as TIMESTAMP),
CAST(CAST("Time"."T00 Calendar Date" AS
VARCHAR(20)) as TIMESTAMP)) as DOUBLE
PRECISION)*1000
40
Flot uses javascript time (milliseconds since 1/1/1970 12:00am)