Forum Discussion
Directlake semantic model, calculated table
- 11 months ago
Hi Anonymous : I recommend checking the ticket below, as it might address your concern. There were some design updates introduced to improve performance and ensure consistency across Fabric.
Thanks.
Hi MJParikh ,
Thanks for your information on this. It's really helpful.
While I have questions regarding to your below Point:
The semantic model is now using a mode or property where calculated tables are disallowed (for example, “Direct Lake storage mode” on some sources).
Can you explain this in more detail? My directlylake semantic model was build on my lakehouse, all the tables are directly added from it, when can I check the storage mode? How can I change it? See below screenshot, the "add table" option is now grayed out.
Best Regards.
Tiger
Hi Anonymous,
I have added the details below. Which explains the details and reason and how you can resolve it.
Why is “Add Table” grayed out?
Your screenshot shows a Direct Lake semantic model connected to a Lakehouse. In Direct Lake mode, the semantic model queries the Parquet files in your Lakehouse directly, without importing data into Vertipaq memory. This makes queries faster and reduces refresh needs. But the trade-off is some features, like calculated tables, are disabled.
Calculated tables require the engine to materialize new data structures in memory. Direct Lake mode is designed to avoid materialization and keep everything “on demand” from the Lakehouse. Because of this, Microsoft disables certain features in Direct Lake models, including:
Calculated tables
Some row-level security functions
Some complex DAX constructs that require Vertipaq storage
That’s why the New Table option is grayed out in your ribbon.
How to check storage mode?
You can verify the storage mode for each table:
Open your model in Model view.
Select a table.
In the Properties pane, look for Storage mode.
If it says Direct Lake, the table is bound directly to the Lakehouse parquet files.
You might also see DirectQuery or Import for other tables if mixed modes are present.
How to change it?
There are a couple of paths:
Switch table(s) to Import mode
Right-click the table, and choose Storage mode → Import.
This will pull the data into Vertipaq, which enables calculated tables, but you lose the “always fresh” Direct Lake behavior.
Switch the entire model to Import mode
If your model must have calculated tables, set all tables to Import.
Refresh is then required to keep data in sync.
Hybrid approach
Some tables are in Direct Lake, others in Import.
Only tables in Import support calculated tables. Direct Lake tables won’t.
Recommendation
If you need calculated tables for transformations or staging, move those specific tables into Import mode and keep the rest in Direct Lake for performance. Microsoft’s current guidance is that Direct Lake is intended for performance at scale, not for heavy in-model transformations. For complex modeling, do the shaping in your Lakehouse or a Dataflow Gen2, then connect through Direct Lake.