apache / apache/iceberg-python
Add support for bucket expression to table scans
- Linguagem predominante
- Python
- Estrelas
- 1.1k
- Forks
- 581
- Merge médio
- 1d 13h
- PRs com merge (30d)
- 76
Descrição
### 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).
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Direção de pesquisa
Comece pelos pontos de entrada table.scan e scan.to_arrow descritos na issue e, em seguida, rastreie o tratamento existente de expressões de intervalo de tempo usado para a poda de partições do Arrow. Verifique como as especificações de partição e os filtros de linha são aplicados; o trabalho estará concluído quando expressões de bucket, como bucket[16](user_id), puderem podar arquivos quando possível e recorrer à filtragem de linhas quando não puderem.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- python
- Domínio
- databases
- Tipo de issue
- Funcionalidade
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Status de atividade
- Ativa
- Clareza
- Razoavelmente clara
- Facilidade para iniciantes
- 55/100