While developing a package in SSIS for data integration or migration purposes we come to important concept of Integration Services, the Control Flow and the Data Flow. It is quite confusing for a new developer to understand the difference between the two.
Let us try to understand the difference by a real world example, let us consider an insurance policy agent of any insurance company is planning to collect the premium amounts from its clients. He plans for the whole day e.g. he will first go to client A then client B, after that he will took the lunch, report to regional office and then go client C. So here planning sequence is similar to Control Flow, and collection of amount from each client where the actual work took place may be considered as the Data Flow.
Here the sequence 1 may be taken as Control flow i.e. how he will plan to for the whole day and the sequence 2 is the similar to Data flow. These data flow has similar type of works. This picture explains the control and data flow in SSIS
Now here are few points which will the figure out the differences between the above.
- Data Flow is combinations of data flow tasks. Data flow task is combinations of tasks used for data transferring from source to destination having some modification tasks in between.
- It consists of Source, transformation and destination task items.
- There is no order for running the different data flow tasks. They can run simultaneously.
- Data is being transferred from one task to another. It defines its movement and transformation.
- We can’t add any constraint between the links like Control flow, we only can add the data viewer to watch out the intermediate Data.
- Control flow is basically a workflow of tasks to be executed; it means there is sequence of running different tasks (it also includes the data flow tasks).
- There is no proper structure of elementary control flow task as we have for data flow task (Source->transformation->Destination).
- The data is not transferred between the tasks, if we have to use any data in many tasks; we have to define data in the variables.
- We can add the constraint in the link between the control flow tasks.