Forum Discussion

reddyr2502's avatar
reddyr2502
Regular Visitor
22 days ago
Solved

Folders Structures in workspace

Hi,

I am the only person managing data analytics at a startup. We currently use a single Microsoft Fabric workspace for our Bronze, Silver, and Gold data layers.

What is the best way to organize and clearly distinguish pipelines, notebooks, dataflows, and other artifacts for each layer?

I am considering creating separate top-level folders for Bronze, Silver, and Gold. Could you recommend a practical folder and subfolder structure for each layer that is simple to manage now and scalable for future growth?

 

  • HI reddyr2502​ ,

    It depends on your organization size, for example if your organization is small and there is less potential of future growth, then it is recommended that keep all artifacts in single workspace.

    However, i would strongly recommend creating separate workspaces as mentioned under:

                                 
                                  WS_Dev ----> WS_UAT ----> WS_Prod


    Now in Dev Workspace  you keep all artifacts in the folders like for an example for Lakehouse , use  Lakehouse and for notebooks use Notebooks and so on. 

    Deployment Pipeline:

    Now everything that should move from Dev to UAT & UAT to PROD must be through Deployment Pipelines, a built in feature in fabric premium portal. Thanks 






    Reference: Microsoft


      If this helps, ✓ Mark as Kudos | Help Other



9 Replies

  • Hi  @reddyr2502 , risking to sound a bit cliche, but the best way to organize fabric items is the one that best fit with  your development process, understanding and best support your governance/security requirements and spaceman127 and tayloramy correctly indicated, in this context, I guess the best I can offer is how I organize my workspace and items, and in a way, give you the reason why and, if you like it, you can implement and improve upon it 😉

    If create my workspace using the concept of solutions, that is, all workspaces contain the items that contribute to a solution, and using a naming convention have one workspace per environment like this. 

    Within the solution coordinator, I have folder for each data product within a solution, in this case, the workspace coordinator is meant to coordinate & monitor my fabric ecosystem, within, I have 2 data products, observatory that collects events and inventory of fabric and operations that orchestrate the execution of several data pipelines, hence, each has its folder and a lakehouse that supports data for the whole solution.  

    And zooming to a very specific feature of my observatory data product, I have this folder fabric-inventory witch is a very specific feature that extracts data using a medallion architecture, I use a naming convention as follow. 

    And of course, the pipeline orchestrate the execution of my medallion stages. 

    Perhaps you want to use this approach, it has worked for me pretty well thus far!  😁 Hope at least you find it interesting and useful to discuss and come up with your very own interpretation. 

    Hope for the best mate, and reach out for any questions .... mark as solution and give us a thumbs up! 

  • Hi reddyr2502​ ,

    what you're showing would be one approach.
    It always depends on what your governance/security strategy is.
    Another option would be to organize this into separate workspaces to further differentiate between them.

    As I said, it always depends on what your governance/security strategy looks like.
    I often use exactly what you're showing right now; at the very least, it's sufficient.

    Here is a documentation about Workspaces.

    https://learn.microsoft.com/en-us/fabric/fundamentals/workspaces

    https://learn.microsoft.com/en-us/fabric/fundamentals/workspaces-folders

    I hope that helps.

    Many greetz
    spaceman127

    Feel free to leave kudos or accept it as a solution. This will also help other community members.

  • reddyr2502's avatar
    reddyr2502
    Regular Visitor

    Please recommend the folder and subfolder structures to differentiate between all layers.

  • Hi reddyr2502​,
    It really depends on how you work and how you've structured your environment.

    I've seen one folder per source system before, and then inside that are subfolders for bronze, silver, and gold components. 

    I've also seen the root folders be bronze, silver, and gold, and then in each of those are subfolders for each system. 

    My environment is metadata driven for bronze and silver layers, so there's nothing system specific at that level, I have a folder for some shared functions that I've abstracted away from the main notebooks so they can be reused across layers, and then I have a single notebook for bronze and a single notebook for silver that will read from the metadata tables and load what needs to be loaded. 

    Then at my gold layer I have a top level folder for gold, and inside I have a folder for each resulting data product. 

     

  • Hi reddyr2502​ ,

    Actually, the organization is completely flexible. In the end, it really depends on how you have structured your project and what feels most comfortable for you.

    Personally, I like to separate everything by type and keep the workspace well organized. For example, these are the folders I use:

    • 00_Tools
    • 01_Ingestion
    • 02_Processing
    • 03_Semantics
    • 99_Monitoring

    However, I have also used a structure based on Bronze, Silver, and Gold, with different artifacts organized within each layer, such as Notebooks and Lakehouses, and even a separate folder for reports.

    At the end of the day, there is no single correct structure. The important thing is to work in a way that feels comfortable for you while also making it intuitive and easy to understand for anyone else who might join the project later.

    If this helped, please consider giving it a Like. If it solved your issue, please mark it as the Accepted Solution to help others facing the same problem.

    Thanks

  • Hi reddyr2502​ ,

    As stated by multiple members above, the decision is purely on your business requirement and your focus area. When we say Business requirement we mean :

    • Your security consideration
    • Your access model
    • Your data segregation models
    • User level / department level adoption model of the solution etc.

    So, you can continue with whatever you are building as it is already align to your business requirement but yes there are few area where I would recommend you keep and on like :

    Prefix Maning conventions eg:  PL_ = Pipeline / NB_ = Notebook / DF_ = Dataflow /LH_ = Lakehouse/ WH_ = Warehouse /SM_ = Semantic Model /RP_ = Report

    As I see you can follow the below architecture for reference

    as for the Fabirc deployment we have multiple options/ frameworks as:

    Hope this give you the clarity to make your choice

  • v-aatheeque's avatar
    v-aatheeque
    Icon for Community Support rankCommunity Support

    Hi reddyr2502​ 

    Have you had a chance to look through the responses shared earlier? If anything is still unclear, we’ll be happy to provide additional support.

  • v-aatheeque's avatar
    v-aatheeque
    Icon for Community Support rankCommunity Support

    Hi reddyr2502​ 

    Following up to confirm if the earlier responses addressed your query. If not, please share your questions and we’ll assist further.

  • HI reddyr2502​ ,

    It depends on your organization size, for example if your organization is small and there is less potential of future growth, then it is recommended that keep all artifacts in single workspace.

    However, i would strongly recommend creating separate workspaces as mentioned under:

                                 
                                  WS_Dev ----> WS_UAT ----> WS_Prod


    Now in Dev Workspace  you keep all artifacts in the folders like for an example for Lakehouse , use  Lakehouse and for notebooks use Notebooks and so on. 

    Deployment Pipeline:

    Now everything that should move from Dev to UAT & UAT to PROD must be through Deployment Pipelines, a built in feature in fabric premium portal. Thanks 






    Reference: Microsoft


      If this helps, ✓ Mark as Kudos | Help Other