Joule — это платформа Low Code для разработки вариантов использования. Платформа упрощает разработку вариантов использования, предоставляя выразительный язык для определения конвейеров обработки с использованием готовых и настраиваемых процессоров и соединителей данных.

Готовые решения Joule предоставляют стандартные реализации коннекторов данных и полезные процессоры, которые позволяют быстро приступить к созданию и запуску вариантов использования.

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

Ключевая особенность

Разработка функций

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

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

Для начала вам предоставляются плагины OOTB для следующих функциональных категорий:

  • Сценарии
  • Масштабирование
  • Трансформировать

Пример

feature engineering:
  name: retailProfilingFeatures
  versioned: true
  features:
    as values:
      - location_code
      - store_id

    compute:
      spend_ratio:
        scripting:
          macro:
            expression: 1 - spend/avg_spend
            language: js
            variables:
              avg_spend: 133.78
      age:
        function:
          age binning:
            source field: date_of_birth
      day:
        function:
          day-of-week transform:
            source field: date

Подробности смотрите в документации.

Машинное обучение и аудит

Joule предоставляет процессор прогнозирования PMML для выполнения потоковых прогнозов/оценки. Реализация использует библиотеку с открытым исходным кодом JPMML, разработанную Villu Ruusmann.

Пример

pmml predictor:
  name: irisScorer
  model filename: /hom/joule/models/pmml/iris_rf.pmml
  response field: flowerPrediction
  audit configuration:
    target schema: ml_audit
    queue capacity: 5000
    flush frequency: 5 

Аудит

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

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

Благодаря этим новым функциям Joule теперь может предоставлять расширенную аналитику на основе потоков с использованием моделей PMML в контейнерах Docker. Пример показан ниже.

Подробности смотрите в документации.

API-интерфейс SQL-запросов

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

  • Размещение и доступ к пользовательским эталонным данным
  • Блокнот для обработки состояния
  • Специальные настраиваемые сложные запросы
  • Захват и экспорт потоковых событий

Подробности смотрите в документации.

Поддержка веб-сокетов

Joule теперь поддерживает публикацию событий в издателе Websocket. События сериализуются как Json.

websocketPublisher:
  pathOverride: /joule/websocket/stream

Подробности смотрите в документации.

Шаблоны проектов

Для начала индивидуальной разработки транспорта и процессора предоставляется шаблонный проект проекта. Проект можно найти по этой ссылке.

Документация

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

Начиная

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

  • Загрузите код примеров с GitLab
  • Загрузите последний образ докера с DockerHub.
  • Работа с файлом README

Мы здесь, чтобы помочь

Приветствуются отзывы, в том числе мысли о том, как улучшить и расширить Joule, а также идеи о интересных вариантах использования.

Вы участвуете в этом со всем сообществом FractalWorks, которое открыто делится идеями и передовым опытом и помогает друг другу на нашем Форуме сообщества. Не стесняйтесь присоединиться к нам там! И если у вас есть дополнительные вопросы о том, как стать партнером или клиентом FractalWorks, не стесняйтесь взаимодействовать с нами, мы будем рады поговорить о ваших потребностях.