Forum Discussion
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?
6 Replies
- sandeephijamHelper I
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
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 , 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!
- tayloramySuper User
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. - reddyr2502New Member
Please recommend the folder and subfolder structures to differentiate between all layers.
- spaceman127Super User
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
spaceman127Feel free to leave kudos or accept it as a solution. This will also help other community members.