SSIS architecture consists of five main components
1. The SSIS service (there for legacy SSIS packages).
What it does: This Windows service helps manage SSIS packages outside of SQL Server Data Tools.
Key responsibilities:
- Stores, schedules, and executes packages
- Manages package versions
- Supports monitoring and administration
Think of it as: The operations team that keeps packages organized and running smoothly.
2. The SSIS Runtime engine and the Runtime executable.
What it does: The Runtime Engine is the “brain” of an SSIS package. It manages how tasks run, in what order, and under what conditions.
Key responsibilities:
- Executes control flow (tasks, containers, precedence constraints)
- Manages logging, event handling, and variables
- Handles package configuration and error handling
Think of it as: The project manager that decides what happens next and how the workflow behaves.
3. The SSIS Object Model.
What it does: This is the programmable API that developers use to automate or extend SSIS.
Key responsibilities:
- Build packages programmatically
- Modify tasks, connections, and workflows
- Integrate SSIS with custom applications
Think of it as: A toolkit that lets developers script or customize SSIS behavior.
4. The SSIS Data Flow engine and the Data Flow components.
What it does: This is the high‑performance engine responsible for moving and transforming data. It powers the Data Flow Task, which is the heart of ETL.
Key responsibilities:
- Extracting data from sources
- Transforming data (cleaning, merging, splitting, aggregating, etc.)
- Loading data into destinations
Think of it as: A fast conveyor belt that pulls data in, reshapes it, and delivers it to the final destination.
5. Data Flow Tasks
Although technically part of the Data Flow Engine, many sources list it as a core architectural component because it is the centerpiece of ETL.
What it includes:
- Sources (SQL, Excel, Oracle, flat files, etc.)
- Transformations (Lookup, Merge, Derived Column, etc.)
- Destinations (SQL Server, files, etc.)
Think of it as: The ETL pipeline inside your package.