---
title: "ETL / pipeline migration"
description: "ETL / pipeline migration"
canonical: https://www.smartmigrate.ai/workloads/etl-pipeline-migration
htmlPath: /workloads/etl-pipeline-migration
markdownPath: /workloads/etl-pipeline-migration.md
schema: Service
updatedAt: 2026-02-19T00:00:00.000Z
---
# ETL / pipeline migration
ETL / pipeline migration
Canonical: https://www.smartmigrate.ai/workloads/etl-pipeline-migration
Public path: /workloads/etl-pipeline-migration
Markdown resource: /workloads/etl-pipeline-migration.md
## Workload scope

ETL and pipeline migration covers scheduled transformation logic, incremental loads, orchestration dependencies, restart behavior, and late-arriving data handling across source-to-target migrations.

## Shared migration method

Model a pipeline as an operational contract, not a sequence of scripts. Inventory schedules, dependencies, ownership, source windows, state stores, retries, and downstream consumers. Then make the target implementation explicit about staging, typing, dedupe rules, apply boundaries, orchestration, alerts, and recovery.

The durable design separates extraction, validation, and apply stages. Each stage should have a bounded input window, observable outputs, and a restart-safe state transition so a partial run cannot silently double-apply or skip data.

## Delivery controls

- Define full-refresh, incremental, late-arrival, and backfill policies per dataset.
- Persist watermarks and applied-window markers rather than deriving state from job runtime.
- Make dedupe ordering, tie-breakers, and schema-drift handling executable rules.
- Rehearse retries, partial failures, and dependency delay before cutover.

## When to use a pair-specific guide

Use a retained pair-specific page when the source introduces a material operational difference such as Delta schema evolution, Oracle CDC, Hadoop/Oozie dependencies, or target-specific warehouse orchestration. The shared guide owns the repeatable pipeline method; pair pages document the exceptions.

<!-- Related paths are generated from the remaining published, pair-specific guides. -->

<!--

## Related migration paths

- [Databricks to BigQuery](/migrations/databricks-to-bigquery/etl-pipeline-migration) - Move Databricks/Delta pipelines to BigQuery with parity for incremental loads, MERGE/upserts, and reprocessing windows, validated with reconciliation gates.
- [Databricks to Snowflake](/migrations/databricks-to-snowflake/etl-pipeline-migration) - Move Databricks/Delta ETL pipelines to Snowflake with parity for incremental loads, MERGE/upserts and reprocessing windows, validated with reconciliation gates.
- [Hadoop legacy cluster to BigQuery](/migrations/hadoop-legacy-cluster-to-bigquery/etl-pipeline-migration) - Move Hadoop ETL (Hive/Impala/Spark/Oozie) to BigQuery with parity for partition processing, incremental semantics, and restartability with reconciliation gates.
- [Hive to BigQuery](/migrations/hive-to-bigquery/etl-pipeline-migration) - Move Hive ETL pipelines to BigQuery with parity for incrementals, dedupe rules, and orchestration, validated with reconciliation and pruning governance.
- [Impala to BigQuery](/migrations/impala-to-bigquery/etl-pipeline-migration) - Move Impala/Hadoop ETL pipelines to BigQuery with parity for partition loads, incremental semantics, and orchestration, validated with reconciliation gates.
- [Impala to Snowflake](/migrations/impala-to-snowflake/etl-pipeline-migration) - Move Impala ETL pipelines to Snowflake with parity for partition windows, dedupe, orchestration, and reconciliation gates to prevent drift and credit spikes.
- [Netezza to BigQuery](/migrations/netezza-to-bigquery/etl-pipeline-migration) - Move Netezza ETL pipelines to BigQuery with parity for incrementals, upsert behavior, and orchestration, validated with reconciliation and pruning governance.
- [Oracle to BigQuery](/migrations/oracle-to-bigquery/etl-pipeline-migration) - Move Oracle ETL pipelines to BigQuery with parity for incremental loads, CDC/apply semantics, and data quality controls, validated with reconciliation gates.
- [Redshift to BigQuery](/migrations/redshift-to-bigquery/etl-pipeline-migration) - Migrate Redshift ETL to BigQuery with parity for incremental loads, MERGE/UPSERT patterns, orchestration, and cost governance, validated with cutover gates.
- [Redshift to Snowflake](/migrations/redshift-to-snowflake/etl-pipeline-migration) - Move Redshift ETL pipelines to Snowflake with parity for incremental loads, staging/upsert patterns, orchestration, and reconciliation gates with stable credit.
- [Snowflake to BigQuery](/migrations/snowflake-to-bigquery/etl-pipeline-migration) - Migrate Snowflake ETL pipelines to BigQuery with parity for incremental loads, SCD logic, orchestration, and cost control, validated by reconciliation gates.
- [Spark SQL to BigQuery](/migrations/spark-sql-to-bigquery/etl-pipeline-migration) - Move Spark SQL pipelines to BigQuery with parity for incremental loads, dedupe rules, late-data windows, and orchestration with reconciliation gates.
- [Teradata to BigQuery](/migrations/teradata-to-bigquery/etl-pipeline-migration) - Move Teradata ETL pipelines to BigQuery with parity for incremental loads, restartability, SCD logic, and orchestration, validated with reconciliation gates.
- [Teradata to Snowflake](/migrations/teradata-to-snowflake/etl-pipeline-migration) - Move Teradata ETL pipelines to Snowflake with parity for incremental loads, staging/MERGE patterns, orchestration, and reconciliation gates with stable credits.
- [Vertica to BigQuery](/migrations/vertica-to-bigquery/etl-pipeline-migration) - Move Vertica ETL pipelines to BigQuery with parity for incrementals and MERGE/upserts—validated with reconciliation gates and pruning-aware governance.

-->

## Review points

- Incremental and full-refresh semantics
- Late-arriving data and rerun behavior
- Scheduler, dependency, and ownership changes
- Idempotency, dedupe, and restart controls

## Acceptance criteria

A etl / pipeline migration page is complete when the migration team can identify source assets, understand conversion assumptions, review unsupported or ambiguous constructs, run validation checks, and decide whether the workload is ready for cutover.

For each related path, confirm that the child page explains what changes, how conversion works, which patterns are supported, what can drift, and which evidence is required before production traffic moves to the target platform.

<!-- Source: Git-managed MDX content derived from migrated Sanity workload metadata and migration workload child pages. -->
Intent: 