Apache NiFi 1.20 от 9 февраля 2023 года: обзор новинок

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

9 февраля 2023 года опубликован очередной выпуск Apache NiFi. Разбираемся, что нового в релизе 1.20, какие появились процессоры для потокового приема и обработки данных, как устранена уязвимость CVE-2023-22832 и зачем нужны очередные изменения в функциях внутренних языков NiFi.

Исправленные ошибки в Apache NiFi 1.20

В свежем выпуске Apache NiFi 1.20 исправлено более 70 ошибок. Несколько из них связаны с SQL-запросами. Например, устранены неполадки с процессором CaptureChangeMySQL, который ранее генерировал исключение IOException с событием BEGIN из-за устаревшей переменной экземпляра inTransaction, а также не генерировал DDL-события, если SQL-оператор начинался с комментария. Решена проблема, с которой сталкивались дата-инженеры при визуальном проектировании конвейеров обработки данных, копируя группу процессоров из одного места в другое. Скопированная группа процессоров не содержит службы контроллера, которая была в исходной группе при отсутствии связи этой службы контроллера с процессором.

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

Для администратора NiFi полезно исправление ошибки в выпуске 1.19.0 с использованием Docker-образа, когда из-за некорректной работы неправильно с процессом или конфигурацией JVM NiFi Toolkit не мог подключиться к работающему экземпляру NiFi с включенной аутентификацией одного пользователя по умолчанию. При запуске в CLI-интерфейсе команд NiFi Toolkit

/opt/nifi/nifi-toolkit-current/bin/cli.sh session set nifi
/opt/nifi/nifi-toolkit-current/bin/cli.sh nifi get-services

возвращалась ошибка ERROR: Error executing command ‘get-services’ : Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty.

Также исправлена ошибка с процессором ConsumeTwitter, который обеспечивает получение постов из потокового API Twitter v2. Поток предоставляет пробный поток или поток поиска на основе ранее загруженных правил. Процессор также обеспечивает сквозную передачу определенных полей твита, которые должны быть возвращены как часть ответа. При таком обращении к API Twitter процессор получал HTTP-ответ со статусом 429 (Too Many Requests), который указывает, что пользователь отправил слишком много запросов за последнее время. Это особенно часто возникало при работе в кластерных средах, особенно при переключении основного узла NiFi: процессор ConsumeTwitter прекращал работать и возвращал ошибку 429.

С точки зрения безопасности стоит отметить устранение уязвимости CVE-2023-22832, связанной с неправильным ограничением ссылок на внешние объекты XML в процессоре ExtractCCDAAttributes, который извлекает информацию из FlowFile в формате Consolidated CDA и предоставляет отдельные атрибуты в виде атрибутов FlowFile. Ранее конфигурации потока, включающие процессор ExtractCCDAAttributes, были уязвимы для вредоносных XML-документов, содержащих объявления типа документа со ссылками на внешние XML-объекты. Эта уязвимость отмечена умеренным статусом серьезности и устранена в NiFi 1.20.0, который отключает для ExtractCCDAAttributes объявления типа документа в конфигурации по умолчанию. Подробнее про уязвимости внешних сущностей XML в Apache NiFi читайте в нашей новой статье.

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

Новые процессоры и другие изменения

Выпуск Apache NiFi 1.20 содержит не только исправления ошибок предыдущих релизов. Из наиболее значимых для дата-инженеров новинок стоит отметить появление ряда процессоров и улучшения существующих. Например, процессор GenerateRecord для создания данных записи со случайным типом или схемой данных отлично подходит для тестирования потоковых конвейеров. Для интеграций источников и приемников данных добавлены новые процессоры, например, для захвата данных из Asana, взаимодействия с сервисами AWS, отправки данных в Salesforce и Apache IoTDB. Для передачи данных на Google Диск добавлен новый процессор PutGoogleDrive.

Для процессора EncryptContent, который шифрует или дешифрует потоковые файлы, используя симметричное шифрование с необработанным ключом или паролем и случайно сгенерированной солью, или асимметричное шифрование с использованием открытого и секретного ключа, добавлены процессоры DecryptContent и DecryptContentCompatibility. А методы шифрования и дешифрования ProcessContext помечены как устаревшие, вместе с процессором ConsumeEWS, обработчиком содержимого Base64Encode и службой контроллера реестра HortonworksSchema. Для зашифрованных потоков добавлен процессор, проверяющий содержимое FlowFile с использованием алгоритма HMAC SHA256/SHA512.

Для сервера централизации агентов MiNiFi реализована команда UPDATE/PROPERTIES, чтобы агенты могли обновлять свойства начальной загрузки, используя протокол C2. А для DSL-языка RecordPath, о котором мы писали здесь, добавлена функция подсчета количества элементов, входящих в запись. Это пригодится для случаев, когда нужно посчитать число вхождений. Например, сколько товаров из заказа имеют цену выше 10, что в RecordPath выражается примерно так: /orders/items[price > 10].

А в язык выражений добавлен метод для кодирования URI. Существующий метод urlEncode() заменяет пробел знаком +, а не %20, что нормально для раздела запроса URL-адреса, но не для пути. Для исправления этой ситуации в Apache NiFi введена новая функция.

В заключение отметим еще один новый процессор, который может запускать действия HiveMetaStore и генерировать для них уведомления, позволяя регистрировать вставки и удаления файлов и каталогов в хранилище метаданных Apache Hive, сделанные другими процессорами. А в июне 2023 года вышел релиз 1.22.0, о чем мы рассказываем здесь.

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

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

Источники

  1. https://cwiki.apache.org/confluence/display/NIFI/Release+Notes#ReleaseNotes-Version1.20.0
  2. https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316020&version=12352581
  3. https://nifi.apache.org/security.html#CVE-2023-22832
Поиск по сайту