Skip to main content
Data Platform

Microsoft Fabric vs a Legacy BI Stack (SSIS + SSAS + Power BI): The Migration Case

The most common estate I walk into is not a mess. It is an on-premises SQL Server, a set of SSIS packages built between 2014 and 2019, one or two SSAS cubes, and Power BI bolted on the front. It runs. Finance closes on it. The reason I get called is a symptom — the person who wrote the packages left, the overnight batch now finishes at 07:20 and the plant meeting is at 07:30. "It is old" is not a business case.

Amit Kumar Singh - Technology Consulting Partner at MyData Insights

Technology Consulting Partner · MyData Insights

14+ years in industrial data · Former Accenture & EY · India, GCC, SEA

17 August 2026 · 16 min read

The bottom line

The SSIS/SSAS/Power BI stack survives because it is predictable — capex cost, known performance, in-house skills, no consumption meter. Migration is forced by operational symptoms with dates, not by technology age: the SSIS developer leaving, a batch window that no longer fits the operating day, non-relational data you now need, refresh crossing the usefulness line, a hardware or licence decision, or a cube that cannot answer new questions. Most of the stack has a Fabric equivalent, but not one-to-one: SSIS becomes Data Factory/notebooks, SSAS tabular becomes a semantic model, SSAS multidimensional has no equivalent and must be rebuilt, and the on-premises gateway is still required. The strangler pattern — running both stacks and moving one subject area at a time behind a stable reporting layer — completes most often in mid-market estates. What breaks reliably: script tasks, MDX scoped assignments, undocumented stored-procedure logic, and Import-mode habits colliding with Direct Lake.

A working stack on predictable cost is an asset

A stack that produces correct numbers on a predictable cost line, on skills you already have in the building, is a genuine asset. Replacing it costs money, attention and risk. The case has to be made on operational symptoms with dates attached, not on architecture diagrams.

This is the component-level version of that case: what maps to what, which migration approach completes, what breaks, and when not to move at all.

Why has the SSIS + SSAS + Power BI stack survived so long?

It survives because it is predictable. Four properties keep it alive, and each is real: cost predictability (an owned server and a SQL Server licence produce a flat, forecastable line — no capacity units, no throttling), a known performance envelope (the batch runs at 02:00, reports are ready at 06:30), skills already in the building (T-SQL and SSIS are widely held; Spark notebooks are not), and it is good at what it does (an SSAS tabular model over a well-built star schema answers financial queries fast).

What changes the answer is not the technology. It is a set of operational symptoms the stack cannot resolve without disproportionate effort.

What actually forces the change?

Migration is forced by operational symptoms, not technology age. Six, in the order I usually meet them:

  • The person left. Sixty packages, no documentation, and one person understood the control flow. Every change request is now a discovery project
  • The batch window closed. Volumes grew several times over; the window with four hours of slack now has twenty minutes, and one late source file means yesterday's numbers at the morning meeting
  • The data you now need is not relational. Machine data over OPC-UA or MQTT, SCADA extracts, telematics JSON, scanned delivery notes. SSIS can be made to do some of this, but the result is fragile
  • Refresh has crossed the usefulness line. A report landing at 07:20 for a 07:30 meeting has failed even if it is correct — the most persuasive trigger in a board paper
  • A capital decision has arrived. The server is out of warranty, or SQL Server 2016 extended support ended in July 2026; money is being spent either way
  • The cube cannot answer the new question. A new dimension means a model change, a reprocess and a regression test, so the answer becomes "no" and the business builds a spreadsheet

If none of these six is true, you probably do not have a migration case yet. Say so, and spend the budget where it earns more.

What maps to what in Microsoft Fabric?

Most of a legacy Microsoft BI stack has a Fabric equivalent, but the mapping is not one-to-one:

Legacy componentFabric equivalentThe honest note
SSIS packages (SQL Agent)Data Factory pipelines, Dataflow Gen2, notebooksInvoke SSIS Package activity is preview; packages must sit in OneLake, no on-prem connectivity. A bridge, not a destination
SSIS script tasks / third-party componentsNotebooks (PySpark/Python)No automatic conversion — rewrite work, where lift-and-shift estimates break
SQL Server warehouseFabric Warehouse (T-SQL, DML) or Lakehouse (Spark)Warehouse suits SQL teams; Lakehouse suits engineering teams and non-relational data
SQL Server as a sourceMirroring into Fabric (GA for SQL Server 2016–2025)Replication compute free; removes a large slice of extract logic
Stored-procedure logicWarehouse stored proceduresT-SQL surface differs — triggers, materialised views, synonyms, recursive queries unsupported
SSAS tabular modelFabric/Power BI semantic model (Import or Direct Lake), XMLA endpointThe closest thing to a clean path; Tabular Editor still works
SSAS multidimensional cubeNo equivalent — rebuild as tabularMultidimensional unsupported; MDX scoped assignments, writeback, custom rollups have no equivalent
On-premises data gatewayStill the on-premises data gatewayMigrating does not remove it; Direct Lake on OneLake does not support gateway connections at all

