BI & Warehousing

Required Reading

Chet Justice - Wed, 2013-06-12 13:10
It's not often that I run across articles that really resonate with me. Last night was one of those rare occasions. What follows is a sampling of what I consider to be required reading for any IT professional with a slant towards database development. Bad CaRMa

how NOT to design a database schema - super classic article. Every data architect should read this !… @timothyjgorman

— Kyle Hailey (@dboptimizer) June 11, 2013
That led me to Bad CaRMa by Tim Gorman. This was an entry in Oracle Insights: Tales of the Oak Table, which I have not read, yet.

A snippet:

...The basic premise was that just about all of the features of the relational database were eschewed, and instead it was used like a filing system for great big plastic bags of data. Why bother with other containers for the data—just jam it into a generic black plastic garbage bag. If all of those bags full of different types of data all look the same and are heaped into the same pile, don't worry! We'll be able to differentiate the data after we pull it off the big pile and look inside.

Amazingly, Randy and his crew thought this was incredibly clever. Database engineer after database engineer were struck dumb by the realization of what Vision was doing, but the builders of the one-table database were blissfully aware that they were ushering in a new dawn in database design...

This is from 2006 (the book was published in 2004). Not sure how I missed that story, but I did. Big Ball of Mud I've read this one, and sent it out, many times over the years. I can't remember when I first encountered it, but I read this once every couple of months. I send it out to colleagues about as often. You can find the article here.

A BIG BALL OF MUD is haphazardly structured, sprawling, sloppy, duct-tape and bailing wire, spaghetti code jungle. We’ve all seen them. These systems show unmistakable signs of unregulated growth, and repeated, expedient repair. Information is shared promiscuously among distant elements of the system, often to the point where nearly all the important information becomes global or duplicated. The overall structure of the system may never have been well defined. If it was, it may have eroded beyond recognition. Programmers with a shred of architectural sensibility shun these quagmires. Only those who are unconcerned about architecture, and, perhaps, are comfortable with the inertia of the day-to-day chore of patching the holes in these failing dikes, are content to work on such systems.

Read it. Remember it. How To Ask Questions The Smart WayEver been in a forum? Has anyone ever given you the "RTFM" answer? Here's how you can avoid it. How To Ask Questions The Smart Way. I read this originally about 9 or 10 years ago. I've sent it out countless times.

The first thing to understand is that hackers actually like hard problems and good, thought-provoking questions about them. If we didn't, we wouldn't be here. If you give us an interesting question to chew on we'll be grateful to you; good questions are a stimulus and a gift. Good questions help us develop our understanding, and often reveal problems we might not have noticed or thought about otherwise. Among hackers, “Good question!” is a strong and sincere compliment.

Despite this, hackers have a reputation for meeting simple questions with what looks like hostility or arrogance. It sometimes looks like we're reflexively rude to newbies and the ignorant. But this isn't really true.

What we are, unapologetically, is hostile to people who seem to be unwilling to think or to do their own homework before asking questions. People like that are time sinks — they take without giving back, and they waste time we could have spent on another question more interesting and another person more worthy of an answer. We call people like this “losers” (and for historical reasons we sometimes spell it “lusers”).
Business Logic - PL/SQL Vs Java - Reg The article can be found here.

I'm don't believe this is the one that I would read just about every day during my first few years working with Oracle, but it's representative (I'll link up the original when I find it). I cut my teeth in the Oracle world by reading AskTom every single day for years. Some of my work at the time included working with java server pages (jsp) - at least until I found APEX. I monkeyed around with BC4J for awhile as well, but I believe these types of threads on AskTom kept me from going off the cliff. In fact, I got to a point where I would go to an interview and then debate the interviewer about this same topic. Fun times.

if it touches data -- plsql.

If it is computing a fourier transformation -- java.

If it is processing data -- plsql.

If it is generating a graph -- java.

If it is doing a transaction of any size, shape or form against data -- plsql.
Thinking Clearly About Performance Cary Millsap. Most of the people seem to know Cary from Optimizing Oracle Performance, I didn't. I first "met" Cary virtually and he was gracious enough to help me understand my questions around Logging, Debugging, Instrumentation and Profiling. Anyway, what I've learned over that time, is that Cary doesn't think of himself as a DBA, he's a Developer. That was shocking for me to hear...I wonder how many others know that. So I've read this paper about 20 times over the last couple of years (mostly because I'm a little slow). I organize events around this topic (instrumentation, writing better software, etc) and this fits in perfectly. My goal is to one day co-present with Cary, while playing catch, on this topic (I don't think he knows that, so don't tell him). Link to his paper can be found here. Enjoy! The Complicator's Gloves One of my favorite articles from The Daily WTF of all time. Find the article here. The gist of the story is this: an internal forum where people were discussing how to warm a given individuals hands on his bike ride to work. The engineers then proceeded to come up with all kinds of solutions...they spent all day doing this. Finally, someone posts, "wear gloves." End of discussion. Love it. I wrote about it years ago in Keeping it Simple. For a few years I considered buying up and try to gather related stories, but I got lazy. You should read this often, or better, send it out to colleagues on a regular basis to remind them of their craziness.

