apache / apache/iceberg-python
Add support for bucket expression to table scans
- Lingua principale
- Python
- Stelle
- 1.1k
- Fork
- 581
- Merge medio
- 1g 17h
- PR unite (30g)
- 78
Descrizione
### 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).
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Direzione di ricerca
Parti dai punti di ingresso table.scan e scan.to_arrow descritti nell’issue, quindi traccia la gestione esistente delle espressioni di intervallo temporale utilizzata per il pruning delle partizioni Arrow. Verifica come vengono applicate le specifiche delle partizioni e i filtri sulle righe; il lavoro è completato quando le espressioni bucket come bucket[16](user_id) possono eseguire il pruning dei file quando possibile e ricorrere al filtraggio delle righe quando non è possibile.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- databases
- Tipo di issue
- Funzionalità
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Attiva
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 55/100