Платформа 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.