Site icon Martin's Blog

To stage or not to stage – that is the question

stage door
The question whether data should be staged when performing any ETL or import process is certainly not new, and there are probably as many opinions as there are people who have asked the question. I always enjoy seeing the different opinions, and even the bickering over the smallest of details when it comes to this subject.

As it is the case with beauty, the value of differing opinions are in the eyes of the beholder…you are free to accept or dismiss anything you want/need from that opinion. When looking at it objectively though, you will gain the necessary perspective on the subject. But i digress…

The safest answer to this question is probably what you would expect from any technology-related question: It depends. However, this post would not be complete without sharing my own unique perspective on the subject. To illustrate my point of view, let’s do a little word play…note the emphasis in the questions below.

Question: Do I have to stage the data when developing an ETL or import process?

No, it is very possible to develop an entire ETL or data import process without staging the data at all. SSIS (or any other ETL tool for that matter) is very capable of providing the necessary tasks and functionality for most of your requirements. More complex processes may require workarounds because of a lack of specific functionality, and you may end up deciding that it is better to stage the data anyways…but it doesn’t change the fact that staging isn’t an absolute necessity.

Question: Should I stage data when developing an ETL or import process?

In my opinion, YES!!! Staging data is always a good idea, and my reasons for saying that are the following:

There are no hard and fast rules when it comes to development, but I do believe that preparation is necessary to be in the best possible position in all kinds of situations.

Staging the data gives me the buffer I need to reference source data easily and/or re-load data without the need to go back to the source. It also provides me with the flexibility to use other features within SQL Server like indexing, window functions and set-based operations to maximise efficiency…

Exit mobile version