Expose table maintenance API (expire_snapshots, remove_orphan_files, drop_partition, trigger_compaction) for pypaimon_rust
- Lingua principale
- Rust
- Stelle
- 197
- Fork
- 92
- Merge medio
- 1g 16h
- PR unite (30g)
- 91
Descrizione
### Search before asking
- [x] I searched in the [issues](https://github.com/apache/paimon-rust/issues) and found nothing similar.
### Motivation
Building on the catalog metadata and observability APIs (https://github.com/apache/paimon-rust/issues/284, https://github.com/apache/paimon-rust/issues/285), pypaimon_rust still has no support for table maintenance operations: snapshot expiration, orphan file cleanup, partition management, and compaction. In particular, `trigger_compaction` is essential for aggregation tables to produce correct merged results.
### Solution
Once the underlying rust maintenance functions are implemented, expose the following methods on PyTable:
```python
# PyTable (additions)
table.expire_snapshots(older_than_ms: int) -> int
table.remove_orphan_files(older_than_ms: int) -> list[str]
table.drop_partition(partition_spec: dict[str, str]) -> None
table.trigger_compaction(full: bool = False) -> None
```
### Anything else?
_No response_
### Willingness to contribute
- [x] I'm willing to submit a PR!
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia con i metadati del catalogo e le API di osservabilità esistenti di PyTable, quindi traccia le funzioni di manutenzione Rust sottostanti. Implementa ed esponi expire_snapshots, remove_orphan_files, drop_partition e trigger_compaction con gli argomenti e i tipi restituiti documentati, incluso full=False per impostazione predefinita.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python, rust
- Ambito
- data-engineering, databases
- Tipo di issue
- Funzionalità
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Tranquilla
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 48/100