<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=612681139262614&amp;ev=PageView&amp;noscript=1">
Skip to content

Need help? Talk to an expert: phone(904) 638-5743

Creating Your First Semantic Model in Microsoft Fabric!

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.

  1. Drag and drop fields to create relationships
  2. Verify cardinality such as one to many or many to one
  3. 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.

  1. Create a blank table using Get Data
  2. Use it only for measures
  3. 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

Leave a comment

Free Community Plan

On-demand learning

Most Recent

private training

Hackathons, enterprise training, virtual monitoring