Hi everyone, is it possible to create a KeyedStrea...
# random
r
Hi everyone, is it possible to create a KeyedStream from a pre-partitioned Kinesis DataStream without the need for a network shuffle (i.e. using
reinterpretAsKeyedStream
or something similar)? If the former is false (i.e. the only safe way is to consume from Kinesis and then use keyBy), is it still advisable to keep the partitioning in the source data stream to potentially minimize network shuffle? Context • I am writing a Flink app which will consume events from a Kinesis DataStream that is partitioned by transactionId • In my Flink app, I would like to do aggregations on this key (i.e.
keyBy(transationId).reduce(...)
) • Given that the data is already partitioned transactionId, I had hoped there would be some mechanism where I can directly read the stream as a keyedStream from kinesis without having to do any network shuffles within Flink • I see that this functionality is already implemented by
reinterpretAsKeyedStream
, but this feature is experimental and seems to have significant drawbacks (as per discussions in the stackoverflow posts below) • Re. configurations: both the Kinesis DataStream and Flink will be automanaged, and scale up/down depending on load (which as I understand it, means that
reinterpretAsKeyedStream
cannot be used) References: • https://nightlies.apache.org/flink/flink-docs-master/docs/dev/datastream/experimental/https://stackoverflow.com/questions/72629086/using-keyby-vs-reinterpretaskeyedstream-when-reading-from-kafkahttps://stackoverflow.com/questions/73278930/apache-flink-how-to-align-flink-and-kafka-sharding Any help is much appreciated, thanks! Sidenote, are questions like this better posted here or on #C03G7LJTS2G?