NiFi

Управление потоками данных с использованием Apache NiFi

Apache NiFi простая платформа обработки событий (сообщений), предоставляющая возможности управления потоками данных из разнообразных источников в режиме реального времени с использованием графического интерфейса. Программа Apache NiFi написана на Java  и была разработана Агентством Национальной Безопасности  (NSA) под кодовым названием «Niagara Files» для диспетчеризации данных поддерживающих работу как  с разнообразными небольшими сетевыми граничными устройствами, такими как Raspberry Pi. так и крупными кластерами данных и облачной инфраструктурой. 

Apache NiFi использует концепцию потока рассматриваемую как последовательность операций(таких как передача, преобразование данных, обогащение данных) над последовательностью отдельных событий (events),  вместо того чтобы рассматривать поток как большая batch операция, требующая выполнения первоначальной загрузки всех данных  перед тем как начать процессинг. База данных SQL с миллионами строк данных,  таким образом рассматривается Apache NiFi как милионы отдельных строк требующие своей обработки. 

Apache NiFi состоит из 3х основных компонент:

  • Flow Files — информация в NiFi состоит из двух частей: аттрибуты и контейнер с данными (payload) FlowFiles обычно использует предопределенный набор аттрибутов которые в последующем могут быть добавлены(изменены) с помощью дополнительных операций. Payload (данные) представляют собой собственно информацию которая обрабатывается процессорами.
  • Flow File Processor —   фрагменты кода представляющие контейнер процессора имеющие входы и выходы для данных. Пример процессора GetFTP, получает данные с FTP директории и создает FlowFile включающий аттрибуты  взятые из директории ( время создания, имя файла, данные). Полученный FlowFile далее может быть обработан другим процессором, который использует логику основываясь на аттрибутах каждого FlowFile ( допустим регулярные выражения Regex  работающие с именем файла).
  • Connections — определение как FlowFiles передаются между процессорами. FlowFiles обработанные без сбоев формируют выполненную очередь (success queue), а сообщения с проблемой в обработке передаются в failure queue. Существуют и другие типы соединений. 

NiFi

 

 

 

 

 

 

 

 

 

 

Apache NiFi имеет богатый графический веб интерфейс для создания и управления потоками  данных, более 260 процессоров и коннекторов из коробки, что позволяет его использовать  для сопряжения практически с любыми типами источников и потребителей данных, асинхронный режим работы обеспечивающий высокую пропускную способность, удобную обработку ошибок и возможность  версионного контроля компонент Apache NiFi.  

Более подробно вы можете познакомиться с особенностями администрирования и настройки кластера Apache NiFi на наших 3х дневных курсах в «Школе Больших Данных»

NIFI: Кластер Apache NiFi