@gowri_databrick
This is a good concept to understand before going bit deeper into delta optimization.
Data skipping is delta lake optimization technique where the query engine uses file level statistics stored in delta transaction log to avoid reading files that doesn't contain data required by the query.
Whenever any data is written to delta table, it collects file level statistics such as min/max values, null counts, row counts etc. At query time these statistics are checked before the files are opened.
Eg:
File 1: order_date Jan 1โ10
File 2: order_date Jan 11โ20
File 3: order_date Feb 01โ10
Query:
SELECT * FROM orders WHERE order_date = '2026-02-03';
It can skip Files 1 and 2 entirely and read only File 3. That means less storage I/O, less decompression, less CPU usage, and faster query execution.
The effectiveness of data skipping also depends on how data is physically organized in the storage. If every file contains dates spanning the entire year, the min/max ranges overlap and very little can be skipped here.
That's why Databricks recommends Liquid Clustering (LC) for new tables. Clustering co-locates similar values, such as order_date or customer_id, into fewer files so that data-skipping statistics become more selective. Can find more insights into LC here.
For UC managed tables, predictive optimization can further help by automatically running operations such as OPTIMIZE and ANALYZE, collecting useful statistics and improving file layout over time.
If required, can also explicitly choose columns for skipping statistics:
ALTER TABLE orders
SET TBLPROPERTIES ( 'delta.dataSkippingStatsColumns' = 'order_date,customer_id' );
Then trigger re-computing of existing data with:
ANALYZE TABLE orders COMPUTE DELTA STATISTICS;
To summarize: Data skipping reduces the amount of data the query engine needs to read before normal row-level filtering even starts. So, the optimization flow looks like:
Good file layout / clustering โ useful file-level statistics โ more files skipped โ less data scanned โ faster queries with lower I/O and compute usage. More insights on Data skipping here