Semantic models (formerly datasets) in Microsoft Fabric are essential for you to get value from your data, both in large enterprise scenarios and smaller, self-service analytics. Semantic models provide a powerful, performant, and secure way to use data to answer business questions from different client tools. But what exactly is meant by the term semantic model? How is a semantic model different from other Fabric items? Furthermore, how can you make a good semantic model, effectively?
In this article, we break through the technical jargon to understand what a semantic model is, why it’s important, and how it’s made.
In subsequent articles of this series, we examine each step along the path to build a semantic model, explaining key considerations for each step. We’ll also describe how you can best achieve success in creating a semantic model by using Power BI Desktop and/or Tabular Editor 3.
A semantic model isn’t a new concept. In fact, it’s something that’s been in the data world since 1976 (J.H. ter Bekke) and 1977 (Hammer & McLeod), nearly half a century ago. This concept hasn’t been hiding in the proverbial data bushes the last 50 years, either. Since then, the term has arisen in various applications, products, and theory. The semantic model isn’t new to Microsoft BI, either. It already existed within SQL Server Analysis Services in 2012 (with the BISM).
Chances are, most BI professionals have heard the terms semantic model or semantic layer, before. However, for many people, this is a new and quite confusing technical term. This is true particularly for the many Power BI users who come from backgrounds outside of BI and computer sciences (and it’s reasonable to hypothesize that these users represent the vast majority of people who use Power BI).
NOTEBecause of the rich history of the semantic model, there are many variations and nuances of its definition and interpretation. In this series, we’ll focus on a simple, non-pedantic definition as it applies to the semantic model Power BI item. |
Since semantic model is a technical term, it makes sense to break it down and understand why we use that term at all.
To summarize, in a semantic model, we understand each “piece” of data in the context of its business meaning. For instance, each row can represent a sales transaction, to which we can map additional attributes (i.e. products) or calculations (i.e. total gross sales).
When we create a semantic model, we take data and translate meaning with the tables we define, the relationships we make, and the DAX measures we author.
NOTEIn addition to the semantic model, or semantic layer, you may also hear metrics layer or reporting layer. These refer to separating the model (like tables, relationships, and core aggregations) from calculation logic (like DAX measures used in visuals). This isn’t an official concept or item in Power BI, but can be interesting to think about (i.e. when considering composite models and separating report-specific objects from core model objects). |
Even before they were re-named, Power BI datasets were semantic models. They’re semantic models because a user can:
This is also illustrated in the model diagram in Power BI and Tabular Editor 3. The diagram is an abstraction that represents the real-world meaning in the model. An abstraction simply means that it doesn’t show the data, but a collection of named attributes (like columns) that’re organized (into tables) and with visual relationships.
Power BI semantic models have always played a fundamental role in a Power BI solution. In Fabric, however, they become even more important.
Traditionally, a semantic model represents the last stop for data along its journey once it’s extracted, transformed and loaded into a database. Typically, the semantic model serves business users either through centralized reports or client tools that query the model. In Fabric, the semantic model is both the engine and GPS of the car driven by business users. They use this car when they’re seeking some data destination; when they try to answer business questions or solve business problems.
Since the semantic model usually faces the business directly, it plays a critical role in how organizations get value from their data. This is particularly true with Fabric. In Fabric, semantic models are used by different workloads catering to many unique personas, each of whom have their own questions or use-cases to address.
Given the integral role of a semantic model in Fabric, it’s essential that your models are well-designed, implemented, adopted, and governed.
NOTEWhile the traditional dogma is that a semantic model is the “last stop” for data, in the real world, this is not always the case (even if it’s not a best practice). Examples include:
|
When creating a data solution that relies on a semantic model, you want to ensure that the model fulfils some key criteria. Specifically, a quality semantic model should be:
To ensure a quality semantic model, you typically follow a set of standard, iterative steps.
When creating your semantic model, you typically follow a consistent series of steps. These steps mark the birth of the semantic model, before it enters the content lifecycle.
In the following articles of this series, we go through the steps to make your model, providing tips applicable to both enterprise and self-service models. In these articles, we’ll also explain how you can best use both Power BI Desktop and Tabular Editor in this step of the model development process, including C# scripts in Tabular Editor that can streamline or automate aspects of your development.
A semantic model provides meaning and context for data. We provide this meaning and context when we define model objects, their relationships, and calculations. In Fabric, semantic models are integral elements of your data and BI solutions. It’s important that you create quality semantic models.
Pingback: Connect to and transform data for a semantic model – Tabular Editor Blog
Pingback: Prepare your data for a semantic model – Tabular Editor Blog
Pingback: Gather Requirements for Semantic Models – Tabular Editor Blog
Pingback: Thoughts on Power BI datasets being renamed to semantic models