Summoner, you need to go back to your client and understand their requirements better. What may be going on with your client is something similar to one of my clients, who provides parts and repairs for massive diesel engines. The repair team will send in the work that was done for the company to bill, but the repair teams will occasionally leave things out or put something wrong. Someone in the office always reviews the invoices for completeness and accuracy before it is sent to the customer.
I will follow John on to the soapbox and say that if you want a reporting solution for an OLTP system, you should always build a tactical solution on the Production tables first, then a ETL-based strategic solution second. There are a number of reasons for this:
There is always a need for up-to-the-minute reporting
In John’s example of the video rental store, if a customer calls asking if you have “Batman Returns” in stock, you have to know if you have in stock RIGHT NOW. Whether it was in stock last night or not is irrelevant.
OLTP universes are much more flexible
Let’s say that one day, someone calls the company that owns the video rental store and says that a 16 year old clerk is selling/renting adult videos to his high school buddies. The company wants to review the sells/rentals of adult videos at the store by age of sales clerk. If the age of the date of birth of the sales clerk is somewhere in the OLTP system, then it is a matter of adding the join(s), creating a new object, running a test report and then migrating the change to Production. If the date of birth isn’t in a data warehouse, then the data modeler has to add it to the data model, then the DBA has to add it to the table, then the ETL developer has to modify the ETL script, the modified ETL script has to go through testing, a special ETL script has to been written to load date of birth information for all previously loaded sales clerks, the special script has to be tested, the universe has to be modified, a report has to be written, etc. A much longer development cycle.
The tactical reporting experience can provide requirements for the data warehouse
The reality is that it is really hard to get good requirements out of users. Most of the time, what they give you is listing of their current reports. If they users have a OLTP universe for tactical reporting for a while before discussing the requirements for a data warehouse, they will have a good idea of the reporting that they currently do and want to be able to do better. If you create the data warehouse without having a OLTP universe first, then the requirements are going to be much more random, based upon what they are doing in Excel, the canned reports that come with the OLTP system or what they did in the data warehouse for the prior OLTP system.
Data warehouses are much more expensive than a OLTP solution, so they should be saved for where they provide value over an OTLP universe
With a universe on top of OLTP tables, the cost of the reporting project is the cost of building the universe. With a data warehouse, the cost is the cost of building the data model, the data warehouse instance, the ETL scripts and the universe. Troubleshooting data warehouse reports are much more difficult than OLTP reports because the problem could be with the report, the universe, the data model, the way the data was loaded, or that particular day’s load (this is from someone who got calls that “his report is wrong” when it always was an ETL issue). So save the data warehouse for things like sales reporting where it provides an advantage and put everything else into a OLTP universe.
Dennis W. Disney
(BOB member since 2003-09-17)