boy397 opened a new pull request, #39136:
URL: https://github.com/apache/beam/pull/39136
- Registered GroupByKey in KafkaStreamsPipelineTranslator.
- Created GroupByKeyTranslator to repartition via internal topic and route
into the GroupByKeyProcessor.
- Added GroupByKeyProcessor using Kafka Streams state stores to buffer the
global window KV elements.
- Added GroupByKeyTranslatorTest to verify execution via TopologyTestDriver.
**Please** add a meaningful description for your change here
Description:
Implement PTransformTranslator.
Translate the beam:transform:group_by_key:v1 primitive.
Set up a repartitioning step using Kafka Streams by setting the record key
to the extracted Beam GroupByKey key.
Route the data through an internal repartition topic using
KStreamsPayloadSerde from #39051.
Attach a key-value state store (via Stores.keyValueStoreBuilder) to buffer
the elements.
Implement a Kafka Streams Processor.
Buffer incoming WindowedValue<KV<K, V>> elements per key into the state
store.
Listen for watermark advancements (using the runner's watermark management).
When the watermark reaches TIMESTAMP_MAX (the end of GlobalWindow), retrieve
all buffered values for each key and emit KV<K, Iterable<V>> downstream.
Clear the state store for emitted keys.
Register GroupByKeyTranslator for beam:transform:group_by_key:v1 (known
URNs) alongside other primitives like Redistribute.
Set up a TopologyTestDriver E2E test.
Pipeline structure: Impulse -> produce mock KVs -> GroupByKey -> assert
grouped output matches the expected iterables.
Verify that elements are only emitted when the watermark reaches the end of
the global window.
Wire in the first @ValidatesRunner test on the GroupByKey category for the
global window.
------------------------
Thank you for your contribution! Follow this checklist to help us
incorporate your contribution quickly and easily:
- [ ] Mention the appropriate issue in your description (for example:
`addresses #123`), if applicable. This will automatically add a link to the
pull request in the issue. If you would like the issue to automatically close
on merging the pull request, comment `fixes #<ISSUE NUMBER>` instead.
- [ ] Update `CHANGES.md` with noteworthy changes.
- [ ] If this contribution is large, please file an Apache [Individual
Contributor License Agreement](https://www.apache.org/licenses/icla.pdf).
See the [Contributor Guide](https://beam.apache.org/contribute) for more
tips on [how to make review process
smoother](https://github.com/apache/beam/blob/master/CONTRIBUTING.md#make-the-reviewers-job-easier).
To check the build health, please visit
[https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md](https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md)
GitHub Actions Tests Status (on master branch)
------------------------------------------------------------------------------------------------
[](https://github.com/apache/beam/actions?query=workflow%3A%22Build+python+source+distribution+and+wheels%22+branch%3Amaster+event%3Aschedule)
[](https://github.com/apache/beam/actions?query=workflow%3A%22Python+Tests%22+branch%3Amaster+event%3Aschedule)
[](https://github.com/apache/beam/actions?query=workflow%3A%22Java+Tests%22+branch%3Amaster+event%3Aschedule)
[](https://github.com/apache/beam/actions?query=workflow%3A%22Go+tests%22+branch%3Amaster+event%3Aschedule)
See [CI.md](https://github.com/apache/beam/blob/master/CI.md) for more
information about GitHub Actions CI or the [workflows
README](https://github.com/apache/beam/blob/master/.github/workflows/README.md)
to see a list of phrases to trigger workflows.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]