С выпуском версии 3.3 сообщество открытого исходного кода Elyra стало важной вехой в нашей дорожной карте, позволив пользователям создавать конвейеры с использованием пользовательских компонентов. В этом посте я кратко расскажу, что такое пользовательские компоненты и как их использовать.

Версия 3.6 включает расширенную поддержку встроенных и сетевых операторов Apache Airflow.

Визуальный конвейерный редактор — самая заметная функция Elyra. Он предоставляет пользователям JupyterLab средства для визуального создания конвейеров и запуска их на разных платформах.

По состоянию на декабрь 2021 года Kubeflow Pipelines, Apache Airflow и локальное выполнение являются поддерживаемыми платформами для запуска конвейеров.

Продолжается работа над тем, чтобы пользователям было проще «принести свою собственную» платформу среды выполнения, если ни одна из существующих не соответствует их потребностям.

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

Трубопроводы

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

На приведенном ниже снимке экрана показан редактор Visual Pipeline Editor для универсальной среды выполнения. Палитра (выдвижная панель слева) включает только общие компоненты. Холст (в центре экрана) — это место, где вы собираете конвейер, а представление свойств (выдвижная панель справа) используется для настройки свойств среды выполнения узла.

Отличным примером проекта с открытым исходным кодом, основанного на универсальных компонентах, является CLAIMED — библиотека компонентов для ИИ, машинного обучения, ETL и науки о данных. Короче говоря, CLAIMED предоставляет набор блокнотов Jupyter, которые выполняют общие задачи, такие как загрузка данных, преобразование данных или обучение модели. Этот подход очень популярен среди пользователей, которые предпочитают использовать инструменты без кода или с низким кодом для работы с данными.

Общие компоненты поддерживаются для Kubeflow Pipelines, Apache Airflow и локального выполнения. Другие среды выполнения, которые сообщество может внести в будущем (см. предыдущий комментарий о продолжающейся работе над принеси свою собственную платформу выполнения), могут свободно выбирать, поддерживать ли общие компоненты.

Пользовательские компоненты

Пользовательские компоненты отличаются от общих компонентов в нескольких отношениях:

  • Пользовательские компоненты обычно зависят от времени выполнения. Например, компонент Kubeflow Pipelines нельзя использовать в конвейерах Apache Airflow.
  • Пользовательские компоненты используют специальные механизмы среды выполнения для обмена данными с другими компонентами (например, Xcoms для Apache Airflow), в то время как общие компоненты обмениваются данными с использованием хранилища, совместимого с S3.
  • Пользовательские компоненты — это черные ящики. Это означает, что визуальный редактор конвейера предоставляет свои входные и выходные свойства, но не обязательно имеет доступ к исходному коду, реализующему функциональность компонентов.
  • Пользовательские компоненты не входят в состав Elyra, поэтому ими нужно управлять отдельно.

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

Итак, как вы управляете пользовательскими компонентами? Читай дальше.

Каталоги компонентов

Elyra возлагает задачу управления компонентами на объекты, называемые каталогами. Любой существующий поставщик хранилища (в общем смысле) может использоваться в качестве каталога, если он предоставляет доступ для чтения к своим ресурсам. На приведенном ниже рисунке показаны три примера провайдеров: каталог на основе файловой системы (компоненты хранятся в виде файлов в путях), каталог на основе Интернета (компоненты хранятся в виде веб-ресурсов и доступны через URL-адреса) и каталог на основе служб (где компоненты, возможно, могут храниться в собственном формате).

Реестр компонентов Elyra использует коннекторы каталогов для доступа к каталогам и передает палитру редактора Visual Pipeline Editor. Коннекторы служат двум целям: извлекают список компонентов, доступных в данном каталоге, и извлекают компоненты.

Каждая установка Elyra включает в себя встроенные соединители для файловой системы и веб-каталогов, обеспечивающие доступ к компонентам, которые хранятся локально или в Интернете. Вы можете включить поддержку других каталогов, установив дополнительные коннекторы, например, для Обмена машинным обучением, и настроив их.

После настройки подключения к каталогу компоненты каталога доступны на палитре редактора Visual Pipeline Editor.

Пользовательские компоненты добавляются в конвейеры точно так же, как вы добавляете записные книжки или сценарии Jupyter: перетаскивайте компоненты на холст, подключайте их, чтобы определить их зависимости выполнения, и настраивайте их свойства среды выполнения.

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

В следующем примере конвейера Count Rows подключен к Загрузить данные и к Усечь файл, но не к Загрузить дополнительные данные. Поэтому Count Rows не может использовать выходные данные Загрузить дополнительные данные в качестве источника входных данных.

Совместное использование компонентов

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

Общие компоненты (поддерживающие блокноты Jupyter, сценарии Python и сценарии R) устанавливаются в каждом развертывании Elyra. Поэтому нет необходимости вручную «добавлять» их.

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

Общий каталог — это каталог, к которому можно получить доступ из нескольких развертываний Elyra. Примерами общих каталогов являются общие файловые системы или серверы/службы, к которым можно удаленно подключаться с помощью API.

Часто задаваемые вопросы

Пользовательские компоненты и каталоги — это первый шаг к лучшей поддержке «Принеси свои собственные…» — так называемых вкладов сообщества.

  • Звучит здорово! Как начать? Добро пожаловать на борт! Установи Elyra и попробуй один из туториалов!
  • Я не могу найти коннектор каталога для XYZ на маркетплейсе. Можете ли вы реализовать его для меня? К сожалению, у Elyra уже есть большое количество невыполненных запросов на добавление функций. Поэтому мы должны полагаться на вклад сообщества в отношении функций (таких как соединители), которые не считаются основными функциями.
  • Как реализовать коннектор каталога? Пожалуйста, обратитесь к нашему Руководству для разработчиков или свяжитесь с нами, используя один из каналов, перечисленных в разделе Получение справки.
  • Я реализовал коннектор каталога для XYZ. Как добавить его на рынок? Разветвите репозиторий примеров, добавьте ссылку на ваш репозиторий коннекторов в документ со списком коннекторов и откройте запрос на вытягивание.
  • У меня возникла проблема с соединителем каталога для XYZ. Где я могу получить помощь? Создайте задачу в репозитории коннектора.

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