apache / apache/parquet-java

Support Quantile Compression q_compress column codec

未关闭
#2,672 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
Component: C++ Component: Format Component: Java Component: Parquet Priority: Major Type: enhancement
主要语言
Java
星标
3.1k
派生
1.6k
平均合并
3 天 12 小时
30 天内合并 PR
33

描述

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

贡献指南

这个仓库没有索引到贡献指南

调研方向

该 issue 提到了 q_compress 及其 Rust 实现,但没有提供任何 repository 文件、测试或入口点。首先定位 Parquet Java 现有的列 codec 集成,并评估 issue 中所描述的 Rust/JVM 互操作性。当 q_compress 可作为数值列的 codec 使用,并且具备适当的集成覆盖时,即视为完成。

由索引模型根据 Issue 内容生成。

评估

技术栈
java, rust
领域
data-engineering, performance
Issue 类型
功能
难度
5/5
预计耗时
一周以上
活跃度
停滞
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。