apache / apache/parquet-java

Support Quantile Compression q_compress column codec

Aperta
#2,672 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Component: C++ Component: Format Component: Java Component: Parquet Priority: Major Type: enhancement
Lingua principale
Java
Stelle
3.1k
Fork
1.6k
Merge medio
3g 12h
PR unite (30g)
33

Descrizione

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.*

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

La issue nomina q_compress e la sua implementazione Rust, ma non contiene file del repository, test o punti di ingresso. Inizia individuando l’integrazione esistente dei codec delle colonne in Parquet Java e valutando l’interoperabilità Rust/JVM descritta nella issue. Il lavoro è completato quando q_compress è disponibile come codec per le colonne numeriche e c’è un’adeguata copertura di integrazione.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
java, rust
Ambito
data-engineering, performance
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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.