From SSIS

Convert control flow, data flow, and SSISDB packages to Fabric Data Pipelines and Dataflows Gen2.

What maps to what

SSISFabricNotes
PackageData pipelineOne package ≈ one pipeline
Control flowPipeline activities + dependenciesPrecedence constraints → activity edges (success/failure/completion)
Data flow taskDataflow Gen2, or Copy + notebookTransform-heavy → Dataflow; bulk move → Copy
Sequence containerNested pipeline (invoke pipeline activity)
For Each LoopForEach activity
Execute SQL taskScript / Stored procedure activity
Script task (C#/VB)Notebook activity (Python)Rewrite the logic
Package/project parametersPipeline parameters + variable library
Project connection managersFabric connectionsCentral, reusable, permissioned
SSISDB catalog + envDeployment pipeline + variable librariesSee Deployment pipelines
SSIS logging / event handlersPipeline monitoring + On failure activities

Procedure

Categorize packages

Straight copy (extract A → load B): becomes a Copy activity, sometimes metadata-driven with one ForEach over a control table. Transform-heavy (lookups, derived columns, SCD, merges): Dataflow Gen2 or a notebook. Orchestration only (calls other packages): a parent pipeline.

Rebuild the easy copies first

Metadata-driven pattern: a control table lists source objects; a ForEach reads it and runs a parameterized Copy. Ten packages collapse into one pipeline.

Convert data flows

Map SSIS components:

SSIS componentFabric
OLE DB Source / Flat File SourceDataflow source, or Copy source
LookupMerge query (Dataflow) or join (notebook)
Derived ColumnCustom column / withColumn
Conditional SplitFilter branches
Slowly Changing DimensionMERGE on the business key (patterns)
AggregateGroup by
OLE DB / ADO NET DestinationDataflow data destination, or saveAsTable
Data ConversionChange type step

Replace Script Tasks

Port the C#/VB to Python in a Notebook activity. Common cases: calling a REST API, custom file parsing, sending notifications — all straightforward in Python.

Recreate environments

SSISDB environment variables → variable library value sets per stage. Connection managers → Fabric connections, rebound per stage by deployment rules or the variable library.

Wire failure handling

SSIS event handlers (OnError) → activities on the pipeline's failure path: log to a table, send a Teams/email alert, optionally continue or stop.

Validate and cut over

Run the old SSIS job and the new pipeline against the same window. Compare target row counts and checksums. Keep the SQL Agent job disabled-but-present for one cycle as the rollback.

The Azure-SSIS Integration Runtime in ADF can lift-and-shift existing packages unchanged as an interim step. It is a bridge, not a destination — you still pay to run the SSIS runtime and gain none of Fabric's CU smoothing. Use it only to buy time on a hard deadline.

Gotchas

  • Row-by-row Script Component transforms don't translate to set-based Dataflow/Spark cleanly — redesign them as joins/merges.
  • Package configurations via XML/registry — there is no equivalent; all config is parameters + variable libraries.
  • 32-bit-only drivers / legacy providers — no path forward; the source connection must be reachable with a modern driver.

Stay ahead of Fabric changes

Fabric runtime changes, API updates, and deprecations. No spam, unsubscribe anytime.

On this page