apache / apache/iceberg-python
Support optional Parquet page index writes
- Vorherrschende Sprache
- Python
- Sterne
- 1.1k
- Forks
- 581
- Ø Merge
- 1 T. 17 Std.
- Gemergte PRs (30 T.)
- 78
Beschreibung
## Feature Request / Improvement
PyIceberg doesn't expose Parquet page index writing, even though PyArrow supports it with `ParquetWriter(write_page_index=True)`.
### Use case / motivation
Page indexes let readers such as ClickHouse skip non-matching pages during predicate evaluation, avoiding decoding work for selective queries. Tables written by PyIceberg currently lack these indexes, so page-level pruning is not possible regardless of reader support.
### Proposed change
Add an opt-in `write.parquet.page-index-enabled` table property, default false, to preserve current output and file sizes. When enabled, PyIceberg passes `write_page_index=True` to PyArrow's ParquetWriter.
### Implementation
PR #3829 adds the table property, threads it through `_get_parquet_writer_kwargs`, documents it in mkdocs/docs/configuration.md, and includes unit and integration test coverage.
### Tooling note
I developed this with assistance from DS v4 Pro and reviewed the changes myself.
### References
- #3829
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginne mit der Prüfung von PR #3829 und untersuche anschließend _get_parquet_writer_kwargs, mkdocs/docs/configuration.md sowie die genannten Unit- und Integrationstests. Als erledigt gilt die Änderung, wenn die Opt-in-Eigenschaft standardmäßig weiterhin false ist, bei true das Schreiben des PyArrow-Seitenindex aktiviert und die dokumentierten Tests erfolgreich sind.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- data-engineering
- Issue-Typ
- Feature
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 25/100