Runtime Filtering

Runtime filtering improves query performance by dynamically applying dimension table filters to joined fact tables. By default, runtime filtering is enabled for partitioned columns and disabled for non-partitioned columns.

To enable runtime filtering for both partitioned and non-partitioned columns:

  • Enable both the planner.filter.runtime_filter and exec.non_partitioned_parquet.enable_runtime_filter support keys.

To disable runtime filtering for both partioned and non-partitioned columns:

  • Disable the planner.filter.runtime_filter support key.

Runtime Filtering Example

The following query joins multiple partitioned and non-partitioned columns:

  • Partitioned columns: ptcol1, ptcol2
  • Non-partitioned columns: regcol1, regcol2
select 
   t1.ptcol1, t1.ptcol2, 
   t1.regcol1, t1.regcol2, 
   t1.regcol3, 
   t1.othcol, t2.t2col 
from table1 t1 inner join table2 t2 on 
    (t1.ptcol1 = t2.ptcol1 and t1.ptcol2 = t2.ptcol2 and 
     t1.regcol1 = t2.regcol1 and t1.regcol2 = t2.regcol2)
where t1.regcol3 = "highly_selective_val";