Чем хорош Apache NiFi: 10 главных достоинств для применения в Big Data и IoT-проектах

Big Data, Большие данные, Internet of Things, IIoT, IoT, интернет вещей, архитектура, Kafka

Продолжая разговор про практическое использование Apache NiFi в системах больших данных (Big Data) и интернета вещей (Internet of Things), сегодня мы рассмотрим, чем обусловлена популярность этой кластерной платформы маршрутизации, преобразования и доставки распределенной информации. Читайте в нашей статье про ключевые преимущества Apache NiFi в контексте прикладного использования этого инструмента.

10 основных преимуществ Apache Nifi

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

Главными достоинствами этой платформы маршрутизации, преобразования и доставки данных, особенно значимые для ее практического применения в Big Data проектах и системах интернета вещей, в т.ч. индустриального (Industrial IoT, IIoT), можно назвать следующие качества [2]:

  • мощность и масштабируемость кластерной архитектуры в сочетании с легковесностью за счет MiNiFi, что позволяет включать его в комплексные Big Data системы, а также использовать NiFi в IoT/IIoT-проектах при ограниченной пропускной способности канала передачи данных и нестабильном интернет-соединении, о чем мы рассказывали здесь.
  • поддержка любых форматов неструктурированных, полуструктурированных и структурированных данных благодаря отсутствию требований к предварительному определению форматов (Avro, JSON, CSV, Grok) и наличию встроенного реестра разных схем данных (Schema Registry) [3], работа которого похожа на аналогичный компонент Apache Kafka, о котором мы рассказывали в этой статье;
  • легкая интеграция со множеством сторонних приемников и источников данных, включая базы и хранилища данных, а также протоколы передачи информации (HDFS, Hive, HBase, Solr, Cassandra, MongoDB, Amazon Elasticsearch, Kafka, RabbitMQ, Syslog, HTTPS, SFTP). Взаимодействие с конкретной СУБД реализуется за счет добавления соответствующего JDBC-драйвера. Также имеется API-интерфейс для написания своего модуля в качестве дополнительного приемника или преобразователя данных.
  • Графический веб-интерфейс для создания потоков данных (DataFlow), который обеспечивает относительно низкий порог входа в технологию, позволяя работать с NiFi не только аналитику (Data Analyst) и инженеру (Data Engineer), но и разработчику, администратору и DevOps-инженеру. Поэтому пользователь может наглядно отслеживать полный жизненный цикл данных, наблюдая за изменением их содержимого и атрибутов в режиме онлайн.
  • Наличие REST APIдля сбора статистики, мониторинга и управления компонентами DataFlow. Это обеспечивает программный доступ к управлению и управлению экземпляром NiFi в режиме реального времени, позволяя запускать и останавливать обработчики событий, отслеживать очереди, данные о происхождении запросов и многое другое [4].
  • Поддержка SQL для преобразования, фильтрации и аналитики данных – можно задавать регулярные выражения, выполняя парсинг информации, фильтровать данные, добавлять поля и конвертировать форматы. Помимо SQL, NiFi поддерживает собственный язык регулярных выражений, богатый различными операторами и встроенными функциями. Благодаря этому легко выполнять многие операции с данными: добавление атрибутов и переменных, сравнение и вычисление значений, использование вычисленных значений в качестве параметров для дальнейших операций, например, при формировании пути для загрузки информации в HDFS или SQL-запроса к Hive, HBase или другой базе данных.
  • 2 режима работы с данными – пакетный (batch) и потоковый (streaming), что позволяет использовать NiFi как в разных бизнес-приложениях, например, в качестве ETL-инструмента для BI-систем, так и для маршрутизации непрерывных потоков данных, что имеет место во многих Big Data и IoT/IIoT-проектах.
  • Сервис версионирования Registry, позволяющий управлять изменениями. Этот реестр реализован как дополнительное, интегрированное с NiFi, приложение, которое обеспечивает централизацию для хранения и управления общими ресурсами через один или несколько экземпляров рассматриваемой платформы маршрутизации данных и ее легковесной версии MiNiFi. Это позволяет хранить, извлекать и обновлять конфигурацию информационных потоков, а также определять пользователей, группы и политики безопасности [5]. Впрочем, подробнее о кибербезопасности в NiFi мы напишем дальше.
  • Обеспечение информационной безопасности — поддержка шифрования с помощью SSL, SSH, HTTPS, что обеспечивает защиту данных [6]. Также реализуется гибкое управление правами пользователей, в т.ч. на доступ к веб-интерфейсу, с помощью одного из нескольких механизмов аутентификации – сертификатов, задания имени пользователя и пароля через LDAP и Kerberos, Apache Knox, а также OpenID Connect. Для авторизации пользователей используются специальные провайдеры – FileUserGroupProvider и LdapUserGroupProvider. 
  • Активное развитие и поддержка сообщества – фреймворк является проектом фонда свободного программного обеспечения Apache Software Foundation, а также входит в дистрибутив Hortonworks Data Flow, который сейчас является продуктом компании Cloudera – вендора дистрибутива Apache Hadoop CDH и множества других коммерческих Big Data решений.
Apache Nifi, ETL, Big Data, Большие данные, Internet of Things, IIoT, IoT, интернет вещей, архитектура, Kafka
Простота использования и многофункциональность Apache Nifi — главные драйверы его популярности

Таким образом, можно сделать вывод, что популярность Apache NiFi обусловлена широкими функциональными возможностями применения этой платформы маршрутизации данных в комплексных Big Data системах и IoT/IIoT-проектах. О недостатках этого инструмента мы поговорим в следующей статье.

Освойте тонкости реальной работы с распределенной платформой маршрутизации и быстрой загрузки данных на нашем практическом курсе Кластер Apache NiFi в лицензированном учебном центре обучения и повышения квалификации ИТ-специалистов (менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data) в Москве.

расписание компьютерные курсы для руководителей, аналитиков, программистов, администраторов и пользователей Internet of Things, Big Data и Machine Learning Смотреть расписание занятий
регистрация на компьютерные курсы для руководителей, аналитиков, программистов, администраторов и пользователей Internet of Things, Big Data и Machine Learning Зарегистрироваться на курс

Источники

  1. https://habr.com/ru/post/465299/
  2. https://habr.com/ru/company/rostelecom/blog/432166/
  3. https://bryanbende.com/development/2017/06/20/apache-nifi-records-and-schema-registries
  4. https://nifi.apache.org/docs/nifi-docs/rest-api/index.html
  5. https://nifi.apache.org/registry.html
  6. https://nifi.apache.org/index.html