Skip to main content

Delta Analyzer

Preview Feature

The Delta Analyzer is a preview feature. You need to turn it on in Options > Preview > Delta Analyzer > Show Delta Analyzer before the ribbon button appears.

Because this feature is still in preview the user interface may change before the final release.

When you are tuning a Direct Lake semantic model, a lot of what drives the performance you see in DAX Studio is not actually in the model - it is in the Delta tables sitting underneath it. How many parquet files a table is spread across, how large the row groups are, whether V-Order was applied when the files were written, and whether rows have been soft deleted with deletion vectors all affect how quickly Direct Lake can transcode and scan a column.

The Delta Analyzer reads that metadata directly from the Delta log and parquet footers in OneLake and presents it per table and per column, so you can see it alongside the DAX query performance you are already measuring in DAX Studio.

Requirements

The Delta Analyzer is designed for Direct Lake semantic models - it reads the _delta_log folder and the parquet files that sit behind each table. Running it against an Import or DirectQuery model will not return any delta metadata.

The Delta Analyzer button appears on the ribbon as soon as the preview option is enabled. If you click Analyze while connected to something other than a Direct Lake model, the pane simply reports that there is no data to show.

The files are read from OneLake using the identity you signed in with, so you also need OneLake data access to the underlying Lakehouse or Warehouse item. If you do not, the affected tables are tagged as Access denied in the results (see Access denied below).

Running an analysis

Enable the feature in the options, then connect to a Direct Lake model and choose Delta Analyzer from the Metrics group on the Advanced ribbon tab.

Click Analyze to start reading the metadata. Large models can take a little while, so a progress indicator is shown while the analysis runs and you can click Cancel to stop it.

Analysis options

The following options are available before you run the analysis. Turning options off makes the analysis faster, at the cost of some detail.

OptionDefaultDescription
Read parquet footersOnReads the parquet file footers to determine row group counts and V-Order. This is the slower part of the analysis - turning it off leaves the row group and V-Order columns blank
Read column statsOnAggregates the per-column compressed and uncompressed sizes from the parquet footers
Show row group detailsOffAdds an expandable Row Groups node under each table showing per-row-group row counts and sizes
OneLake path override(blank)Optional. Lets you point the analyzer at a specific table folder, or at the .../Tables root that is used to rebuild the paths when automatic resolution fails

The OneLake path override accepts either a .../Tables root or a full path to a single table folder, for example:

https://onelake.dfs.fabric.microsoft.com/{workspace}/{lakehouse}/Tables

You should not normally need this - DAX Studio resolves the OneLake paths from the model metadata. It is there for the cases where a model points somewhere the automatic resolution cannot follow.

Reading the results

The results are shown on the Metrics tab as a tree with one row per table, which you can expand to see the individual columns (and the row groups, if you enabled that option).

ColumnLevelDescription
Table / ColumnBothThe name of the Delta table, or of the column within it
ConsiderationsTableAn icon and count of the potential considerations found for the table. Hover over the icon to see the titles
FilesTableThe number of active parquet files that make up the table
Avg FileTableThe average size of those files
Max FileTableThe size of the largest file
Small FilesTableHow many of the files are smaller than 128 MB
Row GroupsBothThe number of parquet row groups. Direct Lake frames row groups directly, so these become the segments it scans
Min Rows/RGTableThe row count of the smallest row group
Avg Rows/RGTableThe average number of rows per row group
Max Rows/RGTableThe row count of the largest row group
SegmentsTableA pill summarising how healthy the segment sizing is - a green ok, or an amber small when the row groups are smaller than the target size. Hover over the amber pill for details
RowsTableThe total number of rows
CompressedBothThe compressed (on disk) size
UncompressedBothThe uncompressed size
CodecColumnThe parquet compression codec used for the column
EncodingColumnThe parquet encoding used for the column
V-OrderTableWhether V-Order was applied when the files were written. Shown as a green v-order pill when enabled
Deletion VectorsTableWhether any rows have been soft deleted, and how many
Liquid ClusteringTableWhether liquid clustering is enabled, shown as a liquid pill
Clustering ColumnsTableThe columns the table is clustered by
Partition ColumnsTableThe columns the table is partitioned by
Last ModifiedTableWhen the table was last written to
ErrorTableAny error encountered while reading the metadata for the table
info

V-Order can only be reported when Read parquet footers is enabled. If the analyzer cannot positively identify V-Order in the file footers it reports it as Unknown rather than No.

Access denied

If the analyzer gets an HTTP 403 while reading a table's _delta_log or parquet files, that table is tagged Access denied rather than showing metrics. This normally means OneLake Security is restricting access to the underlying item - a workspace admin needs to grant you OneLake data access before the table can be analyzed.

Considerations

The Considerations tab aggregates the guidance for every analyzed table into a single read-only document, grouped by table. These are potential considerations based on the metadata that was read - they are guidance rather than hard best practices, and the right answer always depends on your data volumes and query patterns.

You can copy the considerations to the clipboard as Markdown, or export them to a .md / .txt file, using the buttons on that tab.

See Delta Analyzer Considerations for a description of each one and the thresholds that trigger it.

Exporting the analysis

The Export CSV button writes the current analysis - tables, columns, and any visible row groups - out to a CSV file. The export includes a Considerations column listing the titles of the considerations found for each table.

Privacy

The Delta Analyzer calls the Fabric REST API to resolve the OneLake location of the Direct Lake tables, and then reads the Delta log and parquet footers from OneLake over HTTPS. Both calls use the Entra ID identity you are already signed in with. No data is sent anywhere else - only file and column metadata is read, not the contents of the tables.