apache / apache/iceberg-python
Add support for bucket expression to table scans
- Vorherrschende Sprache
- Python
- Sterne
- 1.1k
- Forks
- 581
- Ø Merge
- 1 T. 17 Std.
- Gemergte PRs (30 T.)
- 78
Beschreibung
### Feature Request / Improvement
For time partitioning, we can express time range expressions and they lead to partition pruning when planning an Arrow scan:
```py
scan = table.scan(
row_filter=And(
GreaterThanOrEqual("event_ts", start),
LessThan("event_ts", end),
)
)
arrow_table = scan.to_arrow()
```
It would be useful to be able to filter by other hidden partitioning transforms, such as buckets -- e.g. filtering on `bucket[16](user_id) in {0, 1, 2, 3}`, and getting partition pruning whenever possible based on the underlying table partitioning specs (falling back to filtering rows when files cannot be pruned).
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginne bei den im Issue beschriebenen Einstiegspunkten table.scan und scan.to_arrow und verfolge dann die bestehende Verarbeitung von Zeitbereichsausdrücken, die für das Arrow-Partition-Pruning verwendet wird. Prüfe, wie Partitionsspezifikationen und Zeilenfilter angewendet werden; die Arbeit ist abgeschlossen, wenn Bucket-Ausdrücke wie bucket[16](user_id) Dateien, wann immer möglich, ausfiltern können und andernfalls auf Zeilenfilterung zurückfallen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- databases
- Issue-Typ
- Feature
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Aktiv
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 55/100