apache / apache/iceberg-python

Add support for bucket expression to table scans

Aperta
#3,839 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.