Sunday, January 13, 2013

Don't treat your Data Warehouse as a warehouse!

   It is very common in a large organization an enterprise Data Warehouse to be considered as a "warehouse". In other words, just like in a typical warehouse we store anything that is useless but we cant just discard it - since we need to store it someplace-, or anything that we don't know where else to store it, or anything we just want to get rid of. In the same manner, many people, whenever they have some tables that they need in order to generate some reports, and these tables for X reasons cannot be stored in some transaction system, they choose the enterprise data warehouse as the best place for storing these data. Of course, this means that you treat your data warehouse as if it is the "recycle bin" of your IT systems!


In many cases, this attitude has its roots in the ill notion that a Data Warehouse is the organization's "system for generating reports" and since we have some reporting requirement, then we go to the data warehouse team to fulfill it. Well, allow me to state it as clearly as it is possible: A Data Warehouse is not for generating reports but for solving business problems. Reports are just a means and is not an end to itself. Reports just convey the insightful information that must be extracted from the data warehouse in order to support business critical decisions and the solving of difficult business problems.

A well-designed enterprise data warehouse must be supported by a well-design enterprise data model (in 3NF or dimensional format it doesn't matter) covering many different  subject areas of the business. Any addition or change in the data warehouse must fully conform to the constraints dictated by this data model. This of course is something typical -and more or less common sense - for any well- designed system, either this is a billing system, a CRM or anything else. The same rules hold for data warehouses also, if you want your data warehouse to live for a long time.

If you treat your data warehouse as a "warehouse", by dumping in there any table a user wants in order to generate a report, then soon enough it will end-up in a chaotic unmanageable state where the only way out will be to destroy it and rebuild it from scratch!

So, think twice whenever a user presses you for storing his/her table in your data warehouse.

Cheers,
OL

No comments:

Post a Comment