Take advantage of dictionary pages when performing rowgroup filters in the filter2 API
- Dominant language
- Java
- Stars
- 3.1k
- Forks
- 1.6k
- Avg merge
- 3d 12h
- Merged PRs (30d)
- 33
Description
We currently only filter row groups via the min / max value in the row group.
We should additionally inspect the dictionary of unique values in a row group (if it has one) – this could dramatically increase our ability to drop entire rowgroups.
**Reporter**: [Alex Levenson](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=alexlevenson) / @isnotinvain
**Note**: *This issue was originally created as [PARQUET-40](https://issues.apache.org/jira/browse/PARQUET-40). Please see the [migration documentation](https://issues.apache.org/jira/browse/PARQUET-2502) for further details.*
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by tracing the filter2 API's existing row-group filtering path, which currently uses min/max values. Then inspect how row-group dictionaries and unique values are represented, and determine how they can inform row-group elimination. Done means filters can use available dictionary data in addition to min/max metadata, with coverage for the relevant cases.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- data
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100