Migrate to Fabric on your terms, not in a scramble
The legacy Export to Data Lake pipe has been retired and P SKUs can no longer be bought, so the move lands at your renewal, not on some industry deadline. We plan it to that date, choose the Dynamics data path deliberately, and land you on capacity you can pause, resize and actually control.
Dynamics-native since 2002·customers in 20+ countries across 4 continents·independent, so the platform advice is ours, not a vendor's.
Do we actually have to move to Microsoft Fabric, and when?
There is no market-wide deadline, and anyone selling you one is selling you a scare. Microsoft's own position is that no immediate action is required and that you convert your Power BI Premium capacity at your next renewal. Two things are true regardless: the legacy Export to Data Lake pipe for finance and operations apps has been retired, and P SKUs can no longer be bought, only renewed. So the forcing function is your renewal date, not an industry cliff.
Most of what has been written about a Fabric deadline does not survive contact with Microsoft's documentation. We are not going to build a case on a date that is not there. The case is better than that, and it holds up in front of a technical buyer.
The pipe has gone. Export to Data Lake for finance and operations apps was deprecated and its decommissioning has been under way for some time. It is not coming back. Its supported successors are Azure Synapse Link for Dataverse and Link to Microsoft Fabric. If anything in your estate still depends on that legacy export, it is running on borrowed time, and every report standing on it is exposed.
The licence has changed shape. P SKUs are no longer available for purchase. They can only be renewed, and the Power BI Premium SKUs are being retired. To keep the Premium capabilities you rely on, you move to an F SKU. Microsoft is explicit that you can carry on using your existing Premium capacity until your next renewal. That is the moment the decision becomes real for you, and it will be a different moment for you than for anyone else.
The consequence of drifting into it. If a Premium subscription simply lapses, there is a grace window of full access to get the move done, after which content reverts to shared capacity. Large semantic models and Premium-rendered reports stop working. That is not a cliff imposed on the market. It is a self-inflicted one, and it is entirely avoidable with a plan.
We will not sell you a deadline. What we will tell you is this. The legacy pipe is dead, your P SKU cannot be bought again, and the tools that make Fabric affordable to run only exist on the SKU you have not moved to yet. Whether that becomes a project this quarter or next depends on one thing we can look up together: your renewal date.
Why does moving to an F SKU actually pay for itself?
Because the levers that control Fabric cost only exist on F SKUs. Pause and resume, on-demand resizing and Spark autoscale billing are F-only capabilities and are not available on P. Until you are on an F SKU, you are paying for capacity you cannot switch off overnight, cannot resize on the day you need to, and cannot bill elastically when a workload spikes.
This is the part the Finance Director should read. Fabric is sold as software but it bills like infrastructure. Capacity is a unit of compute you rent, and everything on the tenant draws from it. One badly written Direct Lake query, or one oversized Spark cluster someone spun up on a Friday, can throttle the whole tenant and eat a month of budget over a weekend. The organisations that get burned are not the ones who chose wrong. They are the ones who left the capacity unpoliced.
Which is why the SKU matters more than it looks. The cost-control features are not evenly distributed.
- Pause and resume. Available on F SKUs, not on P. Batch and development capacity can be switched off when nobody is using it, instead of billing around the clock.
- On-demand resizing. F only. Size the capacity to the workload as it changes, rather than buying for the annual peak and paying for it every day of the year.
- Spark autoscale billing. F only. Spark workloads bill for what they consume rather than drawing against a fixed reservation, so a heavy engineering job stops competing with reporting for the same headroom.
- The F64 threshold. At F64 and above, users can consume Power BI content on a free licence. Below it, every viewer needs a Pro licence. That single line moves the sizing decision from a technical question to a licence-count question, and it changes the answer for most organisations.
- Network and key controls. Trusted workspace access, managed private endpoints, customer-managed keys and workspace-level private links are F-only. If your security posture needs them, the SKU decision is already made for you.
- Guardrails, not hope. None of the above helps if nobody is watching the burn. Capacity alerts, throttling thresholds and a pause schedule are configuration, and they have to be somebody's job.
We do not publish capacity prices, because a number on a web page is worth nothing to you. What we do is model your burn against your own workloads and your own user count, and show you the running cost before you commit to anything. You are not paying us to build pipelines. You are paying us to police the capacity.
Link to Fabric or Azure Synapse Link: which path should a Dynamics migration take?
Both are supported, and neither is going away. Link to Fabric is no-copy and no-ETL, and your data stays inside the Dataverse governance boundary, but every non-system table with Track changes enabled is selected automatically, you cannot cherry-pick, and it consumes additional Dataverse storage. Azure Synapse Link exports continuously to your own storage account, where you choose the tables and you own the pipeline. The right answer depends on who you want to own the plumbing, and on where you want the data to live.
This is the decision that gets made badly, usually because someone assumed there was only one option left.
Link to Microsoft Fabric
- No copy, no ETL. No export pipeline for you to build or run.
- Stays inside the Dataverse governance boundary. The data does not leave it.
- You cannot cherry-pick. Every non-system table with Track changes enabled is selected automatically.
- Consumes additional Dataverse storage. The cost lands on your Dataverse capacity.
Choose this whenyou want the fastest supported route into Fabric and you are content for Dataverse to remain the governance boundary.
Azure Synapse Link for Dataverse
- Continuous export to your own storage account. The data lands where you put it.
- You manage access. The storage, and the permissions on it, are yours.
- You can choose the tables. Administrators select what is required and control the surface area.
- Consumes your own storage and compute. The cost lands on your Azure bill, where you can see it.
Choose this whenyou want to own the pipeline, control what leaves Dataverse, and extend the ingestion yourself.
The correction, stated plainly. Azure Synapse Link is not being retired. Microsoft has been explicit that customers who want to keep exporting data and building their own integration pipelines will be able to do so well into the future, and the two paths are presented as complementary rather than as a succession. Anyone telling you Synapse is dead is either out of date or selling something. What has been retired is Export to Data Lake, and that distinction is the difference between a migration you plan and a migration you panic through.
Where a pre-built, pre-reconciled extraction foundation fits the job better than a bespoke pipeline, Reveal is our productised option, which reduces implementation time and risk.
What does a naive Fabric migration get wrong?
It assumes the link is the migration. Link to Fabric and Synapse Link handle transport. They do not do the Finance and Operations transformation, so financial dimensions, RecId relationships and enum decoding are still yours to build. And the schema that arrives on the other side is not the schema you had.
A generalist Fabric shop treats Dynamics as one more SQL database with a connector in front of it. The data lands, the connector is green, the project is declared done. Then somebody in Finance runs the number and it is wrong, and nobody can say why, because the failure is six layers down in a schema nobody read the release notes on.
Here is what actually arrives.
- Reserved words are renamed. Columns whose names collide with SQL reserved words come across renamed.
LevelbecomesLevel_,ResourcebecomesResource_. Anything downstream that hard-codes the original name breaks, and it breaks quietly. IDbecomesFnO_Id. The identifier is renamed on the way through. Every join written against the old name either fails loudly or, far worse, returns nothing and looks like a clean result.- Soft deletes are retained, not removed. Deleted rows persist and are flagged via
isDelete. Filter for it, or every count, every sum and every average over-states, permanently and invisibly. - Fields are dropped. TZID fields and binary fields do not come across at all. If a report or a downstream process depended on one, it stops being right the day you cut over.
- Long text is truncated.
nvarchar(max)columns are truncated at 2,000 characters. Long descriptions, notes and comment fields silently lose their tails, and nobody notices until a customer does. - The link is transport, not transformation. Financial dimensions, RecId relationships and enum values still have to be resolved into a model that reconciles. No connector does that for you, on any platform, and no amount of Delta files in OneLake substitutes for it.
Microsoft's FastTrack team publishes transition tooling on GitHub for exactly this move, and we use it. Good tools shorten the plumbing. They do not make the finance logic appear.
What does a migration to Microsoft Fabric involve?
A migration runs as a phased delivery anchored on your renewal date: capacity and licence assessment, the data-path decision, an estate and dependency map, the migration build, a reconciled parallel run, then cutover with the cost guardrails switched on. Nothing legacy is switched off until the new numbers have been reconciled against the old ones, figure by figure.
The shape below is deliberately unglamorous. A migration is a risk-management exercise dressed as a technology project, and the sequence is what keeps it that way.
-
Capacity and licence assessment
We start from your renewal date and your current capacity, size the F SKU against what your workloads actually consume rather than against the badge you happen to hold, and settle the F64 question against your real viewer count. This is where the economics are decided, and it is done before anything is built.
-
The data-path decision
Link to Fabric or Azure Synapse Link, decided on governance posture, storage ownership and who is going to run the pipeline once we have gone. Written down with the reasons, so it survives an audit and a change of personnel.
-
Estate and dependency map
What still runs on the legacy pipe, which reports and semantic models depend on it, what breaks on the day it goes, and in what order things have to move. Most of the risk in a migration lives in this document, not in the build.
-
The migration build
We land the data on the chosen path, build the transformation layer the link does not give you, and handle the Finance and Operations schema realities, so the raw layer ingests clean rather than merely looking clean.
-
Parallel run and reconciliation
Old and new run side by side and we reconcile to the finance source, figure by figure, until the new estate produces the same numbers as the estate you already trust. Only then does anything get decommissioned.
-
Cutover and cost guardrails
The legacy pipe is retired, and the capacity goes live with alerts, throttling thresholds, pause and resume schedules and workspace guardrails already configured, so the first invoice contains no surprises.
Where speed matters and the scope is tight, a fixed-scope migration pack sits beside the full programme. Either way, the cost is scoped and shown to you before you commit to it.
What does a Fabric migration actually deliver?
A Fabric migration delivers an F SKU sized to your real workload, a supported Dynamics data path chosen and documented, the transformation layer that the link does not provide, a parallel run reconciled to your finance source, the legacy pipe decommissioned, and cost guardrails live from day one.
Here is the whole of it, so there is no question about what lands and what does not.
- An F SKU sized to your workload. Sized against what your workloads actually consume and against your viewer count, with the F64 licence threshold weighed openly rather than assumed either way.
- A supported Dynamics data path, chosen and documented. Link to Fabric or Azure Synapse Link, selected on your governance posture and pipeline ownership, with the reasoning written down.
- The transformation layer the link does not give you. Financial dimensions, RecId relationships, enum decoding and the soft-delete filter, built once, so the numbers above them hold.
- A parallel run, reconciled figure by figure. The new estate proves it agrees with the old one before the old one is switched off. No leap of faith, and no month-end spent finding out.
- The legacy pipe decommissioned. Export to Data Lake dependencies identified, migrated and retired, so nothing in your estate is standing on a pipe that has already gone.
- Cost guardrails from day one. Capacity alerts, throttling thresholds, pause and resume schedules and workspace guardrails configured before go-live, not after the first surprising invoice.
What comes before and after a Fabric migration?
The migration is the door. The readiness assessment can come before it, so you decide on evidence rather than pressure. The implementation build comes after it, once you are on the platform. The managed platform runs it, and governance sits across all of it. You take each rung on the evidence, with no obligation to take the next.
-
Diagnose first.
If you do not yet know what your estate would cost to run on Fabric, or what still depends on the legacy pipe, start with the Fabric readiness assessment, which produces the evidence this migration is scoped from.
-
Migrate.
This page. Off the retired pipe, onto a supported data path, onto capacity you can control, with the numbers reconciled before anything is switched off.
-
Then build.
With the platform in place, Fabric architecture and implementation extends it into the workloads you actually wanted, rather than a lift-and-shift of what you already had.
-
Then run it.
If you would rather not police the capacity yourself, the managed Fabric platform takes the run-state, the FinOps and the guardrails. It is a choice, never a dependency we design in.
Governance runs across all four rungs, not after them. Fabric governance and security is where OneLake permissions, row-level and column-level security and the access model are done properly, and it is where a naive rollout quietly fails.
The boundary. Fabric is the platform. The data warehouse is the reconciled model layer that sits on it, where the financial-dimension, elimination and multi-entity logic is encoded once. Power BI is the reporting on top of that layer. Three cleanly separated things, one team, and this page is responsible only for the platform underneath them both.
Why a Dynamics specialist should run this migration, not a Fabric generalist
PrecisionPoint has built Dynamics data since 2002. A Fabric migration is not really a Fabric project, it is a Dynamics project that lands on Fabric, and the difference shows the moment somebody tries to reconcile a financial dimension. Most platform shops are deep on Fabric and have never had to make intercompany balance. Most ERP implementers bolt the data layer on afterwards. We sit in the gap, and we are independent, so the platform advice you get is ours rather than a vendor's.
The market has plenty of firms who can stand up a Fabric capacity and land Delta files in OneLake. That has become table stakes. What has not become common is knowing that ID arrives as FnO_Id, that deleted rows are still sitting there flagged, that the long text field has quietly lost everything past two thousand characters, and that none of the plumbing, on any platform, will do the financial-dimension logic for you.
That is the scarce skill. It is the whole of what we have done since 2002, and a migration is exactly where its absence gets discovered late.
- Dynamics-native since 2002.
- Customers in 20+ countries across 4 continents.
- The full data lifecycle, from the platform decision through to a managed run-state.
Migration to Microsoft Fabric: common questions
Is there a deadline to move off our P SKU?
Not a market-wide one. Microsoft's position is that no immediate action is required and that you can continue using your existing Power BI Premium capacity until your next renewal. What has changed is that P SKUs can no longer be bought, only renewed, and the Premium SKUs are being retired. So the forcing function is your renewal date, which is specific to you, and we plan the migration backwards from it.
Has Export to Data Lake really been retired?
Yes. Export to Data Lake for finance and operations apps was deprecated and its decommissioning has been under way for some time. Its supported successors are Azure Synapse Link for Dataverse and Link to Microsoft Fabric. If anything in your estate still depends on the legacy export, that is the most urgent item on this page, regardless of what your licence renewal looks like.
Is Azure Synapse Link being retired too?
No, and it is worth being clear about this because the opposite is widely repeated. Microsoft has said it intends to let customers keep exporting data and building their own integration pipelines well into the future, and presents Synapse Link and Link to Fabric as complementary rather than as a succession. The pipe that has actually gone is Export to Data Lake.
Link to Fabric or Synapse Link: which should we choose?
It depends on who owns the plumbing. Link to Fabric is no-copy and no-ETL and keeps the data inside the Dataverse governance boundary, but every non-system table with Track changes enabled is selected automatically, you cannot cherry-pick, and it consumes additional Dataverse storage. Synapse Link exports to your own storage account, where administrators can choose the required tables and you own and can extend the pipeline. We make the choice on your governance posture and write down the reasoning.
Will moving to an F SKU cost us more?
It depends on your workload and your viewer count, and we will not pretend otherwise on a web page. What is certain is that the levers that control Fabric cost only exist on F SKUs. Pause and resume, on-demand resizing and Spark autoscale billing are not available on P. We model your burn against your own workloads and show you the running cost before you commit to anything.
Does Link to Fabric handle our Finance and Operations financial dimensions?
No. Link to Fabric and Synapse Link handle transport, not transformation. Financial dimensions, RecId relationships and enum decoding still have to be built into a model above the raw layer. On top of that, the schema changes on the way through: reserved words are renamed, ID becomes FnO_Id, soft-deleted rows are retained and flagged, TZID and binary fields are dropped, and nvarchar(max) is truncated at 2,000 characters. A migration that ignores those produces a raw layer that looks right and poisons everything above it.
Will our reports break while we migrate?
Not if the migration is run properly. Old and new run in parallel and we reconcile to the finance source, figure by figure, until the new estate produces the same numbers as the one you currently trust. Only then is anything decommissioned. Where the F64 threshold changes who needs a Pro licence to view content, we surface that during the capacity assessment rather than on the day of cutover.
Could we just do this ourselves?
Some organisations can, and Microsoft's FastTrack team publishes transition tooling on GitHub that helps. What tooling does not do is decide the data path on your governance posture, resolve the Finance and Operations schema realities, reconcile the parallel run, or put the capacity guardrails in before the first invoice. If you want to test your own readiness first, the readiness assessment is the honest place to start, and it is designed to be useful whether or not you end up hiring us.
Scope your migration to Microsoft Fabric
A Fabric migration that lands on your terms starts with one scoping conversation: your renewal date, what still depends on the legacy pipe, and what your workloads actually consume. We come back with a scoped cost, an honest view of the running cost, and a phased shape, all shown before you commit to any of it.
Tell us what you run, what your Dynamics estate looks like, and when your capacity comes up for renewal. We will tell you whether this is a project for this quarter or next year, and we will tell you honestly, because a migration sold on a deadline that does not exist is a migration that fails its first month-end.
Tell us what you run, what still depends on the legacy pipe, and when your capacity renews, and we will come back to scope the migration with you.