I'll continue to add to this list as time goes on. If you have any suggestions, leave a comment and I'll add them to the list.
Categories: BI & Warehousing

Looking Forward to Kscope13

Look Smarter Than You Are - Thu, 2013-06-06 23:17
On June 9, the rates for Kscope13 go up $300 per person (basically, you're going up to the last minute, I-don't-know-why-I-waited-but-now-it-costs-a-lot-more price).  If you haven't registered yet for what is by far the best Oracle EPM, BI, Hyperion, Business Analytics, Essbase, etc. conference in the world, go right now to and register.  It'll be the best training experience of the year: you're basically getting 4.5 days of training that you won't see anywhere else the entire year... for the price of 2 days of training at an Oracle training center.

And when you register, don't forget to use promo code IRC to save $100 off whatever the current rate is.

The conference is June 23-27 in New Orleans though my favorite day is always the opening Sunday, so make sure you fly in Saturday night.  On Sunday, they turn the sessions over to the Oracle Development team to talk about everything they have planned for the next 1-3 years.  It's the one time each year that you can hear right from the people who are building it what you're going to be seeing in the future.  There's generally an hour on each major product line (an hour on Essbase, an hour on Hyperion Planning, an hour on mobile BI, etc.).  The keynote this year is Balaji Yelamanchili, the head of Oracle BI and EPM development for Oracle.  My only semi-complaint about this year's BI/EPM Symposium is that there's so much content that they're splitting it into three concurrent symposiums: Business Intelligence, EPM, and a special symposium for the EPM business users.

This year will be somewhat bittersweet for me since I am no longer actively involved with the chairing of the conference.  This means that I get to focus on going to sessions, learning things, playing/leading Werewolf games, and of course, presenting a few sessions.  Here are the ones I'm personally teaching:

  • Using OBIEE to Retrieve Essbase Data:  The 7 Steps You Won’t Find Written Down.  This is in the BI track and it's basically all the quirks about connecting OBIEE to Essbase in a way that uses the strengths of each product.
  • What’s New in OBIEE Oracle on Your iPhone & Other Cool Things.  This is also in the BI track and it's an overview of all the things that people will like in (for both Hyperion and relational audiences).
  • Everything You Know About Essbase Optimization  is Incomplete, Outdated, Or Just Plain Wrong.  This is in the Essbase track and it's the one I'm most looking forward to delivering, because I get to break all of the optimization rules we all have been accepting as gospel for close to 20 years.
  • Learn From Common Mistakes: Pitfalls to Avoid In Your Hyperion Planning Implementation.  This is a vendor presentation hosted by interRel.  I get to sit on the panel and answer Planning questions from the audience while talking about blunders I've seen during Planning implementations.  It should be fun/rousing.  Since it's all interRel, I wouldn't be surprised if a few punches were thrown or at minimum, a few HR violations were issued.
  • Innovations in BI:  Oracle Business Intelligence against Essbase & Relational (parts 1 and 2).  This is also in the BI track (somehow I became a BI speaker???) and I'm co-presenting this session with Stewart Bryson from Rittman Mead.  We'll be going over OBIEE on Essbase on relational and compare it to OBIEE on relational directly.  Stewart is a long-time friend and Oracle ACE for OBIEE, so it should let us each showcase our respective experiences with Essbase and OBIEE in a completely non-marketing way.
  • CRUX (CRUD meets UX): Oracle Fusion Applications Functional UI Design Patterns in Oracle ADF.  This is in the Fusion track and I'll be talking about how to make a good user interface as part of the user experience of ADF.  No, this doesn't have a thing to do with Hyperion.
