Sunsprinkle
Reference migration
Reference migration · Microsoft's public WideWorldImporters sample

A SQL Server warehouse to Databricks, reconciled on every table.

No client data, nothing taken on trust: every number below can be reproduced from the scripts. We took a SQL Server data warehouse and its nightly ETL to Databricks in two working days, and proved it on every table.

Lakebridge reconcile29 of 29 tables, zero mismatched rows
Seven-day parallel run16 of 16 tables, 7 of 7 reports identical
ElapsedTwo working days, assessment to acceptance

The scenario

A mid-market distributor runs its reporting on a SQL Server data warehouse, fed every night by an SSIS package from the order system. Leadership wants machine learning and GenAI on that data. The warehouse can't serve it: no central governance, batch-only loads, compute tied to SQL Server licences. The AI roadmap is stuck behind the platform.

We built that situation from Microsoft's own public sample, WideWorldImporters: the order system and its data warehouse, with the stored procedures, temporal tables and nightly ETL a real mid-market warehouse has. Then we migrated it to the Databricks Data Intelligence Platform using the same five steps and fixed-price acceptance rules we use for clients.

What we migrated

Source (SQL Server 2022)Target (Databricks, Unity Catalog)
Data warehouse: 29 tables, about 1 million rows29 Delta tables in one governed schema
25 T-SQL procedures and functions (2,160 lines)21 converted to Databricks SQL procedures; 4 retired (columnstore, In-Memory OLTP, PolyBase setup) with a documented Databricks equivalent
Nightly SSIS ETL: 13 extract procedures (1,100 lines of T-SQL over temporal history)A Lakeflow declarative pipeline: 24 Auto Loader bronze tables, 13 staging views, then the converted load procedures
The sample's reports7 gold report views

How we did it

  1. Assess. Exported every object, ran the Lakebridge Analyzer and sized the estate: 54 scripts, 25 procedures and functions, 3 of them very high complexity. The wave fits our M tier.
  2. Design. Medallion layout under Unity Catalog (bronze for raw landing, the converted warehouse, gold for reports), a replacement decided for every source object, and a one-wave plan with written acceptance criteria.
  3. Prove. Ran Lakebridge's converters first. They returned 3 of 25 objects as "clean", and none of those would have run. Everything that mattered was converted with AI assistance, every change reviewed and approved by a human engineer, then proven equivalent: the original T-SQL and the converted procedures ran on identical input, and all 16 affected tables came out identical.
  4. Migrate. Landed every table from SQL Server through Parquet into Delta, and rebuilt the nightly ETL as a Lakeflow pipeline. The 13 extracts that walk temporal history with cursors became set-based SQL and matched the originals in 37 of 37 comparisons.
  5. Validate and cut over. Three independent checks, below.
Wave acceptance report: reconciliation passed on 29 of 29 tables, with zero missing or mismatched rows on every table
The wave acceptance report, generated by script from the Lakebridge reconcile runs: 29 of 29 tables passed.
Parallel run comparison: 7 of 7 gold reports and 16 of 16 warehouse tables identical between Databricks and SQL Server after seven simulated days
After seven simulated business days, every warehouse table and every report matched between the old and the new platform.

Results

MeasureResult
Tables reconciled29 of 29, zero missing or mismatched rows
Parallel run16 of 16 tables and 7 of 7 reports identical after 7 days
Code proven equivalent to the original21 procedures (16 of 16 tables) and 13 ETL extracts (37 of 37 comparisons)
Converted automatically by the transpilersEffectively 0%; all T-SQL that mattered was converted with AI assistance, with final review by a human engineer
Defects in the migrated data0. Three bugs found in Microsoft's original code, flagged and kept as-is for fidelity
Elapsed timeTwo working days, assessment to a passing acceptance report
Databricks compute for the whole migrationAbout $14 to $18 at list price
Running the new nightly ETLAbout $13 to $16 a month on the smallest serverless warehouse

What we learned

  1. Conversion is automated. Validation isn't. The transpilers' "clean" count was the wrong measure; the effort went into proving equivalence, and that is what a fixed price has to cover.
  2. The ETL hid more logic than the warehouse. Cursors over temporal history, cascading updates, columns renamed inside SSIS. Re-platforming "just the pipeline" meant the trickiest 1,100 lines in the estate.
  3. Databricks SQL now has real transactions in procedures. A failed load rolled back completely, as SQL Server's did, once the tables carry the right Delta feature.
  4. Surrogate keys change; joins don't. Key numbers differ between platforms for new rows. We compare on business keys and tell clients up front.
  5. The reconcile tool needed tuning for SQL Server. Lakebridge flagged 243 rows with names like "Pájaros" that were in fact identical, because SQL Server hashes text in a different encoding. We fixed it in our harness, not in the data. Budget for this on any SQL Server estate.
  6. Lineage stops at stored procedures. Unity Catalog traced the pipeline and the reports automatically, but not the procedures that load the warehouse. Where governance matters, move that logic into the pipeline or document it.
  7. Compute is not the budget. The whole migration used less than $20 of Databricks compute. The cost of a migration is the work of proving it right.
Lakebridge Analyzer summary: 54 scripts, 24 procedures and 2 functions, 2,682 lines of code; 7 low, 15 medium and 3 very high complexity
The Lakebridge Analyzer sizing that opened the assessment: 25 procedures and functions, 3 of them very high complexity.

Limits of this proof

Reproduce it

Every step is scripted in our migration kit: Terraform for the source, export and Lakebridge scripts, the converted code, the Lakeflow pipeline, the reconcile configuration, the parallel-run harness and the cut-over runbook. On request, we walk your data engineers through it and rerun any step in this write-up so they can check the numbers themselves.

Start with the assessment. A fixed-fee Assess gives you the same inventory, complexity sizing and costed wave plan for your warehouse, with no commitment beyond it. Book a 30-minute scoping call, or read the customer case study.