Support content-defined chunking (CDC) in the Parquet writer
Les mainteneurs répondent en général sous 2 jours
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 42/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- java
- Domaine
- data-engineering
Piste de recherche
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.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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
- Langage dominant
- Java
- Étoiles
- 3.1k
- Forks
- 1.6k
- Merge moyen
- 4 j 3 h
- PR mergées (30 j)
- 31
Préparer son environnement
Nous n'avons pas encore vérifié les fichiers d'installation de ce projet. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de apache/parquet-java
-
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
apache/parquet-java#3829 ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
apache/parquet-java#3820 ·
Les mainteneurs répondent en général sous 2 jours
-
Make PageReader AutoCloseableOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
apache/parquet-java#3767 ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
apache/parquet-java#3695 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
apache/parquet-java#3667 ·
Les mainteneurs répondent en général sous 2 jours
Toutes les issues de apache/parquet-java
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 86/100
geonetwork/geonetwork#227 ·
Les mainteneurs répondent en général sous 3 jours
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Netcracker/qubership-testing-platform-tdm3#138 ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
synthetichealth/synthea#1726 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
bisq-network/bisq#8097 ·
Les mainteneurs répondent en général sous 1 jour
-
area/frontend good first issue kind/cooldown
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour