[Feature Request]: [Lakehouse/Python] Partition-aware zero-copy metadata translation from Delta Lake to Apache Iceberg

Ouverte
#41,227 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

@user-Param y travaille déjà.

Depuis le 12/11/2026.

  • #41234 par @user-Param — ouverte

É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

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
  1. Partition Specification Mapping: Parses Delta _delta_log/*.json partition definitions (e.g., date=2026-11-11/region=US/) into matching Iceberg PartitionSpec fields.
  2. Avro Manifest Generation: Generates Iceberg ManifestFile records pointing to existing Parquet files without copying data.
  3. 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

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de apache/beam

Toutes les issues de apache/beam

Issues similaires

Plus d'issues Java

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.