Пример использования Apache NiFi

Платформа Flexberry позволяет реализовывать решения для разнообразных бизнес-требований, поэтому активно использует наиболее современные и востребованные инструменты. Например, Apache NiFi. Это достаточно простой в использовании, open source ETL-инструмент (от Extract, Transform и Load – извлечение, преобразование, загрузка). Он представляет собой способ объединения данных из нескольких источников в одном центральном хранилище, которое называется складом данных. Обычно ETL-процессы используются, когда нужно перенести много разнородных данных: собрать их, привести к единому виду, загрузить в новую систему и сохранить всю информацию по пути. Системы бывают разными, и задача ETL — в том числе адаптировать под них данные из разных источников. Apache NiFi обладает следующими особенностями:

  • умеет работать со множеством систем и технологий. Например - HDFS, Hive, HBase, Solr, Cassandra, MongoDB, ElastcSearch, Kafka, RabbitMQ, Syslog, HTTPS, SFTP,
  • удобен для поддержки драйверов для всех видов БД. Есть API для написания своего модуля в качестве дополнительного приемника или преобразователя данных,
  • имеет распределенную архитектуру для быстрой параллельной загрузки и обработки данных,
  • а также большое количество плагинов для источников и преобразований,
  • обладает многофункциональным Web-интерфейсом, который с помощью интерактивных блоков и связей позволяет создавать DataFlow любой сложности.

Использование данного инструмента продемонстрировано на стенде в открытом репозитории, разработанном специалистами «Новой платформы». Он основан на двух источниках данных:

  • основная БД приложения PostgreSQL,
  • БД аудита в Clickhouse.

NiFi на основе построенной логики DataFlow производит вычитку данных из основной БД и БД аудита, преобразовывает их и сохраняет в отдельную аналитическую БД. Для просмотра и аналитики БД NiFi в стенд добавлен сервис ApacheSuperset. Также добавлена система логирования GrafanaLoki, для сбора логов работы NiFi.

На стенде можно изучить следующие аспекты:

  • как запустить NiFi в виде docker-сервиса,
  • какие базовые функции есть в его интерфейсе и как делается DataFlow
  • как осуществить соединение с БД PostgreSQL и Clickhouse,
  • как реализовать вычитку и преобразование данных,
  • как сохранить преобразованные данные в аналитическую БД,
  • как сохранить конфигурацию DataFlow,
  • как подключить к NiFi Superset,
  • как отправлять из NiFi логи работы в Loki.
Поделиться в: ВКонтакте, Twitter, Facebook.