jargon

Comparison

Predicate pushdownvsRow group

Predicate pushdown

the where-clause is handed to the file reader, which uses the min and max in each chunk's footer to skip most of them unread.

Pushing a query's filters down to the storage layer so entire blocks can be excluded before decoding. Its effectiveness depends entirely on physical layout: min/max statistics only help if the filtered column is correlated with the file's ordering, which is why sorting on the column you filter by is worth more than most query tuning. When someone says a filter 'did nothing for cost', this is the mechanism that failed.

Full entry →

Row group

the file is split into blocks of a hundred and twenty-eight megabytes, each with its own min and max per column.

The unit of horizontal partitioning inside a columnar file, holding a range of rows across all columns along with per-column statistics. It is the unit of skipping and the unit of parallelism, so its size sets both how precisely a reader can avoid data and how evenly work spreads. Very small row groups defeat the statistics and add overhead; very large ones mean reading far more than the query needed.

Full entry →

Related comparisons