Apache Beam поток обработки данных JSON - PullRequest
0 голосов
/ 14 мая 2018

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

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

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

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

1 Ответ

0 голосов
/ 14 мая 2018

Существует несколько аспектов этого:

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

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

...