apache / apache/parquet-java

Support Quantile Compression q_compress column codec

Đang mở
#2,672 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
Component: C++ Component: Format Component: Java Component: Parquet Priority: Major Type: enhancement
Ngôn ngữ chính
Java
Star
3.1k
Fork
1.6k
Merge trung bình
3 ngày 12 giờ
Pull request đã merge (30 ngày)
33

Mô tả

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

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Hướng nghiên cứu

Issue nêu q_compress và phần triển khai bằng Rust của nó, nhưng không có tệp repository, bài kiểm thử hoặc entry point nào. Hãy bắt đầu bằng cách xác định vị trí tích hợp codec cột hiện có của Parquet Java và đánh giá khả năng tương tác Rust/JVM được mô tả trong issue. Công việc được xem là hoàn tất khi q_compress có thể được dùng làm codec cho các cột số và có độ bao phủ tích hợp phù hợp.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
java, rust
Lĩnh vực
data-engineering, performance
Loại issue
Tính năng
Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.