Я анализирую потоковую обработку данных Apache Beam. Я работал над потоковой обработкой Apache Kafka (производитель, потребитель и т. Д.). Я хочу сейчас сравнить его с Beam.

Я хочу программно передавать простые данные json с помощью Apache Beam (Java).

{"UserID":"1","Address":"XXX","ClassNo":"989","UserName":"Stella","ClassType":"YYY"}

Может ли кто-нибудь направить меня или направить с примером ссылки?

2
Stella 14 Май 2018 в 19:17

1 ответ

Лучший ответ

У этого есть несколько аспектов:

  • сначала вам нужно установить, откуда берутся данные:
    • вам необходимо использовать какой-то тип ввода-вывода в конвейере Beam, см. здесь < / а>;
    • есть множество встроенных модулей ввода-вывода, см. список здесь ;
    • используя ввод-вывод из приведенной выше ссылки, вы, скорее всего, получите поток строк, содержащих эти объекты JSON;
    • некоторые операторы ввода-вывода могут анализировать автоматически Avro и другие форматы (PubsubIO), это зависит от конкретной реализации ввода-вывода;
  • тогда вам может потребоваться преобразовать данные:

    • вам нужно будет создать свой собственный PTransform, который обрабатывает преобразование из строки JSON в ваш класс Java:
    • вы можете увидеть пример такого преобразования здесь:
      • этот JsonToRow PTransform принимает строку с объектом JSON и преобразует ее в Beam Row с использованием Jackson ObjectMapper;
      • вы можете либо попробовать использовать объект Row самостоятельно, либо реализовать аналогичное преобразование для преобразования строк JSON в свой собственный тип Java вместо Row;
  • вы также можете просмотреть папку примеров в источнике Beam;

8
Anton 14 Май 2018 в 17:29