apache / apache/parquet-java

Support Quantile Compression q_compress column codec

Abierto
#2,672 0 comentarios 0 reacciones 0 asignados Ver en GitHub
Component: C++ Component: Format Component: Java Component: Parquet Priority: Major Type: enhancement
Lenguaje dominante
Java
Estrellas
3.1k
Forks
1.6k
Merge medio
3 d 12 h
PR fusionados (30 d)
33

Descripción

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

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

El issue menciona q_compress y su implementación en Rust, pero no incluye archivos del repositorio, pruebas ni puntos de entrada. Empieza localizando la integración existente de códecs de columnas de Parquet Java y evaluando la interoperabilidad Rust/JVM descrita en el issue. El trabajo estará terminado cuando q_compress esté disponible como códec para columnas numéricas y exista una cobertura de integración adecuada.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
java, rust
Área
data-engineering, performance
Tipo de issue
Nueva funcionalidad
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.