Найти тему
Data Surfing

KNIME 🔀 Метаноды и компоненты.

Оглавление

Метаноды.

Основное предназначение метанод, это группировка нод для более удобного представления процесса обработки данных. Метаноды позволяют объединить любое количество нод в одну, но при этом эта метанода сама по себе не будет обладать никакими свойствами нод. Это просто их объединение. Метаноды так же могут включать в себя другие метаноды и компоненты. Перейти к содержимому метаноды можно по двойному клику на самой метаноде.

Процесс обработки данных без объединения нод.
Процесс обработки данных без объединения нод.
Этот же процесс с объединением нод в компоненты и метаноды.
Этот же процесс с объединением нод в компоненты и метаноды.

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

У метанод нет своего состояния, а есть состояние у выходов метаноды, оно показано кружком определенного цвета рядом со значком выхода. Есть отображение общего состояния на самой метаноде, но это минимальный статус выходов метаноды, а не какой либо ее статус.

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

Созданные метаноды можно обратно развернуть в единый процесс. Можно через настройки метаноды добавить или убрать входы и выходы и поменять подключения внутри метаноды. Никаких ограничений в этом нет, можно менять как угодно. Так же готовую метаноду можно преобразовать в компонент и обратно из компонента сделать метаноду.

Компоненты.

В отличие от метаноды компоненты выглядят как обычная нода. Более того обладают всеми теми же функциями что и ноды. Внутри себя компоненты так же могут содержать ноды, метаноды и другие компоненты.

Компонент, тоже объединяет часть процесса обработки данных в одну ноду, но при этом у него появляется собственное состояние, параметры и внутри компонента появляются две фиксированные ноды входа и выхода.

Наличие состояния компонента говорит о его полном выполнении в цепочке обработки данных. Что это значит, что вы можете выполнить целиком компонент и будут выполнены все вложенные в него ноды. Если по цепочке процесса далее выполнить компонент, то этот компонент так же будет выполнен целиком, не зависимо от того какие его выходы задействована по цепочке далее. Такая же логика работает и при сбросе более ранней ноды, будет сброшено состояние всего компонента и всех входящих в него нод. Но при этом все равно остается возможность зайти внутрь компонента и, в процессе создания процесса или при его отладке, запустить отдельные ноды, посмотреть их результат, а не запускать компонент на исполнение целиком.

Ее одной важной особенностью компонента является, то что он фильтрует переменные на входе и выходе. Внутри компонента, при его создании, появляются две ноды "Component Input" и "Component Output", которые в своих свойствах содержат наборы переменных, которые "пройдут" через эти ноды и будут доступны далее внутри компонента или вне компонента, для ноды выхода соответственно.

Пример настройки ноды Component Input.
Пример настройки ноды Component Input.

Это очень удобный функционал позволяющий оградить влияние внешних переменных на функционал внутри компонента, а так же не "выпустить" лишние переменные во вне компонента.

Надо быть внимательным при создании компонента или при преобразовании метаноды к компоненту, т.к. по умолчанию никакие переменные не попадут внутрь компонента и не вернуться из него.

У компонентов есть и свое описание и своя иконка, которые можно настроить в панели описания если зайти в компонент и на выбирать ни одной вложенной ноды.

Создание параметров компонента.

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

Ноды конфигурации компонентов
Ноды конфигурации компонентов

Input - ноды для ввода значений. Каждая нода служит для задания определенного значения, своего типа. Нужно добавить строковое значение, берем ноду String Configuration, нужно добавить еще одно, используем эту ноду еще раз и так далее. В нодах можно установить значение по умолчанию, которое будет использовано в компоненте при его первом открытии, до сохранения.

Если в компоненте поменять значения и сохранить его, то в самом компоненте будет сохранено новое значение, но значение по умолчанию в ноде конфигурации не изменится.

Selection - ноды выбора. Они принимают на вход наборы значений и позволяют сделать пользователю выбор одного или нескольких значений, в зависимости от типа ноды. В нодах так же можно использовать значения по умолчанию и они будут показаны, до выполнения ноды в списках выбора. После. выполнения ноды (компонента) в конфигурации будет доступен уже прочитанный набор значений.

В обоих случаях при изменении конфигурации компонента сбрасывается состояние выполнения конкретной ноды и все ноды по цепочке от нее. Для нод с выбором часто актуален следующий алгоритм работы. Выполнить компонент первый раз, чтобы заполнился список выбора, выбрать что нужно в конфигурации компонента, выполнить компонент еще раз, уже с выбранными значениями. И уже потом выполнять весь остальной процесс обработки данных.

Визуальные элементы.

Одной из основных возможностей компонентов это использование визуальных элементов. Фильтры, графики и т.д. Каждый компонент обладает одним экраном визуализации, никакие вложенные компоненты при визуализации текущего компонента, отображены не будут. Состав отображения, расположение на экране можно настроить в компоненте. Более подробно о визуализациях и их применении в следующих статьях.

Заключение

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

-5