Привет, я Антон, backend-разработчик в CosySoft. В этом цикле статей я расскажу про Apache NiFi — инструмент для работы с потоками данных, который мы используем в проекте.
Таких статей в интернете много, но эта – моя. Здесь будет обзор основных возможностей, плюсы, минусы, советы по использованию с точки зрения IT-инженера, использующего Nifi в своем проекте – backend-разработчика, системного аналитика, тестировщика, архитектора. Если вы хотите быстро вникнуть в тему и не тратить время на десятки вкладок, эта статья — для вас.
В первой части пойдет речь о том, что такое Apache NiFi и какие задачи он решает, как он вписывается в общую архитектуру ETL-инструментов, чем удобен как визуальный конструктор конвейеров.
Администрирование и конфигурирование подробно не рассматриваются в статье. Сравнение с другими похожими системами не рассматриваются. Надстройки над Apache Nifi (вроде Kylo) не рассматриваются. От читателя ожидается наличие опыта уровня middle и выше, общего понимания сферы разработки распределенных backend-систем (прежде всего, знакомства с основными терминами и технологиями).
Один из потоков Nifi c моего проекта. Сейчас нет смысла всматриваться в детали,просто заметьте, что это очень похоже на ориентированный граф с циклами
Во второй части расскажу про кастомизацию и поделюсь тем, что пригодилось мне при работе с NiFi в проектах. Объясню, какие гарантии дает NiFi и как оценивать нагрузку и подбирать ресурсы. Покажу, как быстро развернуть NiFi через Docker, зачем нужен Expression Language и чем отличается Minifi.