I am looking forward to all the wacky, new things Mike Riley (my replacement as Conference Chair for Kscope) has in store.  My first Kscope conference was in New Orleans in 2008 (back when they called it Kaleidoscope and no one was quite sure why it wasn't "i before e") so this is a homecoming of sorts albeit with 8 times as many sessions on Oracle BI/EPM.  If you're there (and let's face it, all the cool kids will be), stop by the interRel booth and say "hi."  It's the only 400 square feet booth, so it shouldn't be hard to find.
Categories: BI & Warehousing

Webcast Series - What's New in EPM and OBIEE

Look Smarter Than You Are - Tue, 2013-06-04 10:56
Today I'm giving the first presentation in a 9-week long series on all the new things in Oracle EPM Hyperion and OBIEE  The session today (and again on Thursday) is an overview of everything new in all the products.  It's 108 slides which goes to show you that there's a lot new in  I won't make it through all 108 slides but I will cover the highlights.

I'm actually doing 4 of the 9 weeks (and maybe 5, if I can swing it).  Here's the complete lineup in case you're interested in joining:

  • June 4 & 6 - Overview
  • June 11 & 13 - HFM
  • June 18 & 20 - Financial Close Suite
  • July 9 & 11 - Essbase and OBIEE
  • July 16 & 18 - Planning
  • July 23 & 25 - Smart View and Financial Reporting
  • July 30 & Aug 1 - Data & Metadata Tools (FDM, DRM, etc.)
  • Aug 6 & 8 - Free Supporting Tools (LCM, Calc Mgr, etc.)
  • Aug 13 & 15 - Documentation

If you want to sign up, visit  There's no charge and I don't do marketing during the sessions (seriously, I generally forget to explain what company I work for).  It's a lot of information, but we do spread it out over 9 weeks, so it's not information overload.

And bonus: you get to hear my monotone muppet voice for an hour each week. #WorstBonusEver
Categories: BI & Warehousing

Using Load Plan for managing your ETL task in BI Apps (1)

Dylan Wan - Tue, 2013-05-28 02:24

One of the major change introduced in BI Apps is the way how we manage the ETL task sequence and trim the unnecessary tasks.

This functionality was accomplished earlier using DAC.  The problem we frequently faced was that the DAC repository and the INFA repository are maintained as two separate repositories.  We have to sync up the name of tasks exactly in order to use DAC to manage the task execution of the Informatica workflow tasks.

Load Plan and Load Plan Generator was designed for addressing this requirement.

Here is a good article that describes the story.

Load Plan Generator – An Inside Look
Categories: BI & Warehousing

Exalytics - Now with 2.4 Tb of Flash

Look Smarter Than You Are - Mon, 2013-05-13 22:26
I'm not sure why there wasn't a major announcement about this, but as of April 9, customers buying an Exalytics machine to speed up their Oracle Business Intelligence can get 2.4 Tb of PCIe flash drives from Oracle certified and engineered to run on Exalytics.  The cost (as of April 9's price list) is $35,000 (search for "flash upgrade kit").

While I haven't seen one in action yet, the flash pack seems to be 6 Sun Flash Accelerator F40 PCIe Cards each of which has a capacity of 400 Gb.  These cards run amazingly fast with read times of more than 2 GB/second (write time is about half that speed at 1+ GB/second).  These cards normally sell for almost $6K each, so Oracle is providing the flash add-on pack for no more markup than you'd get if you bought them on your own (but you'd then have to get them into the Exalytics machine all on your own).
This Matters If You Own EssbaseWhy would you want this?  Essbase, primarily.  Essbase uses a ton of disk I/O and one of the ways Exalytics can speed up Essbase is by pulling your cubes into a RAMDisk (since you have 1 Tb of RAM to play with).  At some point, though, it has to get that data from physical drives to a RAMDisk (unless you're building all your cubes at start up in memory each time).  Having blazingly speedy flash drives with .25 millisecond read latency allows you to store your cubes on the flash drive and then pull into RAM much more quickly than reading from traditional drives.

We have tested Essbase running on flash drives and it helps everything (particularly minimizes the negative effects of fragmentation since seek time drops to basically nothing on flash).  For customers buying Exalytics primarily for Essbase, the Exalytics Flash Upgrade Kit should be strongly considered with every Exalytics purchase (and if you already own Exalytics, buy it to put on top).

OBIEE is much less affected by hard drives, so while it may help OBIEE, this really matters a lot more to Essbase customers.
Oracle EPM Fully Supported on ExalyticsSince we're on the subject of Exalytics, now that is out, all Oracle EPM/Hyperion components certified to run on Linux will run on Exalytics PS2.  These include:

  • Administration Services
  • Calculation Manager
  • EPM Workspace
  • Essbase Server
  • Essbase Studio Server
  • Financial Reporting
  • Interactive Reporting (32-bit only)
  • Oracle HTTP Server
  • Planning
  • Profitability and Cost Management
  • Production Reporting (32-bit only)
  • Provider Services
  • Reporting and Analysis Framework Services and Web Application 
  • Shared Services
  • Web Analysis
Categories: BI & Warehousing

BI Apps (BI Apps in ODI) is available in OTN

Dylan Wan - Thu, 2013-05-09 14:18
First Go to to DOWNLOADS -> MiddlewareYou will see Business Intelligence Applications under MiddlewareYou see both 10g and 11g. Click on Oracle Business Intelligence 11g downloads will see BI Apps here:Oracle Business Intelligence Applications (
Categories: BI & Warehousing

Hyperion 11.1.1.x Drops Off Full Support in July 2013

Look Smarter Than You Are - Mon, 2013-05-06 22:50
Someone recently told me that they just upgraded their Hyperion applications to  I asked them why they didn't go to 11.1.2.  They gave me the standard story about wanting to wait until the current version got stable (even though came out over 3 years ago in April of 2010).

What they didn't know (cause apparently it hasn't been communicated well) is that Hyperion 11.1.1.x support drops from Premier Support to Sustaining Support in July of 2013 (only two months from the time I'm writing this).  For anyone who doesn't know, Sustaining Support is equivalent to life support.  While Oracle's Lifetime Support Policy does say that you can stay on versions of Oracle's products indefinitely, they don't agree to fully support them.

At the Premier Support level (the one all products start on), you get all the support you'd expect.  When you call in, the support people help you find the bug, they patch it in the next release, you install it, and life goes on happily.  Also, as new versions of supporting products come out like new versions of Office, Windows, or your web browser, Premier Support will make sure the Oracle products work with these new versions.

Extended Support (if offered at all for your Oracle product) comes about 5 years after a product is released.  At this point, Oracle will still let you do all the Premier Support things, they'll just charge you a premium for doing so.  Extended Support will not be offered on Hyperion 11.1.1.x (there aren't enough customers to warrant it).

Sustaining Support (AKA "life support") allows you to call in to ask for support.  Oracle will help you with questions, look up your problems in their knowledgebase, and help you troubleshoot.  They won't patch anything, make versions available that are compatible with new releases of Windows, Office, etc., and in general do anything beyond the bare minimum required.  From Oracle's Lifetime Support Policy document from March 2013, here's what Sustaining Support doesn't do:
  • New updates, fixes, security alerts, data fixes, and critical patch updates
  • New tax, legal, and regulatory updates
  • New upgrade scripts
  • Certification with new third-party products/versions
  • Certification with new Oracle products
And Hyperion (Oracle EPM) 11.1.1.x falls to this level in July 2013. To point out the obvious, if you're not already planning an upgrade to 11.1.2.x, you should start now.  You really don't want to be on Sustaining Support for long.  Since just was released last week, I would probably hesitate going to that version until the first patch set update is released (probably this summer). If you're doing your upgrade before then, I would suggest going to (the current patch of

If you want to read the sunset dates (the dates they drop to Sustaining Support) for all the current releases, visit for the current Lifetime Support Policy.  Here's the one from March 2013 (scroll to page 22) for the Hyperion products:
Categories: BI & Warehousing

All the Cool New Features in Oracle EPM

Look Smarter Than You Are - Mon, 2013-04-29 23:16
Oracle EPM is out and there are some great features in it (Planning and Financial Reporting have my favorites which you'll see in a second). is not as impressive as or, though.  A lot of the products got new features in between releases like Smart View (which adds new features with every patch set), Strategic Finance, HFM (which got Tax Provisioning in February), and Financial Close Management instead of making those products wait until was officially released.

Below are the features I think are most interesting in  This is by no means an exhaustive list and I didn't include every product though I did hit all the ones with significant market share (and a few others including a shout-out to the long-forgotten "EPM Workspace").  All the new feature documents are on  If you see anything major I missed, let me know in the comments.

Oracle Essbase
  • Essbase didn't change much in and users are never going to see any of the changes.
  • There are several new BSO functions and calc script commands like @INTERSECT, @ISMBRUDA, @ISRANGENONEMPTY, @MEMBERAT, @RANGEFIRSTVAL, and @RANGELASTVAL.  My favorite is @CREATEBLOCK which, wait for it, creates a sparse block with all the dense combinations in it set to missing.  Yes, we finally have a specific command to create specific blocks after 20+ years of silly block creation workarounds.
  • There's a new calc script SET command called RUNTIMESUBVARS that let's you create substitution variables in the script that are passed to the script at run-time.  You can then pass values to these variables when you call the calc scripts from MaxL or the API.  There's a new optional argument (with runtimesubvars) to MaxL's "execute calculation" command that sends the run-time variables to the calc script as you call it.
  • There's a new Essbase.CFG setting called ESTIMATEDHASHSIZE that lets you specify (in millions) how many members should be loaded into memory from the outline.  It's meant to speed up massive dimension builds and outline edits.  There are two other new CFG settings as well: ENABLERTSVLOGGING (which logs the new run-time substitution variables) and UNICODEENABLE (which sets the server to unicode mode, basically).
  • Performance has been improved on ASO dimension builds (specifically with duplicate members), the JAPI, and most helpful for many people including Hyperion Planning users, @XREF has been improved in some cases as much as 40-times.
  • Data Mining is gone.  Many people didn't even know it was there, but it's been removed.
  • Speaking of gone, there is no Essbase Excel Add-In  Further, earlier versions of the Add-In that you may have (like are not supported against Essbase  It probably will work (the Add-In is wonderfully backwards and forwards compatible) but it's not supported.

Smart View
  • There were a lot of improvements to Smart View in which came out about a month ago, so there isn't much new in Smart View  Smart View is the new strategic Microsoft Office add-in for all the Business Analytics (BI and EPM) products, though, so that's why the newest release supported direct access to OBIEE  Hyperion Strategic Finance is also now fully supported in Smart View.
  • The only major improvement is actually in Hyperion Planning just exposed through Smart View.  There is a new "Planning Admin" extension that lets administrators update Planning metadata (and a few other things) from Smart View.  I'll say more about this under Planning.

Hyperion Planning
  • Essbase ASO databases can now be created as Planning Plan Types.  These databases will allow writeback provided it's at level-0.  This is stunning.  These ASO cubes can be displayed on Planning composite forms with Essbase BSO cubes just like current BSO cubes in multiple plan types can be combined on a single composite form.  For some reason, this release doesn't put security filters on the ASO cubes, so you have to access these cubes through Planning or through the Planning ADM driver in Hyperion Financial Reporting.  Still, ASO in Planning is a step in the right direction.  Oh, and you have to own full-use Essbase to create these ASO cubes; just a Planning license doesn't cut it.
  • You can create members on the fly (kinda) if they don't exist when business rules need them.  This may only work in modules and not custom plan types.  The documentation says only modules, but I admittedly haven't tried it on custom plan types yet.
  • Custom dimension hierarchies can now vary by plan type.
  • Task lists can now include "Copy Version" and "Job Console" as tasks.
  • There is a new Task List Dashboard (gives you an overview of tasks by user, due date, etc.) and a Task List Report Page (that exports to XLS and PDF).
  • Grid Scroll Preferences lets you control if all rows/columns in a form are retrieved at once or only when you scroll down.  This should improve performance for large forms (and not slow down the internet when we want to watch cat videos on YouTube).
  • Users can now control through user preferences if they want member names, aliases, or both.  This can be set to override the form settings.
  • Outline Load Utility has been enhanced to do fun things like export metadata to a relational database or export data to a text file.  There's a new user interface for loading dimensions and data from flat files (and exporting them too).  This was previously only doable through the command line.
  • There's a new "Plan Type Editor" that lets admins add and delete plan types to already existing applications. Previously, this required going back to the initial creation step or hacking the underlying tables.  The Plan Type Editor can be used to add ASO to an existing Planning application.
  • Admins can now do some administration of Planning from within Smart View like editing dimensions, creating cubes, and refreshing cubes.
  • Workforce and CapEx have been enhanced to get them up to speed with Project Financial Planning's improvements to these modules in  You won't get these improvements with a straight migration: you have to create a new "shell" application and manually migrate your old dimensions into the new application.
  • You can create, assign, and delete substitution variables directly from the Planning web interface.

Data Relationship Management
  • There's an entirely new module within DRM (no word yet on if it costs money, but my gut feeling is that it's included with DRM) called "Data Relationship Governance."  To oversimplify what is actually quite cool, it adds workflow to DRM.  It lets data stewards coordinate entry, validation, and approval of hierarchies but it does a lot more too.  Users can request hierarchy changes and they go into a worklist so nothing gets lost.  It has built-in alerts for when users have requested changes and it also sends e-mails when something has been sent to you or it's something you should be informed of.  In my humble opinion, this is the greatest improvement to DRM since it was created.
  • Dynamic scripting lets you use JavaScript instead of formulas to create derived properties and validations.  This is a welcome improvement over formulas since we now have access to a real programming language.
  • You can now connect directly to external relational database tables to import hierarchies.

Hyperion Financial Management (HFM)
  • There's a new module (that technically was released in February) called Hyperion Tax Provision.  It handles tax automation, data collection, tax calculations, reporting and it does it all within HFM.  Now when you create an application in HFM, you tell it if you want a Consolidation (traditional) application type or Tax Provision.
  • Data forms let you show/hide the POV members, access the dynamic POV member lists, and run "on-demand rules" to essentially calculate the data form (by running the on-demand rule on a subset of data).
  • Data grids also let you control which POV dimensions you're showing and gives you access to dynamic POV member lists.
  • Admins can turn off modules for all users if they aren't applicable (for instance, if you don't allow intercompanies in HFM).

Financial Data Quality Management (FDM)
  • FDM and ERPi (ERP Integrator) combine in into a single product: FDMEE (Financial Data Quality Management Enterprise Edition).  It's more than just ERPi renamed which is what some are claiming.  Below are some of the improvements.
  • The UI (user interface) is now consistent with the other Hyperion products like Planning and HFM.
  • FDM is fully supported in Shared Services and Lifecycle Management.
  • Data loads are sped up.  Scaling and load balancing are fully supported.
  • ERPi users will now see full FDM functionality that they couldn't access before.
  • SAP BW is now supported directly as a data source.
  • FDM and ERPi owners have access (at no charge) to all the new FDMEE capabilities.

Financial Reporting
  • I know what you're thinking and yes, Financial Reporting actually got improved in (it is a strategic product for Oracle). So for the coolest thing you'll see since ASO in Hyperion Planning...
  • Financial Reporting is now mobile.  That's right: it runs on Apple iPhones, iPads, Android phones and Android tablets.  Users can browse the repository, launch reports (HTML or PDF), run books (HTML or PDF), change POVs, change page members, expand rows and columns, and even launch related content.  Pick your jaw off the floor.
  • Books have been enhanced to allow cover pages before the table of contents, embedding (and launching) Word DOCs from an HTML book, and changing the starting page number of books.
  • The designer has new authoring features including a row property to show dots after the member name (to fill the column) in PDF output, custom text colors, and auto-sizing text boxes in PDF output.
  • Annotations have a new auditing capability that puts annotation info (like creation date or modified date) in a log file on the server.

EPM Workspace
  • OBIEE is back in Workspace (it used to be there back in OBIEE 10).  You can both create and launch OBIEE from Workspace.
  • OBIEE uses single-sign on if you're logged into Workspace (OBIEE now can also share a security model with Essbase).

Web Analysis, Interactive Reporting, SQR Production Reporting...
  • Seriously?  People, move to OBIEE.  These are dead products.

General Comments
  • You can upgrade to directly only from and 11.1.2.x.  Earlier versions require going to either or first.
  • still doesn't officially support Chrome or Safari.  The documentation says that Oracle recommends IE (Internet Explorer) 9 or Firefox 10 because older versions are slower.
  • The EPM documentation is now fully supported on Apple mobile devices (in ePub format).  It already worked on Amazon Kindles (in Mobi format).
That's all folks.  You can thank me at Kscope13 for making it so you don't have to scour all the readme files yourself.

Oh, that reminds me. Since you read this entire essay of bullets, I owe you a reward.  When you register for Kscope13 (the best Oracle BI, EPM, and Hyperion conference in the world bar none), mention promo code IRC.  It'll save you $100 off whatever the prevailing rate is.  You can tell your friends or make them read this blog to find that out themselves.
Categories: BI & Warehousing

EPM Available for Download

Tim Tow - Mon, 2013-04-29 11:22
Oracle Enterprise Performance Management became available over the weekend, so let the rush of upgrading begin!

Here at Applied OLAP, we have already started our work with Essbase  We have added the new version to our build list and have started testing Dodeca with Essbase  We will make the version of our server available to our customers within a few days.

One interesting fix that we have seen so far is that EPM uses an upgraded version of Java, Java 1.6 update 35.   The previous EPM version,, shipped with Java 1.6 update 29 which contained a bug related to the SQL Server JDBC Driver.  The issue, known as the BEAST vulnerability, caused SQL Server JDBC connections to hang unless you made a fix to the Windows registry.  I, for one, am glad that issue is resolved.

Categories: BI & Warehousing


Chet Justice - Thu, 2013-04-18 21:00
I always find myself putting an asterisk (if only mentally) next to certain statements. I shall now put all those statements here and link back.
  1. I don't know everything
  2. I'm not the best developer in the world, but I constantly work at getting better...
  3. If I make a statement about something, that's been my experience. Your results may vary.
  4. I am not a salesman.
  5. I do not work for <insert company name which I just pitched here>
That's it...for now.
Categories: BI & Warehousing

Ubuntu 12.10 + nvidia

Chet Justice - Sat, 2013-04-06 17:40
I updated my host OS a few months back after getting repeated notifications (yes, I know, I can shut them off) that 10.04 (I think) was moving out of support.

Since then, I've had an issue with my Nvidia drivers. Basically, I get video on a single monitor (dual set up) and that single monitor resolution is like 200 x 400 (no, it's not really that, but it is gigantic). Thank goodness for The Google Machine™. That originally led me here on StackOverflow. (Another reason to do things from the command line, you can remember things with   history | grep nvidia).

I'm on the 4th time of going through this exercise. Each time the kernel is updated, nvidia breaks. Fortunately for me, that guy on StackOverflow gave me all the information I needed. This time after reboot and the gigantic screen, I removed the nvidia drivers and then reinstalled them. No go. uname -r gave me the following: 3.5.0-26-generic and dpkg -l|grep headers showed an older version of the kernel headers. So I updated those, reinstalled nvidia-current and rebooted. Yay.

Many "small" issues like this recently have me pondering a move back to, gasp, Windows or perhaps even a Mac. The Mac ecosystem scares me because it is expensive...but it's difficult to square when so many of my friends (technical and otherwise) swear by Macs. Something for another day I guess...
Categories: BI & Warehousing

Fun with CHAR

Chet Justice - Thu, 2013-04-04 16:28
I'm busy deriving file layouts from PL/SQL. Probably close to 100 file definitions...each of them slightly different, each of them defined in the code. Fun!

There are a mixture of types too, fixed width, csv, etc. Thankfully, I've read enough of the code now that it's relatively easy to figure out. The fixed width variety is what this is about though.

In much of the code, there's a type that's defined, something like this:
type my_record is record
column_01 CHAR(10),
column_02 CHAR(10),
column_03 CHAR(10)
That's then used to receive assignments from incoming variables. I'll hardcode my variables for this exercise.
type my_record is record
column_01 CHAR(10),
column_02 CHAR(10),
column_03 CHAR(10)
l_rec my_record;
l_rec.column_01 := '1';
l_rec.column_02 := '3';
l_rec.column_03 := '6';
Littered throughout those assignments though, are things like LPAD and RPAD. You're going to say, "well, yeah, if it's a number, you may want it right aligned or something." Fair enough. But I'm not talking about those, I'm talking about this:
  l_rec.column_01 := rpad( ' ', 10 );
l_rec.column_02 := '3';
l_rec.column_03 := RPAD( ' ', 10 );
Ostensibly, these columns once held data. Instead of forcing the client (application, business, whatever) to change their processing bit, the file was left the same. Makes sense.

Then I started to think about's a CHAR. CHAR is already fixed width. To wit:
drop table t purge;

create table t
x CHAR(10)

insert into t ( x ) values ( ' ' );
insert into t ( x ) values ( null );

length( x ),
from t;

---------- ---------- ----------
1 10
I inserted a single space in the first record. It has a length of 10 despite only inserting a single character there.

So what's the purpose of those RPAD( ' ', 10 ) calls? I'm not sure.

The only reason I even began to think about it was that I ran across one type set up with VARCHAR data types. There it makes sense, using RPAD I mean. With the CHAR field, it's a waste of typing IMO. Perhaps it was just for readability...who knows?
Categories: BI & Warehousing

Oracle SQL Developer Data Modeler 3.3 now available

Keith Laker - Thu, 2013-03-28 04:02

Attention all data modellers - we are pleased to announce the release of SQL Developer Data Modeler 3.3. This release includes a new search, reports can be generated from search results, extended Excel import and export capabilities and more control and flexibility in generating your DDL. Here are a few links to get you started:

For data warehouse data modellers there are some very important new features around logical models, multi-dimensional models and physical models. For example:

  • Support for surrogate keys during engineering to relational model which can be set on each entity. 
  • More flexible transformation to relational model with mixed engineering strategies based on “engineer” flag and subtypes setting for each entity in the hierarchy
  • Export to “Oracle AW” now supports Oracle 11g OLAP
  • Support for role playing dimensions in export to Oracle AW.
  • Level descriptive attributes can be created without mapping to attribute in logical model.
  • Multidimensional model can be bound directly to relational model. 
  • Support EDITIONING option on views, and support for invisible indexes in Oracle 11g physical model.

Lots of great features that will make life a lot easier for data warehouse teams.

Categories: BI & Warehousing

On Work/Life Balance

Chet Justice - Tue, 2013-03-26 10:14
Nolan Bushnell, founder of Atari, had this to say via his new book, Find the Next Steve Jobs.

(It’s been said that many people in high tech cannot balance their personal and work lives. Here’s another way to look at it: Their jobs are so interesting that it’s difficult to figure out what is work and what is play. Creative projects produce this kind of excitement.)

I've struggled with the work/balance thing. I'm better now than I was a year ago, but it takes a lot of work. That quote definitely illustrates one aspect of how it could get so out of balance...I thoroughly enjoy what I do.
Categories: BI & Warehousing

Analysis Tools...

Chet Justice - Mon, 2013-03-25 21:59
I've taken on an effort to port a custom data integration (PL/SQL, Java, etc) application.

In that regard, I'm doing a fair amount of analysis right now. So I need help finding two tools:
1. A tool that will allow me to map (visually or otherwise) a single data point from source to target(s). I typically use Excel. It's easy to use and available everywhere. Where it falls apart, slightly, is that a single data point may have one or more middle steps (i.e. not target) and one or more targets. I think I want something like this:

Keep in mind though, I have potentially hundreds of columns in a system with thousands upon thousands of...

A couple of people have suggested using an ETL tool like Informatica, Pentaho or ODI. Yes. But I don't see it yet. Besides, I don't want to map to actually do something...most of the conversion has already been done and I'm picking it up at a particular step (near the beginning). What's missing is that mapping document that I want to create for everything...but that's another story.

2. I want to to look at a view and know where those stupid unaliased columns are sourced from. A very, very basic example:
big_table hs,
address_table add,
other_random_table ran
WHERE hs.address_id = add.address_id
AND hs.random_id = ran.random_id
VAR_VALUE_01 and VAR_VALUE_02, why don't you have aliases? Why did your developer neglect you so? Why can't every single developer just remember that someone, someday, will have to look at their code? Please? Pretty please? Or did you know it would be me and thus you did it on purpose? If so, I'm not talking to you again.

Anyway, it doesn't take me very long to figure where those columns are sourced from. What if there are 10's of those in a view with 100's of columns? Yes, not enjoyable. What if there are many views just like this that you have to analyze? Yes!

Data Dictionary?!

Not yet. DBA_TAB_COLUMNS? Nope. Come on! It's got to be there somewhere...when you compile a view Oracle checks to make sure everything is a-ok right? Doesn't it store that information somewhere? It must!. I took to Twitter, naturally, and Steve Karam, aka @OracleAlchemist found this possible gem:

@oraclenerd @thatjeffsmith @eaviles94 Check this out Chet.…

— Steve Karam (@OracleAlchemist) March 26, 2013
I'm also requesting a feature in SQL Developer...or, trying to anyway. Back channels of course.

I've done this kind of analysis in the past, but it is usually a one off, so there never seemed to be a need to make it repeatable. Now, there is a need. A giant need. If you've got any ideas for me, let me know...
Categories: BI & Warehousing

The Internet

Chet Justice - Wed, 2013-03-20 20:56
Have you seen this State Farm ad?

I think it's hilarious.

Riding to batting practice with LC, he starts up with me...

LC: (in response to some statement I made) "Where'd you hear that?"
Me: "The Internet"
LC: "And you believed it?"
Me: "Yeah, they can't put anything on the internet that isn't true."
LC: "Where'd you hear that?"
Together: "The Internet"

We also do the "And then...?" skit from Dude, Where's My Car?. He used to be able to rattle off the saying from Tommy Boy, "You can get a good look at a t-bone by sticking your head up a bull's..." - I'm pretty sure this is better than that.
Categories: BI & Warehousing


Chet Justice - Tue, 2013-03-19 21:08
I've been scratching my eyes out lately trying to reverse engineer some lots of PL/SQL.

One thing I've seen a lot of is calls to dbms_output.put_line. Fortunately, I've seen some dbms_application_info.set_module and other system calls too. But back to that first one.

1. When I used dbms_output, I would typically only use it in development. Once done, I would remove all calls to it, test and promote to QA. It would never survive the trip to production.
2. Typically, when I used it in development, I would tire of typing out d b m s _ o u t p u t . p u t _ l i n e so I would either a, create a standalone procedure or create a private procedure inside the package, something like this (standalone version).
dbms_output.put_line( p_text );
END p;
Easy. Then, in the code, I would simply use the procedure p all over the this:
  l_start_time date;
l_end_time date;
l_start_time := sysdate;
p( 'l_start_time: ' || l_start_time );

--do some stuff here
--maybe add some more calls to p

l_end_time := sysdate;
p( 'l_end_time: ' || l_start_time );

Since the procedure is 84 characters long, I only have to use the p function 4 times to get the benefit. Yay for me...I think. Wait, I like typing.
Categories: BI & Warehousing


Chet Justice - Tue, 2013-03-12 22:35
Back in September, I was asked, and agreed, to become to Content Chair for "The Traditional" track at Kscope 13. Like I mentioned there, I had been involved for the past couple of years and it seemed like a natural fit. Plus, I get to play with some really fun people. If you are ready to take advantage of Early Bird Registration, go here. (save $300)

Over the past few weeks we've finalized (mostly) the Sunday Symposium schedule. We're currently working on finalizing Hands-on-Labs (HOL).

Beginning last year, we've had the Oracle product teams running the Sunday Symposia. This gives them an opportunity to showcase their wares and (hopefully) provide a bit of a road map for the future of said wares. This year, we have three symposia: APEX, ADF and Fusion Development and The Database and Developer's Toolbox.

ADF and Fusion Development

- Oracle Development Tools – Where are We and What’s Next - Bill Patakay, Oracle
- How to Get Started with Oracle ADF – What Resources are Out There? - Shay Shmeltzer and Lynn Munsinger, Oracle
- The Cloud and What it Means to Oracle ADF and Java Developers - Dana Singleterry, Oracle
- Going Mobile – What to Consider Before Starting a Mobile Project - Joe Huang, Oracle
- Understanding Fusion Middleware and ADF Integration - Frederic Desbiens, Lynn Munsinger, and Shay Shmeltzer, Oracle
- Open Q&A with the ADF Product Management

I love that they are opening up the floor to questions from their users. I wish more product teams would do that.

Application Express

- Oracle Database Tools - Mike Hichwa, Oracle
- Technology for the Database Cloud - Rick Greenwald, Oracle
- Developing Great User Interfaces with Application Express - Shakeeb Rahman, Oracle
- How Do We Build the APEX Builder? - Vlad Uvarov, Oracle
- How to Fully Utilize RESTful Web Services with Application Express - John Snyders, Oracle
- Update from APEX Development - Joel Kallman, Oracle

(If you see Joel Kallman out and about, make sure you you mispronounce APEX). This is a fantastic group of people (minus Joel of course). Not mentioned above is the affable David Peake who helps put all this together. The community surrounding APEX is second-to-none.

Finally, The Database and Developer's Toolkit. I'm partial to this one because I've been involved in the database track for the past couple of years. Like last year, this one is being put together by Kris Rice of Oracle. There are no session or abstract details for this one as it will be based mainly on the upcoming 12c release of the database. However, we do have the list of speakers lined up. If you could only come for one day of this conference, Sunday would be the day and this symposium would be the one you would attend.

This symposium will start off with Mike Hichwa (above) and then transition to the aforementioned (too many big words tonight) Mr. Rice. He'll be accompanied by Jeff Smith of SQL Developer fame, Maria Colgan from the Optimzer team and Tom Kyte.

How'd we do? I think pretty darn good.

Don't forget to sign up. Early Bird Registration ends on March 25, 2013. Save $300.
Categories: BI & Warehousing

Starbucks 1TB cube in production

Keith Laker - Tue, 2013-03-12 14:41
Check out the customer snapshot Oracle has published which describes the success Starbucks Coffee has achieved by moving their data warehouse to the Exadata platform, leveraging the Oracle Database OLAP Option and Oracle BIEE at the front end.    10,000 users in HQ and across thousands of store locations now have timely accurate and calculation rich information at their fingertips.

Starbucks Coffee Company Delivers Daily, Actionable Information to Store Managers, Improves Business Insight with High Performance Data Warehouse
( )

By delivering extreme performance combined with the architectural simplicity and sophisticated multidimensional calculation power of the in-database analytics of the Database, Starbucks use of OLAP has enabled some outstanding results. Together with the power of other Oracle Database and Exadata benefits such as Partitioning, Hybrid Columnar Compression, Storage Indexes and Flash Memory, Starbucks is able to handle the constant growth in data volumes and end-user demands with ease.

A great example of the power of the "Disk To Dashboard" capability of Oracle Business Analytics.
Categories: BI & Warehousing

Little Changed

David Aldridge - Tue, 2013-03-05 04:05
Incredible and depressing to see people still getting Oracle internals as wrong as this.
Categories: BI & Warehousing


Subscribe to Oracle FAQ aggregator - BI &amp; Warehousing