The Standalone Copilot Experience | Copilot in Fabric Tutorial
Creating Your First Semantic Model in Microsoft Fabric!
In this training walkthrough, Nick Lee from Pragmatic Works demonstrates how to create a semantic model from scratch using Microsoft Fabric. The session focuses on transforming prepared data stored in a Fabric workspace into a well structured semantic model that can be used for reporting in Power BI. Nick explains not only the technical steps, but also best practices that help ensure long term usability, performance, and maintainability.
Understanding the Role of a Semantic Model
Nick begins by explaining where semantic models fit into the Microsoft Fabric ecosystem. Many organizations already have data ingested into Fabric through lakehouses, warehouses, data pipelines, notebooks, or dataflows. While the data may be clean and ready, it cannot be effectively reported on until a semantic model is created. The semantic model acts as the logical layer that defines relationships, calculations, and security rules that Power BI reports rely on.
- Semantic models enable reporting on Fabric data in Power BI
- Multiple semantic models can exist for the same lakehouse or warehouse
- They allow relationships, DAX measures, and row level security to be defined
Creating a New Semantic Model
Working inside an existing Fabric workspace, Nick walks through the process of creating a new semantic model. He demonstrates how to create a new item, select Semantic Model, and choose a data source. In this example, the data already resides in a lakehouse, so he selects OneLake catalog and connects to an existing Adventure Works lakehouse.
Nick emphasizes the importance of naming conventions. He assigns a clear name that includes the subject area and his initials, which helps avoid conflicts in shared environments and supports collaboration.
Selecting Tables and Building Relationships
Once connected, Nick selects a small set of tables to keep the example focused, including a date table, an internet sales fact table, and a customer dimension table. After the semantic model is created, he switches to the model view, which looks familiar to Power BI users.
- Drag and drop fields to create relationships
- Verify cardinality such as one to many or many to one
- Confirm direction and ensure relationships are active
Nick points out an important difference between Fabric semantic models and Power BI Desktop. In Fabric, there is no preview of table data when creating relationships. Because of this, users must already understand their data model and verify relationships carefully.
Handling Data Type Issues
During relationship creation, Nick encounters a common issue where the data types between related columns do not match. Fabric prevents the relationship from being saved until the issue is resolved. Rather than modifying the underlying lakehouse data, Nick demonstrates a quick fix by changing the column data type directly within the semantic model.
He stresses that while this approach works for demonstrations or temporary fixes, production solutions should ideally resolve data type issues at the source through pipelines, dataflows, or SQL transformations.
Editing Tables and Refreshing Metadata
Nick shows how tables can be added or removed from the semantic model at any time using the Edit Tables option. This allows flexibility as reporting requirements evolve. He also explains the importance of refresh options:
- Refreshing to detect new tables added to a lakehouse or warehouse
- Refreshing schema changes such as newly added columns
- Understanding cache behavior in semantic models
Cleaning Up Names and Organizing the Model
Before building calculations, Nick cleans up table and column names to make the model more user friendly. These changes only affect the semantic model and do not alter the underlying data. Clear naming improves report readability and reduces confusion for business users.
Building a Measures Repository
One of the key best practices Nick highlights is the use of a measures repository. Instead of creating calculated tables, he creates a blank table solely for storing DAX measures. This approach keeps measures organized and separate from data tables.
- Create a blank table using Get Data
- Use it only for measures
- Delete placeholder columns to convert it into a measures repository
Nick demonstrates creating a simple Total Sales measure and organizing it into folders, making the model easier to navigate as it grows.
Configuring Row Level Security
The final topic Nick covers is row level security. Using the Manage Roles option, he creates a role that filters data based on sales territory. Once configured, users or security groups can be assigned to the role. This security configuration applies to all reports built on top of the semantic model.
Nick concludes by showing how semantic models can be managed from the workspace, including refreshing, analyzing in Excel, and switching between viewing and editing modes. He emphasizes that creating a solid semantic model is often the final and most critical step before building reports, ensuring data is accurate, secure, and ready for business users.
Don't forget to check out the Pragmatic Works' on-demand learning platform for more insightful content and training sessions on Fabric and other Microsoft applications. Be sure to subscribe to the Pragmatic Works YouTube channel to stay up-to-date on the latest tips and tricks.
Sign-up now and get instant access
ABOUT THE AUTHOR
Nick has been a dedicated trainer and consultant since 2018, leveraging his extensive experience working with major companies, including Fortune 200 corporations, professional sports organizations, government entities, and leading firms in the finance and healthcare sectors. With a specialized focus on Power BI and data engineering, Nick has consistently demonstrated his ability to drive data-driven decision-making and optimize business processes. His commitment to excellence and his in-depth technical expertise have made him a trusted advisor and sought-after expert in the industry.
Free Community Plan
On-demand learning
Most Recent
private training

Leave a comment