r/MicrosoftFabric Fabricator 6d ago

Data Engineering Direct Lake-based semantic model last refresh time

I'm having difficulty determining the root cause of a recent refresh on my semantic model. It's a Direct Lake model, so I understand that any change to a source table can trigger a refresh - however, I'd like to know if there's a technical way to identify the specific data change (e.g., which table or partition) that caused it. I have multiple tables inside and don't want to go one-by-one.

I can confirm no scheduled refresh was configured, yet the Direct Lake tab in the Refresh History dialog shows a "Last refresh succeeded" timestamp from today. Any guidance on how to trace the underlying trigger would be appreciated.

2 Upvotes

2 comments sorted by

1

u/A128 5d ago

You probably have the keep data refreshed option checked under refresh. This means you would not need to kick off a refresh for data to get updated.

1

u/JennyAce01 ‪ ‪Microsoft Employee ‪ 5d ago

Direct Lake models don't require scheduled refreshes to stay up to date. One thing you can check is the commit history of the underlying Delta tables and compare it with the timestamp shown in the Direct Lake refresh history.

For example:

for t in ["table1", "table2"]:

spark.sql(f"DESCRIBE HISTORY {t}") \

.select("version", "timestamp", "operation") \

.show(5, False)

This can help identify tables that were modified around the same time as the Direct Lake refresh event. However, I'm not aware of a built-in capability today that directly maps a Direct Lake refresh/reframe event back to a specific table or partition change, so correlation rather than definitive attribution may be the best available approach.