apache / apache/beam

Respect timestamp OutputTime Windowing Strategy configuration in Lifted CombineFns.

Open
#20,436 0 comments 0 reactions 0 assignees View on GitHub
go new feature P3
Dominant language
Java
Stars
8.7k
Forks
4.7k
Avg merge
1d 20h
Merged PRs (30d)
196

Description

The Go SDK currently retains an arbitrary timestamp per key per bundle when performing a lifted combine.
However, depending on the windowing strategy, a prefered time could be specified.
https://github.com/apache/beam/blob/a5b2046b10bebc59c5bde41d4cb6498058fdada2/model/pipeline/src/main/proto/beam_runner_api.proto#L901

The code in question for the Go SDK:
https://github.com/apache/beam/blob/master/sdks/go/pkg/beam/core/runtime/exec/combine.go#L395

At present this implementation is "correct", as the default output time is Unspecified, and there's no user mechanism to configure a windowing strategy to this granularity.

So there are a few parts to this.
1. Propagate the windowing strategy information to exec.LiftedCombine somehow and implement the correct output. This can be done whether or not 2 is implemented.
2. Provide a trigger configuration for beam.WindowInto, so this can be configured on the user side. This is significantly more work.

This matters only when using windows that are not the Global Window, and when using a Lifted Combine, which commonly only happens in batch contexts. However, since Beam is a unified model, the windowing features should work correctly in both execution modes of a Go SDK pipeline.

Imported from Jira [BEAM-10302](https://issues.apache.org/jira/browse/BEAM-10302). Original Jira may contain additional context.
Reported by: lostluck.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.