Forum Discussion
How to create a new semantic model based on existing one on OneLake?
- Anonymous11 months ago
Hi jaryszek ,
Thank you for reaching out to the Microsoft fabric community forum.
Copying a semantic model:
Currently, Fabric does not offer a one-click feature to duplicate a semantic model. However, you can do this by downloading the semantic model as a .pbix file in Power BI Desktop and then re-publishing it to another workspace. Another option is to use deployment pipelines in Fabric to move semantic models between workspaces, which creates copies for various environments or customers. If your model uses OneLake data, you might also parameterize it so each copy references a different customer’s data.
Versioning of semantic models:
Semantic models do not include built-in version control features. It is best to use Fabric’s Git integration to manage these models in source control. You can export models with Tabular Model Definition Language (TMDL) or Tabular Editor, save them in a Git repository, and monitor changes as you would with code. Deployment pipelines are also useful for managing the lifecycle across Dev, Test, and Production environments.
Reference: Overview of Fabric Git integration - Microsoft Fabric | Microsoft Learn
Versioning for reports:
Just like semantic models, reports can be versioned by integrating with Git or storing .pbix files in source control. Deployment pipelines help ensure reports are consistently moved between environments with the correct version, keeping them aligned with the semantic models they rely on.
Reference: Overview of Fabric deployment pipelines - Microsoft Fabric | Microsoft Learn
Common semantic model with customer-specific extensions:
One effective strategy is to develop a shared or “hub” semantic model that includes all common elements such as measures, dimensions, and facts. For each customer, you can then build thin semantic models that reference the shared model and incorporate any customer-specific schema modifications or additional logic. This approach minimizes duplication, maintains consistent business logic across customers, and supports necessary customization.
Supporting customers via app architecture:
If customers would like you to handle everything from a central location, you can create and manage the semantic model within your workspace and share reports using Power BI apps. These apps offer a secure way to package and distribute semantic models and reports to customer groups. For better isolation, you can set up separate workspaces and apps for each customer, which also helps you manage permissions and updates more easily.
Reference: Publish an app in Power BI - Power BI | Microsoft Learn
Supporting customers with their own tenant and OneLake:
Currently, direct semantic model sharing is not available in cross-tenant scenarios. To address this, you can either export and deploy the semantic model into the other tenant, or use OneLake shortcuts to share data between tenants, enabling customers to build their own semantic models using your data. Alternatively, you can provide your model definitions (such as .pbix or TMDL files) so they can be deployed in the customer’s Fabric environment under a managed service agreement.
Reference: Unify data sources with OneLake shortcuts - Microsoft Fabric | Microsoft Learn
Hope this helps, please feel free to reach out for any further questions.
Thank you.
Hi jaryszek ,
You're correct, thin semantic models only support adding new measures, not changing the schema or relationships. If you need to modify relationships or structure for each customer, it's best to create a separate semantic model for every customer. You can do this by exporting the baseline model as a .pbix or .pbip file and re-publishing it, or by managing definitions using TMDL or Tabular Editor in Git.
Each customer-specific model can still connect to your OneLake Lakehouse or Warehouse (including shortcuts), so you keep the benefits of OneLake while being able to customize the schema as needed.
Thank you.