That last row is the one people miss. Migrating to Fabric does not remove the gateway; it changes what the gateway is for. And if your target model is Direct Lake on OneLake, the data has to already be in OneLake — the gateway cannot serve it.

Which migration approach actually works?

ApproachFirst useful outputWhere it worksWhere it fails
Lift-and-shift6–10 weeksClean star schemas, few script tasks, a hardware/licence deadlineYou inherit every undocumented workaround and pay consumption rates to run inefficient logic
Rebuild4–8 months to parityEstates where the model is genuinely wrong, or OT data is centralLong gap before anything visible; sponsorship dies in month four
Strangler pattern6 weeks for the first subject areaAlmost every mid-market estateTwo platforms run in parallel for 2–4 quarters — must be in the business case

The strangler pattern wins for a plain reason: it keeps the legacy stack authoritative until each workload is proven. Finance keeps closing on numbers it trusts. The programme earns permission to continue every six weeks rather than asking for it once, for eight months, up front. The cost is parallel running — price it, and put a decommission date with an evidence test against every workload.

The strangler pattern earns permission to continue every six weeks — not once, for eight months, up front. That is why it completes where a full rebuild stalls in month four.

What genuinely breaks

Four things break reliably. SSIS script tasks and custom components — a .NET script doing a bespoke parse is a rewrite in Python, and the preview Invoke SSIS Package activity does not support custom components either. MDX that has no tabular equivalent — scoped assignments, custom rollups, named sets, writeback and ragged hierarchies are multidimensional-only; some translate to DAX, some encode a business rule that has to be re-agreed with finance before it can be rewritten at all. Budget the conversation, not just the code.

Stored-procedure logic nobody wrote down — the 900-line procedure computing net sales contains exclusions added by four people over eight years; the Migration Assistant converts schema and procedures, but it cannot tell you why an exclusion exists — only the credit controller can. And Direct Lake versus Import-mode habits — Direct Lake supports no calculated columns, calculated tables, hierarchies or aggregations, and binary and GUID types must become strings; every mature SSAS tabular model I have opened carries at least three of those. Import mode remains a legitimate answer — it is not a failed migration.

What changes in the CFO conversation

Migration converts a capital cost with a known depreciation profile into an operating cost that varies with usage. The CFO is not resisting the cloud; they are resisting a line item that cannot be forecast. Three points make the conversation work. Name what leaves the P&L and when — a migration with no decommission date is a cost increase, while one where the ESU renewal, the hardware refresh and the third-party ETL licence all disappear on a stated date is a substitution. Separate baseline from variable — reserve steady state, not the migration peak.

And do not hide the licence line — below F64, every Power BI viewer still needs a Pro or PPU licence, and on a 300-user rollout that can exceed the capacity line.

When NOT to migrate

Four situations where I have advised against it:

  • The stack works and no symptom has a date on it. No batch pressure, no leaver, no capital decision, no unanswerable question. Wait — the migration will be cheaper and better understood in eighteen months
  • Your data volumes are small and your questions are stable. A 200 GB warehouse serving 40 users with a fixed report set gets little from Fabric and gains a consumption meter it did not have
  • You are mid-ERP-replacement. Migrating the BI stack off a source system you are about to replace means doing the work twice. Sequence it
  • Nobody owns the definitions. If "active customer" is disputed between sales and finance and no one can settle it, that disagreement surfaces as a reconciliation failure in month three and stops the programme

What to do first

Five questions to answer this week:

  • How many SSIS packages contain script tasks or third-party components? That number is your rewrite estimate
  • Is your SSAS model multidimensional or tabular? Tabular is a migration; multidimensional is a rebuild — different programmes, different budgets
  • What is the actual batch finish time over the last 30 days, and what time is the meeting that consumes it? The gap is your business case in one line
  • What capital or licence decision is due in the next 12 months — hardware, SQL Server ESU, ETL renewal? That date is your natural programme start
  • Which three report definitions are currently disputed between departments, and who can settle each?

