In my recent Microsoft Fabric training, I’ve been explaining the difference between the Direct Lake on OneLake and Direct Lake on SQL, as two flavors of Direct Lake semantic models. If you are not sure what I’m talking about, please start by reading this article. The purpose of this post is not to examine the differences between these two versions, but rather to clarify some nuances that might occur. One of the questions I got from participants in the training was:

“How do we KNOW if the Direct Lake semantic model is created as a Direct Lake on OneLake or Direct Lake on SQL model?”

Fair enough, so let’s dig deeper and understand how to determine the real flavor of your Direct Lake models…

#Option 1: TMDL View in Power BI Desktop

Honestly, the TMDL view in Power BI Desktop is one of the game-changing features! In this particular example, we will leverage the TMDL view to find out if our model is using the OneLake or SQL option.

From Power BI Desktop, I connected to the published semantic model named CMS_DL_OL and chose to edit the model. This model was created as a Direct Lake on OneLake model. Once I drag the model definition to the TMDL view, all the way at the bottom, look for the expression property:

If the M expression refers to AzureStorage.DataLake, it’s a Direct Lake on OneLake model.

On the flip side, when you open the Direct Lake on SQL model, the expression will look different:

Instead of the Direct Lake and lakehouse name that we had in the previous case, now the expression refers to the DatabaseQuery, and includes connection details of the SQL Analytics Endpoint of the lakehouse.

#Option 2: Tabular Editor

Tabular Editor is an amazing tool! I already wrote a couple of articles describing how to leverage Tabular Editor in various scenarios, either to complete tasks that are not natively supported by Power BI Desktop, or to complete certain supported tasks in a more efficient way compared to Power BI Desktop.

In this case, let’s examine how Tabular Editor may help us to identify if the Direct Lake model is OneLake or SQL. You can use both Tabular Editor 2 (a free version of the product) and Tabular Editor 3 (a paid version).

In the Shared Expressions node of the model, you’ll find the same information as previously in the TMDL view.

Hence, whenever the shared expression contains DirectLake, this means that the model is based on OneLake.

On the flip side, when the expression is a DatabaseQuery, as you may notice in the illustration below, the model is SQL-based:

What about Fabric Warehouse as a data source?

In the previous examples, we’ve seen the differences between semantic models created on top of the Fabric Lakehouse. The fair question would be: what happens if we use the Fabric Warehouse, since the warehouse doesn’t provide a SQL Endpoint in addition?

To cut a long story short: everything works exactly the same as with lakehouses. Although the SQL Endpoint of the warehouse is not “visible” as a separate item (like with lakehouse), they are built in the warehouse itself. So, the expression property will follow the same logic as with lakehouses.

Thanks for reading!

Last Updated on October 20, 2025 by Nikola

Spread the music: