Support content-defined chunking (CDC) in the Parquet writer
Maintainer antworten meist innerhalb von 4 Tagen
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 42/100
- Issue-Typ
- Feature
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- java
- Bereich
- data-engineering
Rechercherichtung
Start with the Parquet writer and compare the existing CDC implementations in Parquet C++, PyArrow, and parquet-rs referenced in the issue. Define how rolling-hash boundaries use min_chunk_size, max_chunk_size, and norm_level, then verify that the result remains a regular Parquet file with stable pages when rows are inserted or appended.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Describe the enhancement requested
Add content-defined chunking (CDC) to the Parquet writer. It is already available in Parquet C++ (apache/arrow#45750, PyArrow >= 21) and parquet-rs (apache/arrow-rs#9450). With CDC, data page boundaries come from a rolling hash of the column values rather than fixed sizes. Pages then stay stable when rows are inserted or appended, so content-addressable storage (e.g. Hugging Face Xet) can deduplicate them. The output is a regular Parquet file, with no format change.
It would help to use the same parameters as the other implementations:
min_chunk_size(default 256 KiB)max_chunk_size(default 1 MiB)norm_level(default 0)
Motivation: Iceberg is adding write.parquet.content-defined-chunking.* table properties (apache/iceberg-rust#2375, apache/iceberg-python#3889). Iceberg Java cannot honor them until parquet-java supports CDC.
Component(s)
Core
- Vorherrschende Sprache
- Java
- Sterne
- 3.1k
- Forks
- 1.6k
- Ø Merge
- 5 T. 13 Std.
- Gemergte PRs (30 T.)
- 31
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Kein Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus apache/parquet-java
-
Row-group copying collides for distinct column paths with the same dot stringEvtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
apache/parquet-java#3829 ·
Maintainer antworten meist innerhalb von 4 Tagen
-
Binary statistics truncation test ignores its configured truncation lengthEvtl. vergeben @dhruv-15-03 hat das vor 23 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
apache/parquet-java#3820 ·
Maintainer antworten meist innerhalb von 4 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
apache/parquet-java#3767 ·
Maintainer antworten meist innerhalb von 4 Tagen
-
Remove duplicate LICENSE and NOTICE files from benchmark JARsEvtl. vergeben @efegokdemir hat das vor 26 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
apache/parquet-java#3695 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 4 Tagen
-
null_count is omitted for large columns in parquet filesEvtl. vergeben @efegokdemir hat das vor 24 Tagen übernommen. OffenType: bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
apache/parquet-java#3574 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 4 Tagen
Alle Issues in apache/parquet-java
Ähnliche Issues
-
[Bug] dubbo.protocol.triple.max-message-size is only read from OS environment variablesEvtl. vergeben @CCCLL hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 64/100
hierynomus/sshj#1070 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
intellij-elixir/intellij-elixir#4492 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
quarkiverse/quarkus-openapi-generator#1796 · 1 Kommentar ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 66/100
quarkiverse/quarkus-jooq#324 ·
Maintainer antworten meist innerhalb von 1 Tag