Skip to content
METRIC OAK

New: the 3-week Data Platform Assessment: fixed fee, priced roadmap. See what's included →

Migration

SSIS to Snowflake migration: replacing SSIS packages with ELT in Snowflake

How to move SQL Server Integration Services packages to Snowflake: land raw data, rebuild data flows as SQL and dbt, replace OLE DB Command with MERGE, Script Tasks with Snowpark, and SQL Agent with Snowflake Tasks.

Hemant Walchale

Hemant Walchale
· 2 min read

Many SQL Server shops move their warehouse to Snowflake and then face the SSIS packages that fed it. Keeping SSIS means keeping a Windows server, an SSIS runtime and a row-based transformation engine in front of a platform that transforms data far faster in SQL. Rebuilding as ELT inside Snowflake is usually simpler than it looks.

This is the approach we recommend.

1. Inventory

Export the .dtsx packages from SSISDB and count component types:

grep -ohE 'componentClassID="[^"]+"' *.dtsx | sort | uniq -c | sort -rn

Collect SQL Server Agent schedules, project and package parameters, SSISDB environments and execution history. Retire packages that no longer run.

2. Land raw data first

Replace source components with loading into raw Snowflake tables: a replication or CDC tool for databases, Snowpipe or COPY INTO for files, and connectors for SaaS sources. Transformations then run on data already inside Snowflake.

3. Map the data flow to SQL

SSIS component In Snowflake
Derived Column, Data Conversion SQL expressions and CAST
Conditional Split WHERE per output, or CASE feeding separate models
Lookup JOIN (the no-match output becomes a LEFT JOIN with a null check)
Merge Join, Sort JOIN; no sort needed
Aggregate GROUP BY
Union All UNION ALL
Slowly Changing Dimension dbt snapshots or MERGE
OLE DB Command (row-by-row updates) One set-based MERGE; usually far faster
Script Component SQL, or Snowpark
Destinations Tables or incremental dbt models

Most teams organize the result as dbt models (raw, staged, marts) with tests, rather than copying package structure.

4. Replace control flow

Execute SQL Tasks become SQL steps or models; precedence constraints become Task dependencies or dbt model dependencies; Foreach Loops become set-based SQL or orchestrator loops; Script Tasks become Snowpark procedures; Send Mail becomes alerts or notifications; SQL Agent schedules become Snowflake Tasks or orchestrator schedules.

5. Reconcile and retire

Compare every target table against the SSIS-loaded version. Watch collation (SQL Server compares text case-insensitively by default, Snowflake does not), datetime precision, implicit conversions in Derived Columns and Lookup no-match handling. Disable packages and Agent jobs on each domain’s cutover day.

The short version

Land raw data in Snowflake, rebuild data flows as SQL and dbt models, replace OLE DB Command with MERGE and scripts with Snowpark, move schedules to Snowflake Tasks, handle collation deliberately, reconcile and retire SSIS by domain.

See also SQL Server to Snowflake and SSIS to Databricks, or browse all migration guides.

Not sure where your own platform stands? Take the free 3-minute data platform scorecard, or see how we work on Snowflake. Unfamiliar terms are explained in the data engineering glossary.

Frequently asked questions

Can SSIS load data into Snowflake directly?

Yes, with an ODBC or third-party connector, and some teams keep SSIS for ingestion at first. The longer-term pattern is ELT: land raw data in Snowflake with a replication tool, Snowpipe or COPY INTO, then transform it with SQL inside Snowflake, which removes the SSIS server altogether.

What replaces SSIS Script Tasks and Script Components?

Read each one. Many become a few lines of SQL. Others (API calls, file handling, complex parsing) move to Snowpark Python procedures inside Snowflake, or to the orchestrator if they interact with external systems.

What replaces SQL Server Agent schedules?

Snowflake Tasks, which can run on a schedule and in dependency chains, or an orchestrator such as Airflow or dbt Cloud if pipelines span several systems.

Have 30 minutes? Get a senior architect’s view of your data platform.

No sales deck. You talk to the engineer who would lead the work.

Book an architecture review