Paths Subjects Questions Quizzes Pricing Search
Intermediate Open Pro

Predicate Pushdown Isn't Helping — Diagnose the Layout

A payments table is stored as Parquet, partitioned by payment_date, with healthy file sizes (roughly 300 MB each). A dashboard query filters WHERE payment_date = '2026-08-10' AND merchant_id = 'M-88421'. The payment_date partition pruning works correctly — the engine only scans that day's files — but within those files, the query still reads nearly every row group, and profiling shows almost no row groups get skipped by the merchant_id predicate even though merchant_id has embedded min/max statistics in every row group.

  1. Give the most likely explanation for why merchant_id pushdown isn't skipping row groups, even though the statistics exist.
  2. Propose a concrete fix, and explain what specifically changes about the file layout that makes it work.
  3. A colleague suggests instead partitioning by merchant_id in addition to payment_date, since "partitioning always prunes better than statistics." Evaluate that suggestion given what you know about merchant_id's likely cardinality (tens of thousands of merchants).

Share this question

← Back to File Formats, Partitioning & Storage Layout practice

We use cookies for product analytics to improve OmniAtlas. See our Privacy Policy.