[Feature Request]: [Lakehouse/Python] Partition-aware zero-copy metadata translation from Delta Lake to Apache Iceberg
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- google-cloud, python
- Ambito
- cloud, data-engineering, databases, distributed-systems
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- Java
- Stelle
- 8.7k
- Fork
- 4.8k
- Merge medio
- 2g 12h
- PR unite (30g)
- 371
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di apache/beam
-
Release notes links wrongApertaawaiting triage bug P3
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 67/100
apache/beam#41197 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: [Python] WriteToJson silently rounds floats to 10 decimal placesForse già presa @Abhi2939 l’ha presa 2 giorni fa. Apertaio P2 python yaml
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
apache/beam#41102 · 4 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
apache/beam#39624 · 2 reazioni ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: PubsubIO used in batch incorrect batch cutoff sizeForse già presa @1fanwang l’ha presa 79 giorni fa. Apertabug io P3 pinned pubsub
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
apache/beam#28011 · 4 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
build P3 sub-task
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Type: Bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
MovingBlocks/Terasology#5415 ·
-
type: possible bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
-
面渣逆袭Spring事务传播机制勘误Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 80/100
itwanger/toBeBetterJavaer#218 ·
-
Markdown and Astro language servers do not start when the project path contains a non-ASCII character or a spaceForse già presa @RoiSoleil l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
eclipse-wildwebdeveloper/wildwebdeveloper#2277 ·
I maintainer di solito rispondono entro 1 giorno