[Feature Request]: [Iceberg/Managed] Continuous unbounded streaming support in beam.managed.Write(ICEBERG) (Append & CDC)
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Ambito
- data-engineering, stream-processing
Direzione di ricerca
Start by reading the implementation of beam.managed.Write for Iceberg and the existing managed write tests; the issue does not name specific files. Trace how bounded writes build and commit Iceberg snapshots, then check streaming runner checkpoint and watermark integration. Done means unbounded writes support append and CDC modes with periodic or checkpoint-aligned commits and watermark metadata.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Description
Currently, beam.managed.Write(beam.managed.ICEBERG) is designed primarily for bounded (batch) PCollections. When writing unbounded streaming data (e.g., Kafka event logs, Pub/Sub streams, or continuous CDC streams from Debezium/Spanner), Beam lacks native streaming sink support to coordinate periodic snapshot commits against Iceberg catalogs (Google Cloud BigLake REST Catalog, Apache Polaris, AWS Glue).
Because Iceberg query engines (BigQuery, Trino, Spark) only read committed table snapshots, continuous streaming pipelines need native checkpoint-aligned snapshot commits so data becomes queryable with low latency.
Proposed Architecture
Extend beam.managed.Write(beam.managed.ICEBERG) to natively accept unbounded PCollections and manage streaming snapshot commits:
beam.managed.Write(
beam.managed.ICEBERG,
config={
"table": "my_catalog.db.orders",
"warehouse": "gs://my-bucket/lakehouse/wh",
"commit_interval": "60s", # maximum time between snapshot commits
"mode": "append", # "append" for event logs, or "merge-on-read" for CDC
"catalog_properties": {
"type": "rest",
"uri": "https://biglake.googleapis.com/iceberg/v1/restcatalog",
}
}
)
Key Capabilities
- Unbounded Streaming Ingestion: Native execution on streaming runners (Dataflow Streaming Engine with Windmill, FlinkRunner).
- Checkpoint-Aligned Snapshot Commits: Flushes data files and writes atomic Iceberg snapshots coordinated with runner checkpoints or periodic commit intervals.
- Dual Ingestion Semantics:
- Append-only Streams: High-throughput Parquet DataFile appends (Kafka, Pub/Sub).
- CDC Streams (Merge-on-Read): Automatically generates Iceberg v2 Equality Delete files alongside DataFiles for row-level UPSERT and DELETE operations.
- Watermark Propagation: Records the pipeline's event-time watermark directly into the Iceberg snapshot summary metadata (
snapshot.summary['beam.watermark']), giving downstream readers a verified consistency bound.
- 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