[Feature Request]: [Lakehouse/Python] Partition-aware zero-copy metadata translation from Delta Lake to Apache Iceberg
Les mainteneurs répondent en général sous 1 jour
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 35/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- google-cloud, python
- Domaine
- cloud, data-engineering, databases, distributed-systems
Piste de recherche
Start by reading the apache_beam.io.lakehouse package and how it handles existing table formats. Then trace how Delta transaction log JSON describes partitioned Parquet files and how Iceberg v2 manifests represent them. Done means a callable translation registers an Iceberg snapshot using existing data files, with partition mapping and catalog registration as described.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Description
Migrating or synchronizing partitioned Delta Lake tables into Apache Iceberg currently requires full physical data rewriting. For multi-terabyte partitioned tables, this takes hours of cluster compute and substantial network/storage costs.
Because both formats use Parquet for data storage, an in-place zero-copy metadata translation can synthesize Iceberg manifests directly from Delta transaction logs.
Proposed Architecture
Add a partition-aware zero-copy metadata bridge in apache_beam.io.lakehouse:
from apache_beam.io.lakehouse import translate_delta_to_iceberg
# Synthesizes Iceberg v2 metadata from Delta partitioned transaction logs
metadata_path = translate_delta_to_iceberg(
delta_table_uri="gs://my-bucket/delta/orders/",
iceberg_warehouse="gs://my-bucket/iceberg/wh/",
table_identifier="analytics.orders"
)
Key Capabilities
- Partition Specification Mapping: Parses Delta
_delta_log/*.jsonpartition definitions (e.g.,date=2026-11-11/region=US/) into matching IcebergPartitionSpecfields. - Avro Manifest Generation: Generates Iceberg
ManifestFilerecords pointing to existing Parquet files without copying data. - Direct REST Catalog Registration: Automatically registers the synthesized snapshot in Google Cloud BigLake REST Catalog or Polaris in <5 seconds.
- Langage dominant
- Java
- Étoiles
- 8.7k
- Forks
- 4.8k
- Merge moyen
- 2 j 12 h
- PR mergées (30 j)
- 371
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
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/beam
-
Release notes links wrongOuverteawaiting triage bug P3
Difficulté 1/5 Moins d'une heure Accessibilité débutants 67/100
apache/beam#41197 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
[Bug]: [Python] WriteToJson silently rounds floats to 10 decimal placesPeut-être pris @Abhi2939 l’a pris il y a 2 jours. Ouverteio P2 python yaml
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
apache/beam#41102 · 4 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
apache/beam#39624 · 2 réactions ·
Les mainteneurs répondent en général sous 1 jour
-
[Bug]: PubsubIO used in batch incorrect batch cutoff sizePeut-être pris @1fanwang l’a pris il y a 79 jours. Ouvertebug io P3 pinned pubsub
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
apache/beam#28011 · 4 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
build P3 sub-task
Difficulté 1/5 Moins d'une heure Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de apache/beam
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
spAnser/reacharound#38 ·
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 89/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
Type: Bug
Difficulté 2/5 1-3 heures Accessibilité débutants 83/100
MovingBlocks/Terasology#5415 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100