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.

About the author

Bradley Schacht

Bradley Schacht is a Principal Program Manager on the Microsoft Fabric product team based in Jacksonville, FL. Bradley is a former consultant, trainer, and has authored 5 SQL Server and Power BI books, most recently the Microsoft Power BI Quick Start Guide. As a member of the Microsoft Fabric product team, Bradley works directly with customers to solve some of their most complex data problems and helps shape the future of Microsoft Fabric. He frequently presents at community events around the country, is a contributor to sites such as SQLServerCentral.com, and is a member of the Jacksonville SQL Server User Group (JSSUG).

2 comments

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

  • […] 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 […]

  • 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?

Bradley Schacht

Bradley Schacht is a Principal Program Manager on the Microsoft Fabric product team based in Jacksonville, FL. Bradley is a former consultant, trainer, and has authored 5 SQL Server and Power BI books, most recently the Microsoft Power BI Quick Start Guide. As a member of the Microsoft Fabric product team, Bradley works directly with customers to solve some of their most complex data problems and helps shape the future of Microsoft Fabric. He frequently presents at community events around the country, is a contributor to sites such as SQLServerCentral.com, and is a member of the Jacksonville SQL Server User Group (JSSUG).

Follow Me