Терминология

В руководстве используется характерная терминология, описание основных понятий приведено в далее.

DataFlow Manager, DFM – пользователь NiFi, имеющий разрешения на добавление, удаление и изменение компонентов потока данных NiFi.

FlowFile – файл потока – представляет собой единый фрагмент данных в NiFi, состоящий из двух компонентов: FlowFile Attributes – атрибуты и FlowFile Content – содержимое. Содержимое – это данные, которые представлены файлом потока. Атрибуты – это характеристики, которые предоставляют информацию или контекст о данных; они состоят из пар ключ-значение. Все FlowFiles имеют следующие стандартные атрибуты:

  • uuid – уникальный идентификатор для FlowFile;
  • filename – читаемое человеком имя файла, которое может использоваться при хранении данных на диске или на внешнем сервисе;
  • path – иерархически структурированное значение, которое можно использовать при хранении данных на диске или на внешнем сервисе с целью, чтобы данные не хранились в одном каталоге.

Processor – процессор – это компонент NiFi, используемый для прослушивания входящих данных, извлечения данных из внешних источников, публикации данных во внешних источниках и для маршрутизации, преобразования и извлечения информации из FlowFiles.

Relationship – связь. Каждый процессор имеет ноль или более определенных для него связей. Связи указывают результат обработки файла потока FlowFile. После того как процессор завершает обработку FlowFile, он направляет его в одну из связей. Тогда DFM подключает каждую из связей к другим компонентам для определения, куда файл потока должен пойти далее после каждого потенциального результа обработки.

Connection – соединение. DFM создает автоматизированный поток данных, перемещая компоненты из панели инструментов “Components” на рабочую область, а затем соединяя компоненты через “Connections”. Каждое соединение состоит из одной или нескольких связей. Для каждого проведенного соединения DFM может определить, какие связи следует использовать, что позволяет маршрутизировать данные различными способами в зависимости от результата обработки. Каждое соединение содержит очередь FlowFile и, когда FlowFile переносится в конкретную связь, он добавляется в принадлежащую соответствующему соединению очередь.

Controller Service – контроллер – это точки расширения, которые после добавления и настройки DFM в пользовательском интерфейсе запускаются при старте NiFi и предоставляют другим компонентам информацию для использования (например, процессорам или другими контроллерам). Общим контроллером, используемым несколькими компонентами, является StandardSSLContextService. Он предоставляет возможность конфигурировать свойства хранилища ключей и доверительного хранилища один раз, а затем повторно использовать эту конфигурацию во всем приложении. Идея заключается в том, что вместо того, чтобы настраивать данную информацию на каждом процессоре, который может нуждаться в ней, контроллер предоставляет ее любому процессору для использования по мере необходимости.

Reporting Task – задача отчетности. Задачи отчетности выполняются в фоновом режиме для предоставления статистических отчетов о происходящем в инстансе NiFi. DFM добавляет и настраивает Reporting Task в пользовательском интерфейсе по желанию. Общими задачами отчетности являются ControllerStatusReportingTask, MonitorDiskUsage, MonitorMemory и StandardGangliaReporter.

Funnel – воронка – это компонент NiFi, используемый для объединения данных из нескольких соединений в одно.

Process Group – группа процессов. Когда поток данных становится сложным, часто полезно рассмотреть его на более абстрактном уровне. NiFi позволяет группировать несколько компонентов, таких как процессоры, в группу процессов. При этом пользовательский интерфейс упрощает работу DFM для соединения нескольких Process Group в логический поток данных, а также позволяет DFM выводить группу процессов для просмотра и управления компонентами в ней.

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

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

Bulletin – бюллетень. Пользовательский интерфейс NiFi выдает значительный объем мониторинга и обратной связи о текущем состоянии приложения. В дополнение к статистике и текущему статусу о каждом компоненте, компоненты могут сообщать бюллетени. Всякий раз, когда компонент сообщает бюллетень, на нем отображается соответствующий значок. На системном уровне бюллетени отображаются в строке состояния в верхней части страницы. Наведение указателя мыши на значок дает подсказку, показывающую время и критичность бюллетеня (Debug, Info, Warning, Error), а также само сообщение. Кроме того, бюллетени со всех компонентов можно просмотреть и отфильтровать на странице “Board Page” в общем меню.

Template – шаблон. Часто поток данных состоит из множества подпотоков, которые могут быть повторно использованы. NiFi позволяет DFM выбирать часть потока данных (или весь поток) и создавать шаблон. Шаблону присваивается имя и его можно переместить в рабочую область так же, как и другие компоненты. В результате несколько компонентов могут быть объединены вместе, чтобы сделать более крупный блок для создания потока данных. Шаблоны также можно экспортировать как XML и импортировать в другой инстанс NiFi, обеспечивая совместное использование.

flow.xml.gz – все, что DFM помещает в рабочую область пользовательского интерфейса NiFi, записывается в реальном времени в один файл с именем flow.xml.gz. По умолчанию файл находится в каталоге nifi/conf. Любые изменения, сделанные в рабочей области, автоматически сохраняются без необходимости принудительного сохранения посредством кнопки “Save”. Кроме того, NiFi автоматически создает резервную копию данного файла в каталоге архива при его обновлении, которую можно использовать для настройки отката потока. Для этого необходимо остановить NiFi, заменить flow.xml.gz на требуемую резервную копию и перезапустить NiFi. В кластерной среде следует остановить весь кластер NiFi, заменить flow.xml.gz одного из узлов и перезапустить данный узел. Затем удалить flow.xml.gz из других узлов. После подтверждения, что узел запускается как кластер с одним узлом, запустить остальные узлы. При этом замененная конфигурация потока синхронизируется по всему кластеру. Имя, расположение flow.xml.gz и поведение автоматической архивации настраиваемы.