Forum Discussion

tyro_ploter's avatar
tyro_ploter
Frequent Visitor
9 months ago
Solved

Best Practices for Implementing Multiple Semantic Models in the Gold Layer

I have the following paradigm. I am using a medallion architecture that goes up to the Silver layer. Each layer (Bronze, Silver, and the upcoming Gold) resides in a separate workspace.

Now, I need to build the Gold layer so that there are separate semantic models for each use case. Each model must have separate access policies. Some models are identical and differ only by a filter, while some tables are shared across all models.

  • How can this paradigm be implemented using Microsoft Fabric?
  • Do I need to create a separate warehouse for each semantic model?
  • Can some models use the Silver layer tables directly?
  • Is it possible to combine different semantic models across workspaces?
  • What are the recommended approaches to secure semantic models, such as row-level or object-level security, and how do these interact with workspace permissions?

Thank you in advance for your guidance and best practices.

  • Hi tyro_ploter  first of all, best of lucks with your project! I'll answer your questions with an understanding that, perhaps environmental factor at your end may requering some adjustments to best practices 😅 ... here I go: 

     

    #1. Do I need to create a separate warehouse for each semantic model?

    No, you do not need a separate warehouse for each semantic model, it better to create multiple semantic models from a single warehouse or lakehouse, especially if the underlying data is shared!  Use views or filtered tables to differentiate models when needed, this reduces duplication and will simplify maintenance.

     

    #2. Can some models use the Silver layer tables directly?
    Yes, models can use Silver layer tables directly, especially if you're using DirectLake mode, you can create shortcuts in your Gold Lakehouse pointing to Silver tables across workspaces, allowing semantic models to query them without copying data,  but perhaps the question is more like "sould I use the Silver layer tables directly in the model" ... ahhh different, perhaps if you want do follow a very strict medallion arch. not the best approach... but medallion arch. can have multiple interpretations. 

     

    3. Is it possible to combine different semantic models across workspaces?

    Yes, it is possible. You must enable the “Use semantic models across workspaces” tenant setting, once enabled, semantic models can be reused in other workspaces  

     

     

    4. What are the recommended approaches to secure semantic models, such as row-level or object-level security, and how do these interact with workspace permissions?

    Security should be layered:

    • Row-Level Security (RLS): Define roles in the semantic model using DAX filters.  

    • Object-Level Security (OLS): Hide specific tables or columns based on roles. 

    • Workspace Permissions: Workspace roles (Viewer, Contributor, Admin)  

    • OneLake-Level Security: Use security views or masking in the lakehouse/warehouse to enforce data-level security before it reaches the semantic model.

     

    I would appreciate a thumbs-up if you find this information useful and Accept as solution if I address all your questions.

     

    Good luck with your project!!!! All the best 

     

4 Replies

  • Hi tyro_ploter  first of all, best of lucks with your project! I'll answer your questions with an understanding that, perhaps environmental factor at your end may requering some adjustments to best practices 😅 ... here I go: 

     

    #1. Do I need to create a separate warehouse for each semantic model?

    No, you do not need a separate warehouse for each semantic model, it better to create multiple semantic models from a single warehouse or lakehouse, especially if the underlying data is shared!  Use views or filtered tables to differentiate models when needed, this reduces duplication and will simplify maintenance.

     

    #2. Can some models use the Silver layer tables directly?
    Yes, models can use Silver layer tables directly, especially if you're using DirectLake mode, you can create shortcuts in your Gold Lakehouse pointing to Silver tables across workspaces, allowing semantic models to query them without copying data,  but perhaps the question is more like "sould I use the Silver layer tables directly in the model" ... ahhh different, perhaps if you want do follow a very strict medallion arch. not the best approach... but medallion arch. can have multiple interpretations. 

     

    3. Is it possible to combine different semantic models across workspaces?

    Yes, it is possible. You must enable the “Use semantic models across workspaces” tenant setting, once enabled, semantic models can be reused in other workspaces  

     

     

    4. What are the recommended approaches to secure semantic models, such as row-level or object-level security, and how do these interact with workspace permissions?

    Security should be layered:

    • Row-Level Security (RLS): Define roles in the semantic model using DAX filters.  

    • Object-Level Security (OLS): Hide specific tables or columns based on roles. 

    • Workspace Permissions: Workspace roles (Viewer, Contributor, Admin)  

    • OneLake-Level Security: Use security views or masking in the lakehouse/warehouse to enforce data-level security before it reaches the semantic model.

     

    I would appreciate a thumbs-up if you find this information useful and Accept as solution if I address all your questions.

     

    Good luck with your project!!!! All the best 

     

    • tyro_ploter's avatar
      tyro_ploter
      Frequent Visitor

      Thank you so much for the detailed and well-structured answer — it really clarifies a lot of design decisions for us.

       

      I have a quick follow-up question:

      • Where would you recommend keeping the engineering logic for the Silver layer — should it live inside the same workspace as Silver, or in a separate “engineering” workspace?

      Thanks again for sharing such a complete and practical answer — really appreciate it!

      • svenchio's avatar
        svenchio
        Icon for Super User rankSuper User

        Hi tyro_ploter,  I'm going to make this asumption

        "engineering logic for the Silver layer"  = all the pipelines and processes requiered for processing data from bronze (raw)  into gold (report-ready) 

        So, if this is correct, there's the "traidional way", that is, having the same workspace all medallion layers (gold, silver and gold), whit the following pros/cons... 

         

        Pros:

        #1 Keeps transformations close to the curated Silver tables.
        #2 Easier lineage tracking from Bronze → Silver → Gold.
        #3 Simplifies governance because workspace roles apply consistently.

        Cons:

        #1 Engineering and analytics teams share the same workspace, which can complicate permissions if you want strict separation.

         

        If governance is lighter and teams collaborate closely, keep engineering logic in the Silver workspace for simplicity.