我使用 Apache Beam KafkaIO 作为管道的来源。
我需要从两个 Kafka 主题 topic1 和 topic2 中读取数据,然后将此输入作为一个输入到后续转换中。
问题是 topic1 和 topic2 包含具有不兼容方案的消息,当我阅读这些消息时,我会将每个主题的消息映射到相同的方案。
所以我要寻找的管道看起来像这样:
<read topic1> <read topic2>
| |
<map to Foo> <map to Foo>
| |
\ /
<use same subsequent transforms on Foo>
我发现解决这个问题的一种方法是一次订阅多个主题,withTopics(...)然后确定KafkaRecord<K,V>消息来自哪个主题,然后为其执行映射。
这看起来有点笨拙?在 Apache Beam 中有正确的方法吗?