Flink 自定义分区器示例

Flink custom partitioner example

我试图解决的用例如下:

例如:

问题:

  1. 自定义分区程序对此有帮助吗?
  2. 如果不是,什么是好的解决方案?
  3. 有人可以分享 Flink 中用于数据流的自定义分区程序的示例吗?我找不到任何完整的示例。

自定义分区程序会有所帮助,但您的情况没有必要。

您可以只从消息中提取分组值并将其用作分组键。因此,在源读取数据后,您使用 map 来提取值(例如,Record -> (groupingValue, Record) 数据类型为 byte[] -> Tuple2<keyType,byte[]>如果您想保留原始消息)。之后,您可以使用 .keyBy(0) 并在其上应用您想要的任何运算符。 keyBy 确保 Tuple2 的第一个字段中具有相同值的所有记录都由同一运算符处理。