apache / apache/paimon-rust

Expose table maintenance API (expire_snapshots, remove_orphan_files, drop_partition, trigger_compaction) for pypaimon_rust

Offen
#286 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Rust
Sterne
197
Forks
92
Ø Merge
1 T. 20 Std.
Gemergte PRs (30 T.)
108

Beschreibung

### 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!

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginnen Sie mit den vorhandenen Katalogmetadaten und Observability-APIs von PyTable und verfolgen Sie anschließend die zugrunde liegenden Rust-Wartungsfunktionen. Implementieren und exponieren Sie expire_snapshots, remove_orphan_files, drop_partition und trigger_compaction mit den dokumentierten Argumenten und Rückgabetypen, einschließlich full=False als Standardwert.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python, rust
Bereich
data-engineering, databases
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
48/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.