Category: Microsoft-Fabric

One Semantic Model, Many Tenants: Scaling Multi-Tenant Power BI Reporting with Parameters
Oct 02, 2026 4 min read

Delivering the same Power BI report to many tenants doesn't have to mean maintaining many semantic models. When the reporting logic is identical and only the data location changes, one parameterized model can serve every tenant. We learned this while building a reconciliation report for a multi-tenant data migration. Every tenant needed the same answer: did all the data arrive at the destination intact? Rather than cloning and editing a model for each tenant, we built one reusable model and moved the tenant-specific details into Power Query parameters. Here's how it works, and why it made onboarding a routine task instead of a development project. The challenge: The report had the same purpose for every tenant: compare source and destination data after migration and identify any discrepancies. However, each tenant had its own schemas. Without parameterization, onboarding a new tenant would require manually updating schema references throughout the model. As more tenants were added, this would create multiple copies of essentially the same model. This also increases the risk of inconsistencies. A fix applied to one model may not be applied to another, and over time the reports can start behaving differently. We wanted a process that was repeatable, consistent, and easy to maintain. The approach: Power Query parameters We added two parameters to the semantic model, and they became the only tenant-specific configuration: SourceSchema identifies the tenant's source schema. DestinationSchema identifies the tenant's destination schema. The server and database connection stay the same for everyone. Only the schema values change. Tenant SourceSchema DestinationSchema Customer A CustomerA_Source CustomerA_Destination Customer B CustomerB_Source CustomerB_Destination Every query in the model references these parameters instead of a hardcoded schema name. Tenant details become configuration, and the reporting logic stays untouched. Onboarding a new tenant in nine steps With the reusable model in place, adding a tenant follows the same checklist every time: Download or prepare the existing semantic model. Rename it for the new tenant. Copy the required report visuals into the new file, if needed. Publish the report to the right Power BI workspace. Open the model's transformation or parameter settings. Set SourceSchema and DestinationSchema to the new tenant's values. Apply the changes. Refresh the model. Validate the reconciliation results. No queries are rebuilt and no report pages are redesigned. The administrator changes two values and validates the output. Consistency, governance, and a word on security One of the biggest advantages of this approach is consistency. Every tenant can use the same semantic model design and reconciliation logic. Tenant-specific values are kept in parameters instead of being scattered throughout the queries. This also makes the process easier to document. The organization can define who is responsible for onboarding tenants, who can change parameters, how refreshes are performed, and what validation is required after each deployment. At the same time, tenant data isolation still needs to be handled through the appropriate database and Power BI security and permission model. Parameters should be treated as configuration, not as the only security control. Business benefits A parameter-driven model pays off in practical ways: Faster onboarding, because there is little to no development per tenant. Consistent reporting, because every tenant shares one model and one set of calculations. Lower maintenance, because a fix is made once and applies everywhere. Fewer configuration errors, because no one is hand-editing dozens of queries. Better scalability, because the effort per tenant stays flat as the tenant count grows. Simpler administration, through a documented, repeatable onboarding process. Above all, adding a tenant becomes an operational task rather than another development project. Conclusion When several tenants need the same Power BI reporting experience, a separate model per tenant usually isn't necessary. If the database structure is consistent and the main difference is the schema, Power Query parameters make one semantic model reusable across all of them. With SourceSchema and DestinationSchema as the only tenant-specific settings, the reconciliation logic stays standardized and onboarding stays repeatable. The result is one model, configurable tenant values, and reporting that scales with your tenant base.

We built a multi-tenant SaaS on Microsoft Fabric with a workspace for every customer
Oct 02, 2026 7 min read

