Wednesday, December 9, 2009

Reporting : Some common myths and misconceptions

Reporting is same as charting
Most people tend to think that reporting is as simple as creating a chart. Reporting involves storing, retrieving, aggregating data in a manner to assist in creating cool charts quickly. Charting is just a small part of reporting, once you have the required data in a simple table then you can create a nice looking chart using all the nice colors etc. Note the key requirement for charting - 'once you have the required data'.

Anyone should be able to create reports
Yeah right. Any Tom Dick and Harry just cannot create reports, any TD&H should be able to create charts but not reports. Only a programmer knows how to deal with tonnes of data, how to store it efficiently, how to retrieve it efficiently, the relationships between entities etc. Any report worth having will be complex enough that only a programmer will be able to create it.

This report can be created in a day
Yeah right again... Creating reports is a time consuming job. If too much data is involved you want to store precomputed values in a data warehouse, if latest information is crucial then report should use operational data store, a user needs to be able to drill down and drill up in a report and most importantly the colors in the chart need to look perfect. All this can be 'easily' accomplished in a day!

Every report can run in 1 sec
This one is hilarious, you have millions of records in your DB and you expect the report to run in 1 sec. Reports based on data warehouse (pre-computed results) can be made to run very very fast, but sometimes the data is missing in the data warehouse and you need to create some custom reports from Operational data store, now these reports are going to be slow. Even data warehouse reports can take some time to run, depending upon how much data is there and what all needs to be aggregated. Sometime reports can take hours to run, schedule these overnight (if needed) and stop cribbing.

To be honest most people take reports for granted, I mean they just expect all sorts of good reports to be there, and they don't really appreciate the effort gone behind creating all those cool reports. The truth is : any report worth having is quite complex!


  1. "the data missing in the data warehouse and you need to create some custom reports from ODS" ==> I would say, if one really cares about the report, the Datawarehouse should be modified and the report should be created out of the Datawarehouse. Reporting out of ODS should never be an option unless, the report is say going to be executed only once(just for one time analysis), or the report is so simple that, the data in ODS directly maps to the report.

    We should note the fact that report designing is a one time process(forget about minor changes), but the report is going to be executed many more times. So the time saved in report execution, is many more times than the time lost in report report designing.

  2. Having said that, I have to agree to the fact that "any report worth having is quite complex".

    But the point is, where the complexity lies? The complexity of creating a report, can be very well encapsulated in the datawarehouse, making it easier for the report designer(Def: one who creates reports out of a single table, which contains all measures and dimensions).

  3. 'Reporting out of ODS should never be an option unless' -> Agree, this is an ideal scenario. But sometimes you just need to use the ODS if you are not the DW designer and hence have no control over it.

    I would like to change this statement to 'making it easier for the report designer' -> 'making it easier for the CHART designer'. Because at this point you are just designing a chart.