We run these as a strangler migration on fixed scope after a short paid discovery, one subject area at a time, with a decommission date against each. First value in six weeks.

A working stack on predictable cost is an asset; "it is old" is not a case. Migrate on symptoms with dates, one subject area at a time, with a decommission date against each. Book 30 minutes with Amit — no slides, no pitch deck, no obligation to proceed — a straight read on whether your estate has a migration case yet, and which component would move first.

Free Assessment

Where does your operation sit on the data maturity curve?

8 questions. 3 minutes. You get a scored breakdown across data infrastructure, analytics readiness, and automation potential — with a specific next step for your industry.

Data PlatformMicrosoft FabricMigrationSSISSSAS

Your Data · Our Technology · Our Automation

Get practical insights every fortnight

Amit writes about Microsoft Fabric, Power BI, AI in operations, and digital transformation for manufacturing and supply chain leaders. Practitioner perspective - no fluff, no vendor spin.

No spam. Unsubscribe any time. Also on Substack.

FAQ

Common questions

Can Microsoft Fabric run my existing SSIS packages?

Partly. An Invoke SSIS Package activity is in preview in Fabric Data Factory. Packages must be stored in OneLake, and it does not support on-premises connectivity, private networks or custom components. The other supported route is executing packages in Azure Data Factory and calling them from Fabric using the Invoke Pipeline activity.

What happens to SSAS multidimensional cubes in Microsoft Fabric?

They have no direct equivalent and must be rebuilt as tabular semantic models. Multidimensional is not supported in Azure Analysis Services or Power BI Premium, and Microsoft’s guidance is that tabular is the standard enterprise semantic modelling approach. Features such as writeback, actions, custom rollups, ragged hierarchies and ROLAP storage are multidimensional-only.

Do I still need an on-premises data gateway after moving to Microsoft Fabric?

Yes, if any source stays on-premises. The gateway supports Dataflow Gen2, pipelines and Copy jobs, and requires a recent version plus outbound access to the Fabric data hub endpoints. Direct Lake on OneLake semantic models do not support gateway connections at all — they require cloud connections.

Should we choose a Fabric Warehouse or a Lakehouse to replace SQL Server?

Choose the Warehouse if your team is T-SQL-based and you need multi-table transactions and full DML on structured data. Choose the Lakehouse if you have data engineers, Spark workloads, or unstructured and semi-structured data such as machine or sensor files. Both store data in Delta format in OneLake.

Is lift-and-shift or rebuild the better way to migrate off SSIS and SSAS?

Usually neither in pure form. Running both stacks and moving one subject area at a time — the strangler pattern — completes most often in mid-market estates, because the legacy stack stays authoritative until each workload is proven. The trade-off is two to four quarters of parallel running cost, which must be in the business case.

When should we not migrate off our SSIS, SSAS and Power BI stack?

When no operational symptom has a date on it, when volumes are small and the question set is stable, when an ERP replacement is in flight, or when nobody has authority to settle disputed business definitions. A working stack on predictable cost is an asset. Age alone is not a business case.

Continue Reading

Related Articles

Data Platform

Microsoft Fabric vs SAP Datasphere: Which One Do You Actually Need

The SAP account team says the analytics answer is SAP Datasphere, because that is where the business semantics already live. Two weeks later the Microsoft team says Fabric, because that is where Power BI, the MES extracts and the 3PL feeds already live. Both are internally consistent, and neither mentions the other except to dismiss it. The IT Head is asked to pick, and picks badly — because the two products solve different halves of one problem.

16 min read

Data Platform

The Hidden Costs of a Microsoft Fabric Migration Nobody Tells You About

The awkward conversation happens in month five, not month one. The platform works. The first three reports are live. Then the finance business partner circulates the actual run-rate against the approved business case, and the number is 30–50% over — not because the partner overran, but because six or seven cost lines were never in the case at all. I sell Fabric implementations. This names the costs my own proposals have to cover.

15 min read

Data Platform

Microsoft Fabric Pricing Explained: Capacity Units, SKUs and Real Costs

The purchase request is one line: "Microsoft Fabric F64 capacity, annual." The finance director has signed off ERP per named user, storage per terabyte, maintenance as a percentage of licence value. None of those models apply here. The unit being sold is compute capacity — and nothing on the request says how many people it serves, how much data it holds, or what happens when the business uses more than it bought.

15 min read

Want to see how MDI solves this in your industry? Explore industry solutions

Is this the challenge you're facing?

Book a 30-minute call. We'll look at your specific operation and tell you what's achievable - plainly and without slides.