Most Microsoft Fabric projects serve one organization. Ours had to serve many. A cloud cost management (FinOps) software provider asked us to build the data platform behind their product: collect each customer's Azure and AI spending, turn it into one standard format, and serve it to dashboards and an AI assistant. Every customer had to see only their own data, onboarding had to be automatic, and the platform had to grow region by region. We built it entirely on Microsoft Fabric, with a dedicated workspace for every customer. This post walks through the design, the parts that made it work in production, and what we would tell any team building SaaS on Fabric. The challenge (pain points in real operations) A single-tenant Fabric design is straightforward. Multi-tenant SaaS raises harder questions, and each one had to be answered before the first customer went live. Isolation that can be proven: Customers trust you with billing data. "We are careful" is not enough. The platform had to show, automatically, that one customer's reports can never read another customer's data. One codebase, many customers: Every customer needed the same pipelines, the same data model and the same app. Hand-built workspaces drift apart within weeks. Onboarding without a project: Each new customer needed groups, storage, pipelines, a semantic model, an app and credentials. Doing that by hand would turn every sale into a mini-project. Capacity cost: Fabric capacity is billed whether it is busy or idle. Sizing it for the heaviest nightly run all day would waste money. Growth by region: Customers in different geographies expect their data to stay in region, and an incident in one region should not affect the others. What we built (tailored solution, delivered end-to-end) We designed the platform around three ideas: a regional deployment holds everything a set of customers needs, every customer gets their own workspace, and nothing is created by hand. 1. Regional deployments (growth and blast radius) Customers are placed on regional deployments, sometimes called deployment stamps. Each deployment has its own Fabric capacity, Azure Key Vault, Azure Function Apps and a core Fabric workspace. The core workspace holds the shared notebooks and pipelines, plus a Fabric SQL database that acts as the customer registry. The registry lists every customer with their workspace and lakehouse IDs, status and settings. Pipelines never hard-code a customer. They read the registry at run time. Adding a region means standing up a new deployment from the same templates. An issue in one deployment stays inside it. 2. A workspace per customer (isolation by design) Every customer gets a dedicated Fabric workspace containing: Bronze, Silver and Gold lakehouses in a Medallion Architecture A Direct Lake semantic model that holds every business measure The customer-facing Fabric App, built with Microsoft's Rayfin SDK A Fabric Data Agent that answers plain-English cost questions from that customer's model only Access is controlled through Microsoft Entra security groups per customer. Each customer's Azure credentials live in Key Vault and are read at run time, never stored in code. The important part is that isolation is tested. An automated check confirms that each customer's semantic model is bound only to that customer's own Gold lakehouse, and a read-only smoke test runs across every active customer on a deployment. 3. One pipeline run for every customer (one codebase) The transformation logic is written once and runs for everyone. A master pipeline reads the active customers from the registry, and a ForEach activity runs the per-customer pipeline for each of them: Converting Azure, OpenAI, Anthropic and Microsoft Copilot spend into FOCUS, the open standard for cloud cost data Cost allocation to teams, budgets, anomaly detection and savings recommendations Reservations, price sheets and Microsoft 365 usage A semantic model refresh at the end Every notebook and pipeline lives in source control. Processing is incremental: a watermark table records what each customer has already processed, so nightly runs only touch new data. Ingestion that needs customer credentials stays in Azure. Azure Durable Functions call the Cost Management API, Azure Resource Graph, Microsoft Graph and AI vendor usage APIs, and write Delta tables straight into each customer's OneLake. Azure cost export files reach Fabric through OneLake shortcuts, so raw files are never copied. 4. Onboarding as a workflow (one run instead of a project) Onboarding a customer is a single automated workflow. It: Creates the Entra groups Adds the registry entry Creates the workspace and the three lakehouses Stores the customer's credentials in Key Vault Deploys the semantic model, the app and the Data Agent Runs the isolation check Offboarding reverses it. One detail saved us more than once. A semantic model fails to deploy if it references a table that has no data yet. We generate a skeleton schema listing every table and column the model expects, create empty tables from it at onboarding, and backfill new tables into existing customers. A CI test also checks that every column a notebook writes exists in the model, so a schema change cannot break every customer overnight. 5. Capacity that follows the workload (cost control) Each deployment has two capacity sizes: a smaller resting size for daytime reading and a larger size for the nightly processing run. The capacity scales up before the run and scales down as soon as the master pipeline finishes, rather than after a fixed duration. The app also caches semantic model query results against a data-version stamp, which removes repeated identical queries and keeps the capacity free for real work. 6. Customer-hosted delivery (data residency) Some enterprise customers cannot allow their reporting data to sit in a supplier's tenant. For them, processing stays in the provider's tenant and only the finished Gold data is published into the customer's own Fabric tenant. The semantic model and app run there on the customer's capacity, and no copy is left on the provider's side. That deserves its own post, and we will cover how we built and tested it separately. Real-world impact (what changed after rollout) Isolation you can show an auditor: An automated check proves each customer's model reads only their own data, on every deployment. Onboarding in one workflow: A new customer goes from contract to live workspace, model, app and AI assistant without hand-built steps. One codebase for every customer: A fix or feature in a notebook, pipeline or model reaches all customers in the next release. Lower capacity cost: Compute is sized up only while the nightly run is actually running. Room to grow: New regions are new deployments from the same templates, with problems contained to one deployment. What we would tell any team building SaaS on Fabric Decide your isolation unit first. For us it was the workspace. Everything else, from access groups to deployment scripts, followed from that choice. Keep a registry and read it at run time. Pipelines that look up their customer list never need editing when a customer joins or leaves. Treat every Fabric item as code. Notebooks, pipelines, lakehouses and the semantic model all live in Git and deploy the same way to every workspace. Test isolation automatically. A check that runs on every release catches a binding mistake before a customer does. If you are planning a multi-tenant product or a large data platform on Microsoft Fabric, we would be glad to share what we learned. Connect with us to talk through your architecture.

