[Feature Request]: [Streaming/YAML] Add declarative IntervalJoin composite transform with watermark skew circuit breaker
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
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Ambito
- data-engineering, stream-processing
Direzione di ricerca
Start by reviewing Beam's existing stateful transforms and YAML transform registration; the issue names apache_beam.transforms.interval_join as the proposed module. The work needs to define event time buffering, timer eviction, watermark skew handling, and counters across supported runners. Done means the transform and YAML configuration work with the specified join behavior and skew actions, with tests covering matching, eviction, and skew metrics.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Description
Stream-to-stream interval joins (e.g. click-to-conversion attribution where t_click <= t_order <= t_click + 15m) are a core streaming pattern.
Currently in Apache Beam, implementing event-time interval joins requires complex, low-level stateful CoGroupByKey DoFns with BagStateSpec and timers. Furthermore, if one stream experiences extreme watermark lag (hours or days due to network split or backfill), state buffers grow unbounded, leading to worker memory exhaustion (OOM crashes on Dataflow Windmill and Flink).
Proposed Architecture
Add a native IntervalJoin composite PTransform in apache_beam.transforms.interval_join and register type: IntervalJoin in Beam YAML:
pipeline:
transforms:
- type: IntervalJoin
config:
left: ReadClicks
right: ReadOrders
key: user_id
left_timestamp: click_time
right_timestamp: order_time
lower_bound: "0s"
upper_bound: "15m"
max_watermark_skew: "5m" # Circuit breaker threshold
skew_action: drop # drop or dlq
Key Capabilities
- Event-Time State Machine: Built-in
BagStateSpecbuffers and timer eviction on Dataflow Windmill and Flink state backends. - Watermark Skew Circuit Breaker: Safely drops or quarantines incoming records whose timestamps fall behind the opposite stream's watermark by more than
max_watermark_skew, preventing worker OOMs under heavy lag. - Observability: Emits
watermark_skew_droppedBeam counters for monitoring.
- 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