Columnar pruning: read little, skip much
Columnar pruning: read little, skip much
query: sales per category by weekday, last year (teaching data)
Fact file: one column per lane, blocks below
day READ
pid READ
qty SKIP
amount READ
SKIP
2025 blocks
2024 skipped
2024 skipped
2025 blocks
skipped
partition prune by year, then column prune: 3 of 5 lanes read
Bitmap filter: cat B + wd 2
cat B: 1011 rows
wd 2: 0101 rows
AND = 0001 rows
low cardinality: bitmap wins
Skew and history decide correctness (teaching rules)
skew: one hot product id crowds a sort block, range prune degrades
high-cardinality ids: dictionary + run-length, not raw bitmaps
category moved in June: report uses the category at sale time
slowly changing dimension keeps both old and new labels