From Manual Reporting to Real-Time Insights with Microsoft Fabric and Power BI
Jun 23, 2026 2 min read

From Manual Reporting to Real-Time Insights with Microsoft Fabric and Power BI  The Challenge: Fragmented Data and Manual Reporting Many organizations struggle with the same problem Critical business data is spread across HR systems, finance platforms, operational databases, compliance tools, and spreadsheets. Reporting becomes a manual and time-consuming process. Decision-makers often wait days or weeks for actionable insights. KPI definitions vary across departments, creating inconsistencies. Limited visibility and delayed reporting reduce confidence in business decisions. The Solution: A Unified KPI Reporting Platform To address these challenges, at MagnusMinds we implemented a centralized KPI reporting platform using Microsoft Fabric and Power BI. Key Objectives Establish a single source of truth for organizational performance. Consolidate data from multiple business functions. Standardize KPI calculations and reporting processes. Enable scalable and future-ready analytics. Building a Scalable Data Foundation with Microsoft Fabric Using Microsoft Fabric's Lakehouse architecture, data was unified into a centralized analytics platform. Architecture Approach Bronze Layer: Raw data ingestion from source systems. Silver Layer: Data cleansing, validation, and business-ready transformations. Gold Layer: KPI-ready datasets optimized for reporting and analytics. Delivering Actionable Insights with Power BI Power BI was used to create an executive-ready KPI dashboard that provided immediate visibility into organizational performance. Dashboard Capabilities Monitor Actuals vs Targets. Track KPI performance in real time. Analyze historical trends and variances. Drill down into operational details. Improve visibility across business functions. Strengthening Data Governance and KPI Consistency A key focus of the solution was governance and standardization. Governance Improvements Standardized KPI definitions. Centralized calculation logic. Defined KPI ownership and accountability. Consistent reporting structures across the organization. Outcomes Improved reporting accuracy. Reduced ambiguity in KPI interpretation. Increased trust in business data. Enhanced decision-making confidence. Business Impact and Measurable Benefits The impact was significant: Reduced manual reporting effort. Improved data accuracy and consistency. Faster access to business insights. Better executive decision-making. Enhanced cross-functional visibility. Scalable foundation for future analytics initiatives. Final Thoughts Organizations today don't need more reports they need better visibility into the data they already have By combining Microsoft Fabric and Power BI, businesses can move beyond fragmented spreadsheets and disconnected systems to create a modern, automated KPI platform that supports real-time reporting, data governance, and strategic decision-making. The result is not just a dashboard, but a scalable business intelligence solution that turns data into action.  

