Why does report-centric data preparation with Tableau Prep stop working when requirements move beyond dashboards? To answer that question, Ryan sat down with Khaled Chowdhury from DataCrafters. As a hands-on leader, Fabric practitioner, and former finance director, his unique perspective creates insightful guidance on how to rationalize Tableau Prep to Microsoft Fabric.
Every company already has multiple data sources. The variety is the problem, not the volume.
Khaled’s starting point: there is no company, not even a one-person shop, running on a single system. That was never really the issue. What changed is what else that data now has to power. Dashboards used to be the only consumer. Now the same customer table has to feed machine learning models, reverse ETL into operational tools, and AI agents that need grounded data. A tool built to feed one report can’t carry that load, no matter how good its visual flow editor is.
Tableau Prep isn’t wrong. It’s scoped to a decade that’s over.
Power Query has existed for thirteen years and does more than Tableau Prep does today. That’s not really a knock on Prep. It was built to solve a narrower problem: get data ready for one report. The mindset was fine when BI was the only consumer of the data. It breaks down the moment a second use case shows up, because the transformation logic lives inside the pipeline instead of in a place other tools can reach.
The same table gets rebuilt 200 times, and nobody notices until the source system does.
This was the sharpest point in the conversation. If two hundred reports reference customer data, and each one has its own prep flow or query, you’re hitting the source system two hundred times and maintaining two hundred versions of the same logic. Move it once, into a central data layer, and every downstream tool reads from the same place. This isn’t an efficiency tip. It’s the difference between a source system that can take the load and one that can’t.
Spend 80% of the effort on one semantic model, not a sliver of effort on 400 reports.
Migrating 400 Tableau workbooks doesn’t have to mean building 400 Power BI semantic models. Khaled’s guidance: build the model once, correctly, and let all 400 reports draw from it. Most teams do the opposite by default, because that’s how Tableau trained them to work. Fabric’s Direct Lake capability makes this easier to justify, since the same customer table gets referenced live, with no separate refresh cycle to manage.
Flat file extracts aren’t going away. Centralizing them isn’t optional either.
SAP customers export tables because the platform doesn’t hand data back easily. Legacy systems with no connector still rely on batch exports. Khaled’s own LinkedIn analytics only come out as a manual Excel download. None of that disappears with a migration. The fix isn’t eliminating the export step. Instead, it’s landing every export in one place, like a SharePoint folder shortcut into a Fabric Lakehouse. As a result, a scheduled file feed behaves like any other governed source instead of a one-off Excel Mart.
A clean semantic model is what actually makes an AI agent usable.
This is the nugget worth sitting with. A Cortex or Copilot-style agent needs schema, column definitions, measures, and table relationships as context. A well-built semantic model hands that over directly. Four hundred inconsistent semantic models, or none at all, hands the agent ambiguity instead, and ambiguity is what breaks AI reliability. The teams positioned to actually deploy AI in production are the ones who already did the semantic model work, not as a migration afterthought but as the reason the migration was worth doing.
Need help uncovering what lies beneath the surface of your Tableau prep flows at scale? Contact us to get access to our Tableau assessment
Want to connect with Khaled and his team at DataCrafters?
Connect with Khaled (LinkedIn): https://www.linkedin.com/in/khaledchowdhury
Data Crafters Website: https://datacrafters.io
Data Crafters (LinkedIn): https://www.linkedin.com/company/datacraftersio/
Other Articles on Tableau Prep to Microsoft Prep
