Apache Beam: как читать из нескольких тем Kafka с различными схемами сообщений - PullRequest
0 голосов
/ 14 марта 2019

Я использую 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?

...