Control Flow vs Data Flow

After my first day of SSIS training my boss walked into the office and said to me, “how was the first day of class”.  To which I responded, “great!”  Then asked me, “so what is the difference between the control flow and data flow?”  This posed a simple, but foundational concept, of SSIS.  There are a few key things to remember when talking about the differences between control flow and data flow, and not just the completely obvious statement: data flow deals with data.  Hopefully if you are beginning in SSIS there will be something in the information below that will help you understand the differences just a little bit better.

Control Flow:

  • Process is the key:  precedence constraints control the project flow based on task completion, success or failure
  • Task 1 needs to complete before task 2 begins
  • Smallest unit of the control flow is a task
  • Control flow does not move data from task to task
  • Tasks are run in series if connected with precedence or in parallel
  • Package control flow is made up of containers and tasks connected with precedence constraints to control package flow

Data Flow:

  • Streaming
  • Unlink control flow, multiple components can process data at the same time
  • Smallest unit of the data flow is a component
  • Data flows move data, but are also tasks in the control flow, as such, their success or failure effects how your control flow operates
  • Data is moved and manipulated through transformations
  • Data is passed between each component in the data flow
  • Data flow is made up of source(s), transformations, and destinations.
Hopefully this will help you understand the differences between the control and data flows.

Bradley Schacht

Bradley Schacht is a Cloud Solution Architect on the state and local government team with Microsoft based in Jacksonville, FL. He has co-authored 3 SQL Server books including "SQL Server 2014 Professional Administration". As a former consultant and trainer, he uses his experience on many parts of the Microsoft BI and data platform to help customers deliver the best possible solutions. Bradley frequently presents at community events around the country. He is a contributor to sites such as and an active member of the Jacksonville SQL Server User Group (JSSUG).

You may also like...

2 Responses

  1. says:

    As far as I know, Control flow are the main task or sub routines of any project and inside the control task you have ETL process this is called Data Flow. And Packages are basically the DTS, XML files that you can execute + packages are compromise of Data flow + Control flow.
    Is this right, please let me know?

  1. February 22, 2012

    […] algorithms (eg. in Scripting), in fact this represents a slightly different concept. According to Bradley Schacht, Control Flow: Process is the key: precedence constraints control the project flow based on task […]

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.