apache / apache/parquet-java

Support Quantile Compression q_compress column codec

Ouverte
#2,672 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Component: C++ Component: Format Component: Java Component: Parquet Priority: Major Type: enhancement
Langage dominant
Java
Étoiles
3.1k
Forks
1.6k
Merge moyen
3 j 12 h
PR mergées (30 j)
33

Description

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

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

L’issue mentionne q_compress et son implémentation en Rust, mais ne fournit aucun fichier du dépôt, test ou point d’entrée. Commencez par localiser l’intégration existante des codecs de colonnes de Parquet Java et par évaluer l’interopérabilité Rust/JVM décrite dans l’issue. Le travail sera terminé lorsque q_compress sera disponible comme codec pour les colonnes numériques et qu’une couverture d’intégration appropriée sera en place.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
java, rust
Domaine
data-engineering, performance
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.