No efficient way to load a subset of files from partitioned table
- Lingua principale
- Rust
- Stelle
- 9.3k
- Fork
- 2.4k
- Merge medio
- 3g 11h
- PR unite (30g)
- 360
Descrizione
### Is your feature request related to a problem or challenge?
As far as I can tell, there is no good way to load a subset of files from a partitioned table. Using `ListingTable` or another `TableProvider` like `DeltaTableProvider` from `deltalake`, I'm able to `read_table`, but this loads the entire table. I can also load a list of parquet files with `read_parquet`, but this doesn't work with partitioned tables if the partitions are not "materialized" columns in the raw parquet. The only way I've found to load partitioned files is by iterating over a list of file paths, and doing the entire `TableProvider`/`read_table` process on each one individually, and `union`ing the results together.
### Describe the solution you'd like
It seems like it would be nice to be able to create a `TableProvider` with a table path, then pass some sort of file "whitelist" in. Maybe a `read_table_files(TableProvider, impl IntoIterator)`.
### Describe alternatives you've considered
As stated above, I've tried reading the files one-by-one and `union`ing results, but it's shockingly inefficient compared to reading all files at once.
### Additional context
_No response_
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia tracciando gli entry point TableProvider, read_table e read_parquet indicati nell’issue, incluso il modo in cui vengono selezionati i percorsi dei file partizionati. Il lavoro è completato quando una tabella può caricare un sottoinsieme esplicito di file, preservando la gestione delle partizioni ed evitando le letture inefficienti file per file seguite da una union.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- rust
- Ambito
- database
- Tipo di issue
- Funzionalità
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100