Microsoft Fabric Guide: Lakehouse & Warehouse Explained
Apr 09, 2025 7 min read

In the world of cloud data management, Microsoft Fabric is a game-changer. With its advanced architecture, Fabric has revolutionized the way businesses ingest, manage, and analyze their data. One of the key concepts within Microsoft Fabric is the integration of two powerful components: the Lakehouse and the Warehouse. Together, these components offer a seamless data journey, from raw ingestion to business-ready insights. To understand Microsoft Fabric fully, let’s dive deeper into these components and how they work together. Whether you're a data engineer, data scientist, or business analyst, mastering these elements will help you unlock the full potential of your data infrastructure.   Let's explore with examples used in everyday life: Imagine a large lake gathered water from many sources rainfall, small streams, and canals. Nearby, a government facility treated the water, making it safe to drink. Once purified, the clean water was pumped to a tall overhead tank at the edge of the village. From there, it flowed through pipes, reaching every home with ease. The entire village depended on this silent, steady system. Though the sources were many, the journey ensured every drop became pure, purposeful, and ready to serve.  The same process follows in Fabrics to ingest and orchestrate data in fabric.  In Lakehouse, data flows in from various sources such as files, on-premises databases, cloud platforms, ERP systems, CRM systems, and real-time streaming sources. Once collected, an ETL (Extract, Transform, Load) process is applied to clean, transform, and shape the data before storing it in the Warehouse. After the data is organized and stored, different teams begin to utilize it Data Engineers manage and maintain pipelines, Data Scientists explore and model the data, and Business Intelligence teams access the data through the Warehouse for reporting and analytics .   The same process follows in Fabric, and it’s called Medallion Architecture in fabrics: 1. Bronze Layer (Raw Data): Lakehouse  Purpose: Capture raw, unprocessed data from source systems.  Steps:  Ingest data from external sources like databases, APIs, files, etc.  Store this data as-is in the Lakehouse.  Use tools like Dataflows Gen2, Pipelines, or Notebooks to bring the data in.  No transformation or filtering is applied.  2. Silver Layer (Cleaned & Enriched Data): Lakehouse  Purpose: Cleanse and structure the data for analytical use.  Steps:  Process the Bronze data to remove duplicates, handle missing values, and apply schema.  Join with dimension/reference tables as needed.  Enrich the data to make it more meaningful for downstream use.  Store this processed data as new tables within the Lakehouse.  3. Gold Layer (Business-Ready Data): Warehouse  Purpose: Serve curated, aggregated data for business reporting and analysis.  Steps:  Summarize and aggregate the silver layer data into KPIs and metrics.  Create business-friendly tables that are ready for reporting and dashboards.  These Gold tables can:  Stay in the Lakehouse and be used directly in Power BI via Direct Lake.  Or be loaded into the Warehouse for high-performance SQL querying and business intelligence.    Let’s Understand Technical terminology:  1. Lakehouse   Lakehouse is a modern data architecture that combines features of both data lakes and data warehouses. It allows you to store structured, semi-structured, and unstructured data in a single location (OneLake) using open formats like Delta Lake.  Key Features:  Stores data in Delta Parquet format.  Supports big data workloads (e.g., ETL, data science, AI).  Used with tools like Spark, notebooks, and Dataflows Gen2.  Good for data engineering and data science scenarios.  Integrates with Power BI for reporting.  When to Use:  You need to store raw and curated data together.  You’re building ETL pipelines, machine learning models, or data science workflows.  You want open-format storage and flexibility.  2. Warehouse in Microsoft Fabric  A Warehouse (aka Fabric Data Warehouse) is a relational data store optimized for structured data and analytical queries (T-SQL). It’s more like a traditional SQL-based data warehouse, built on a high-performance distributed engine.  Key Features:  Stores data in tables with schemas.  Supports full T-SQL querying, joins, stored procedures, etc.  Used mainly for business intelligence and reporting.  Best for structured, governed data.  When to Use:  You have cleansed, structured data.  Your users are analysts working with SQL and Power BI.  You need fast, reliable performance for dashboards.   Final Thoughts:  Microsoft Fabric’s architecture elegantly mirrors a natural water system. With its Lakehouse and Warehouse working in tandem, it empowers organizations to ingest, transform, and serve data efficiently and intelligently. Whether you're building pipelines or dashboards, understanding these components is your first step to mastering the Microsoft Fabric ecosystem.    Need Help Implementing Microsoft Fabric?  At MagnusMinds, we specialize in building end-to-end data solutions using Microsoft Fabric. Whether you're just exploring or need help setting up your Lakehouse, Warehouse, or Power BI dashboards, our team of certified experts can guide you every step of the way.  Why MagnusMinds?  Proven experience with Microsoft Fabric and Power BI  Custom data strategies tailored to your business needs  End-to-end implementation and ongoing support  Ready to unlock the full potential of your data?  Contact Us Today or email us at [email protected] to schedule a free consultation.    FAQs: 1. What is Microsoft Fabric and how does it work? Microsoft Fabric is a cloud-based data platform that integrates various components like Lakehouse and Data Warehouse to provide a seamless data journey. It allows businesses to ingest, transform, and analyze data with high performance, enabling data engineers, scientists, and analysts to make informed decisions. 2. How does the Medallion Architecture work in Microsoft Fabric? The Medallion Architecture in Microsoft Fabric organizes data into three layers: Bronze Layer: Raw data ingestion from various sources. Silver Layer: Cleansed and enriched data for analytical purposes. Gold Layer: Aggregated and business-ready data for reporting and dashboarding. This architecture ensures a streamlined data processing flow for businesses. 3. What is the difference between a Lakehouse and a Data Warehouse in Microsoft Fabric? A Lakehouse combines the features of data lakes and data warehouses, storing structured, semi-structured, and unstructured data. A Data Warehouse focuses on structured data, optimized for fast SQL querying and reporting. The Lakehouse is used for raw and curated data, while the Warehouse is ideal for structured data and business intelligence. 4. When should I use Microsoft Fabric’s Lakehouse over a Warehouse? Use the Lakehouse when you need to store raw, semi-structured, or unstructured data alongside curated data for analysis. It is ideal for ETL processes, machine learning models, and data science workflows. The Warehouse is better for structured, cleansed data used in business intelligence and reporting scenarios. 5. How does Microsoft Fabric improve the efficiency of data management? Microsoft Fabric simplifies the data management process by combining data ingestion, transformation, and reporting in one platform. The integration of Lakehouse and Warehouse enables businesses to streamline data pipelines and improve decision-making with actionable insights. 6. Why should I choose MagnusMinds for implementing Microsoft Fabric? MagnusMinds specializes in building end-to-end data solutions with Microsoft Fabric. Our team of certified experts can guide you through setting up the Lakehouse, Data Warehouse, and Power BI dashboards, providing tailored strategies that align with your business goals. 7. How does MagnusMinds help businesses optimize data workflows? At MagnusMinds, we design custom data solutions that integrate Microsoft Fabric’s Lakehouse and Warehouse components. Our expertise ensures seamless data transformation, enabling businesses to gain insights quickly and efficiently. We handle everything from data pipelines to business intelligence reporting. 8. What kind of support does MagnusMinds provide after Microsoft Fabric implementation? MagnusMinds offers comprehensive ongoing support after implementing Microsoft Fabric. From troubleshooting to optimizing data pipelines and reporting, our team ensures your data ecosystem runs smoothly and evolves as your business needs grow.