Convert SSIS packages to BigQuery SQL

SSIS packages (.dtsx) and project archives (.ispac) parsed structurally. Data Flows converted to BigQuery SQL with scheduled queries and Cloud Composer orchestration. Full lineage, validated parity.

Upload a package, get converted code →
Why BigQuery

SSIS wasn't built for serverless analytics at scale

Data Flow transforms → BigQuery SQL

OLE DB Source, Derived Column, Lookup, and Aggregate transforms run on a single SSIS server with fixed memory. BigQuery's serverless engine distributes the same logic across thousands of slots. No cluster sizing, no driver management, no memory ceilings.

SQL Server dependencies → BigQuery

SSIS is tightly coupled to SQL Server via OLE DB and ADO.NET Connection Managers. BigQuery eliminates driver dependencies entirely -- data loads from GCS, Pub/Sub, or federated sources with no middleware layer to maintain.

SSISDB scheduling → Cloud Composer

SSISDB Catalog and SQL Agent jobs require on-premise Windows servers and manual monitoring. Cloud Composer (managed Airflow) provides DAG-based orchestration with retry, branching, alerting, and full observability -- serverless and fully managed.

Parser output

SSIS Data Flow to BigQuery SQL

A typical SSIS Data Flow with OLE DB Source, Derived Column, Lookup, and OLE DB Destination -- converted to BigQuery SQL using MERGE and scheduled queries for incremental processing.

SSIS Data Flow (.dtsx)
<!-- Package: Shipment_ETL.dtsx -->
<!-- Data Flow Task: Load Shipments -->

OLE DB Source: [dbo].[STG_SHIPMENTS]
  SELECT ShipmentID, WarehouseID,
         Weight, ShipDate, Carrier
  FROM STG_SHIPMENTS
  WHERE ProcessedFlag = 0

Derived Column: [ShipCategory]
  (DT_WSTR,10)(
    Weight > 500  ? "Freight" :
    Weight > 50   ? "Parcel" :
    "Envelope"
  )

Lookup: [DIM_WAREHOUSES]
  JOIN ON WarehouseID = WhseID
  OUTPUT: WarehouseName, Region

OLE DB Destination: [dbo].[FACT_SHIPMENTS]
  INSERT INTO FACT_SHIPMENTS
  (ShipmentID, WarehouseName, Region,
   ShipCategory, Weight, ShipDate)
MigryX
converts
BigQuery SQL
-- SSIS Data Flow → BigQuery SQL

-- MERGE replaces full Data Flow pipeline
MERGE INTO `project.dataset.fact_shipments` tgt
USING (
  SELECT
    s.ShipmentID,
    w.WarehouseName,
    w.Region,
    CASE
      WHEN s.Weight > 500 THEN 'Freight'
      WHEN s.Weight > 50  THEN 'Parcel'
      ELSE 'Envelope'
    END AS ShipCategory,
    s.Weight,
    s.ShipDate
  FROM `project.dataset.stg_shipments` s
  LEFT JOIN `project.dataset.dim_warehouses` w
    ON s.WarehouseID = w.WhseID
  WHERE s.ProcessedFlag = 0
) src
ON tgt.ShipmentID = src.ShipmentID
WHEN MATCHED THEN UPDATE SET
  tgt.WarehouseName = src.WarehouseName,
  tgt.ShipCategory  = src.ShipCategory,
  tgt.Weight        = src.Weight
WHEN NOT MATCHED THEN INSERT (
  ShipmentID, WarehouseName, Region,
  ShipCategory, Weight, ShipDate
) VALUES (
  src.ShipmentID, src.WarehouseName,
  src.Region, src.ShipCategory,
  src.Weight, src.ShipDate
);

-- Scheduled query replaces SSIS scheduling
-- Cloud Composer DAG for complex orchestration
-- with retry, branching, and alerting

OLE DB Source, Derived Column, Lookup, and Destination replaced by a single BigQuery MERGE statement. Scheduled queries or Cloud Composer replace SSISDB scheduling.

Coverage

SSIS to BigQuery -- artifact mapping

SSIS Component BigQuery Equivalent Notes
OLE DB SourceSELECT / External TableSQL Server queries become BigQuery SQL or GCS reads
Derived ColumnCASE WHEN / SQL expressionsSSIS expressions mapped to BigQuery SQL syntax
Conditional SplitCASE WHEN + filtered CTEsMultiple outputs become branched SQL logic
LookupJOINFull match and no-match outputs preserved via LEFT JOIN
Merge JoinJOINInner, left, full outer join types supported
AggregateGROUP BY with aggregatesSUM, COUNT, AVG, MIN, MAX preserved
SortORDER BYMulti-column sort with ASC/DESC preserved
OLE DB DestinationMERGE / LOAD DATAUpserts via MERGE, bulk loads via GCS staging
Execute SQL TaskBigQuery Stored ProcedureT-SQL translated to BigQuery Standard SQL
Script Task (C#/VB.NET)Cloud Function / Python UDFCustom logic rewritten as Python or SQL UDFs
For/Foreach LoopCloud Composer DAGLoop containers become Airflow task chains
SSISDB CatalogScheduled Queries / ComposerScheduling, parameters, and monitoring modernized
Validation

Every conversion validated to row-level parity

Data Matching compares SSIS package output against BigQuery output -- row by row, column by column. In the case study below, all ETL pipelines were validated against SQL Server production baselines with full regression testing.

See how Data Matching works →
1,400
SSIS packages modernized
6X
Faster processing
$2.2M
Savings over 3 years
290
Data Flows converted

Logistics Firm: SSIS to BigQuery in 8 Months

1,400 SSIS packages converted to BigQuery SQL. 290 Data Flow pipelines with OLE DB, Lookup, and Derived Column transforms replaced by BigQuery MERGE statements. SSISDB Catalog scheduling modernized to Cloud Composer DAGs. SQL Server and Windows infrastructure decommissioned within 90 days.

Read the full case study →

See it on your own SSIS packages

Upload an SSIS package (.dtsx). Get parsed lineage, BigQuery SQL code, and a validation report.

Book a Live Demo → hello@migryx.com