apache / apache/parquet-java

Support Quantile Compression q_compress column codec

Offen
#2,672 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Component: C++ Component: Format Component: Java Component: Parquet Priority: Major Type: enhancement
Vorherrschende Sprache
Java
Sterne
3.1k
Forks
1.6k
Ø Merge
3 T. 12 Std.
Gemergte PRs (30 T.)
33

Beschreibung

Quantile Compression (https://github.com/mwlon/quantile-compression) is a recent but stable compression algorithm for numerical sequences that averages 35%+ higher compression ratio than the next best codec (zstd), given the same compression time. It has fairly fast decompression speed, close to that of zstd. Compared to Parquet's built-in PFor-like integer compression algorithm, it achieves a much higher compression ratio at slower speed. Adding q_compress as a column codec for all numerical columns could substantially reduce the size of most Parquet files.

q_compress is implemented in Rust, which has good interop with C++ and can run in JVM via JNI (e.g. https://github.com/pancake-db/pancake-scala-client).

**Reporter**: [Martin Loncaric](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=mwlon)

**Note**: *This issue was originally created as [PARQUET-2132](https://issues.apache.org/jira/browse/PARQUET-2132). Please see the [migration documentation](https://issues.apache.org/jira/browse/PARQUET-2502) for further details.*

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Das Issue nennt q_compress und seine Rust-Implementierung, enthält jedoch keine Repository-Dateien, Tests oder Einstiegspunkte. Beginne damit, die bestehende Integration von Spalten-Codecs in Parquet Java zu lokalisieren und die in diesem Issue beschriebene Rust/JVM-Interoperabilität zu bewerten. Erledigt ist die Aufgabe, wenn q_compress als Codec für numerische Spalten verfügbar ist und eine angemessene Integrationsabdeckung vorhanden ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java, rust
Bereich
data-engineering, performance
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

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