Элементы проектирования ETL-конвейеров в Apache NiFi

Apache NiFi примеры курсы обучение ETL-конвейеры, обучение дата-инженеров, инженер данных NiFI примеры курсы обучение, Школа Больших Данных Учебный Центр Коммерсант

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

Из чего состоит конвейер обработки данных в Apache NiFi: обзор элементов

Благодаря веб-GUI Apache NiFi позволяет дата-инженеру быстро создавать конвейеры потоковой обработки данных, просто располагая элементы на холсте  без погружения в дебри парадигмы программирования потоков данных. Помимо процессоров, которые непосредственно выполняют ETL-операции, Apache NiFi также предоставляет другие полезные элементы, такие как отношения, подключения, воронки и шаблоны.

Процессор (Processor) используется для прослушивания входящих данных, извлечения их из внешних источников и публикации в места назначения. Также эти обработчики позволяют маршрутизировать, преобразовывать или извлекать информацию из потоковых файлов. Дата-инженер может написать свой собственный процессор NiFi, используя наиболее распространенные паттерны проектирования, о которых мы рассказываем здесь.

Для каждого процессора определяются 0 или более отношений, которые указывают результат обработки потокового файла. Завершив обработку FlowFile, процессор направляет его в одно из отношений (Relationship). Затем диспетчер потока данных (DFM, DataFlowManager), пользователь NiFi, у которого есть разрешения на добавление, удаление и изменение компонентов потока данных, может связать каждое из этих отношений с другими компонентами, чтобы указать, куда потоковый файл должен идти дальше при каждом потенциальном результате обработки.

DFM создает автоматизированный поток данных, перетаскивая компоненты панели инструментов NiFi на холст, а затем соединяя их через соединения (connection). Каждое соединение состоит из одного или нескольких отношений. Для каждого соединения DFM может определить, какие для него использовать отношения, чтобы маршрутизировать данные по-разному в зависимости от результатов их обработки. Каждое соединение содержит очередь потоковых файлов. Когда потоковый файл передается определенному отношению, он добавляется в очередь, принадлежащую связанному соединению.

Воронка (funnel) используется для объединения данных из нескольких соединений. Это позволяет улучшить визуализацию конвейера обработки данных, когда на холсте расположено много подключений с одним и тем же пунктом назначения. Также воронка позволяет приоритизировать соединения с помощью FlowFile Prioritizers: данные из нескольких соединений могут быть направлены в одно. По сути, воронка просто отправляет потоковые файлы сразу после их получения, что полезно в случае нескольких процессоров, которые переходят к одному и тому же месту назначения.

Каждый из процессоров передает свои потоковые файлы в воронку, а затем в следующий процессор. Предположим, необходимо добавить общий атрибут ко всем из них. В отсутствии воронки придется последовательно заменять назначение всех этих очередей на UpdateAttribute. А с воронкой можно просто изменить ее пункт назначения.

веб-GUI Apache NiFi примеры курсы обучение
Пример конвейера обработки данных в веб-GUI Apache NiFi

DFM могут создавать очень большие и сложные потоки данных за счет использования процессоров, воронок и портов ввода/вывода. Эти элементы можно рассматривать как основные строительные блоки построения потокового конвейера обработки. Чтобы упростить их повторное использование, NiFi предлагает концепцию шаблона (template) как способа объединения этих основных компонентов в более крупные строительные блоки. После того, как поток данных создан, его части могут быть сформированы в шаблон. Затем дата-инженер может перетащить этот шаблон можно на холст или экспортировать его в виде XML-файла и поделиться с командой. Также можно импортировать внешние шаблоны в свой экземпляр NiFi, чтобы перетащить на холст и использовать.

Говоря про оптимизацию проектирования конвейеров обработки данных в Apache NiFi, следует упомянуть про группы процессов (Process Group). NiFi позволяет объединять несколько процессоров в группу, чтобы использовать ее на холсте. Пользовательский интерфейс NiFi позволяет DFM соединять несколько групп процессов в логический поток данных, а видеть и управлять всеми входящими в группу процессов элементами.

Потоки данных, созданные с использованием одной или нескольких групп процессов, нужно подключить к другим компонентам потока данных. Это делается с помощью портов (port). DFM может добавить любое количество входных и выходных портов в группу процессов и присвоить им соответствующие имена.

Подобно тому, как данные передаются в группу процессов и из нее, иногда необходимо передавать данные из одного экземпляра NiFi в другой. Хотя NiFi предоставляет множество различных механизмов для межсистемной передачи данных, самым простым способом сделать это является удаленная группа процессов (Remote Process Group).

Узнайте больше подробностей по администрированию и эксплуатации Apache NiFi  для построения эффективных ETL-конвейеров потоковой аналитики больших данных на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:

Я даю свое согласие на обработку персональных данных и соглашаюсь с политикой конфиденциальности.

Источники

  1. https://nifi.apache.org/docs/nifi-docs/html/user-guide.html
  2. https://benyaakobi.medium.com/design-patterns-in-nifi-f9ad1cb02588
Поиск по сайту