1 августа 2022 года вышел очередной выпуск самого популярного потокового ETL-маршрутизатора. Что нового в Apache NiFi 1.17 для дата-инженера и администратора кластера: новые фичи, исправления ошибок и главные улучшения.
Главные новинки Apache NiFi 1.17
Свежий выпуск Apache NiFi 1.17.0 включает сотни исправлений ошибок, улучшений и обновлений зависимостей для повышения стабильности и устранения библиотек с обнаруженными уязвимостями. А также добавлены 10 новых функциональных возможностей:
- отправка heartbeat-сигнала в MiNiFi C2 Server;
- клиентский API C2 и базовый класс, включая базовую повторно используемую реализацию для обработки общих функций, таких как отправка и получение полезных данных heartbeat-сигнала;
- процессор, который может извлекать записи из SObjects Salesforce постепенно по желанию пользователя;
- процессор ConsumeTwitter, который реализует новую версию процессора GetTwitter, что зависит от давно не обновляемого и фактически неработающего клиента Hosebird;
- поддержка множественных выражений в GrokReader – службе чтения, которая используется для анализа входных строк. GrokReader улучшен для поддержки нескольких выражений. Поддержка нескольких выражений может быть настроена с помощью самого значения свойства или через файл, на который можно ссылаться из внешнего расположения.
- настраиваемое чтение и синтаксический анализ XML-атрибутов с XMLReader. В более старых версиях фреймворка XMLReader игнорировал XML-атрибуты, а сейчас он анализирует XML-атрибуты и добавляет их в запись как новое поле. Это не обратно совместимо с предыдущим поведением, поэтому после обновления NiFi в записях могут появиться новые поля, особенно если использован вывод схемы с данными XML. Чтобы обеспечить совместимость с предыдущим поведением, в XMLReader следует добавить новое свойство, позволяющее отключать синтаксический анализ XML-атрибутов.
- поддержка изображений и формата WebP в средстве просмотра контента. Напомним, WebP — это современный формат изображений, который обеспечивает превосходное сжатие без потерь для изображений в Интернете, чтобы создавать мелкие и насыщенные картинки без снижения скорости передачи данных. Изображения WebP без потерь на 26% меньше PNG, а WebP-файлы с потерями на 25-34% меньше JPEG с эквивалентным индексом качества SSIM. WebP без потерь поддерживает прозрачность (альфа-канал) всего за 22% дополнительных байтов. Если допустимо сжатие RGB с потерями, WebP также поддерживает прозрачность, обеспечивая в 3 раза меньший размер файла по сравнению с PNG. В анимированных изображениях WebP поддерживаются форматы с потерями, без потерь и прозрачность, которые могут обеспечивать меньшие размеры по сравнению с GIF и APNG.
- UDPEventRecordSink — новая реализация интерфейса службы RecordSink-контроллера для поддержки отправки сериализованных записей по протоколу UDP. Процессоры PutUDP и PutSyslog требуют однозначной связи между потоковыми файлами и пакетами дейтаграмм, что не оптимально для потоков большого объема. Реализация RecordSink, способная отправлять один UDP-пакет для каждой записи, не может обеспечить более высокую производительность для потоков, ориентированных на записи. Настраиваемый Record Writer будет поддерживать настраиваемые форматы пакетов UDP, такие как Syslog.
- отслеживание подробных показателей, таких как использование ЦП процессорами. Хотя NiFi показывает на холсте, сколько данных было прочитано или записано за последние 5 минут, количество запущенных задач и сколько времени это заняло, часто дата-инженеру нужно знать, какие процессоры используют весь ЦП. Мы уже писали, что Apache NiFi является довольно требовательным к ресурсам вообще и использует много ресурсов процессора в частности. Чтобы точно знать, сколько ЦП потребляет фреймворк по сравнению с ожиданием ввода-вывода диска/сокета и пр., в новой версии есть возможность отслеживать подробные показатели. Например, сколько секунд процессорного времени потреблено процессором, сколько времени он потратил на чтение или запись данных в репозиторий контента и пр. Эти показатели представлены с помощью команды диагностики nifi.sh и дают понять, сколько времени процессора тратится на использование ЦП, а также какой процент от общего ЦП, используемого NiFi, потрачен на данный процессор. Это позволяет дата-инженеру понять характеристики использования ресурсов данного компонента. Но такое отслеживание является довольно дорогостоящим. Поэтому данная функция является настраиваемой: ее можно включить или отключить, а также разрешить выборку отдельных метрик и экстраполяцию этих чисел, чтобы отслеживать их только для части вызовов, а затем давать оценки на основе этого.
- процессор ListGoogleDrive, который может отображать и извлекать файлы в заданной папке Google-диска. Он настраивается пользователем.
Кроме того, теперь NiFi можно развернуть на ARM-платформах, включая новейшие системы MacOS. Динамические свойства теперь могут быть помечены пользователем как конфиденциальные, и платформа будет правильно их обрабатывать. Приложение NiFi, а также процессоры ListenHTTP и HandleHttpRequest теперь поддерживают протокол HTTP/2, который является бинарным, а потому более экономным с точки зрения объема передаваемых данных. А мультиплексирование позволяет браузеру выполнять множество запросов в рамках одного TCP-соединения, что дополнительно экономит трафик.
О новинках октябрьского релиза читайте в нашей новой статье.
Узнайте больше про тонкости администрирования и эксплуатации Apache NiFi для построения эффективных ETL-конвейеров потоковой аналитики больших данных на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:
Источники
- https://cwiki.apache.org/confluence/display/NIFI/Release+Notes#ReleaseNotes-Version1.17.0
- https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316020&version=12351438
- https://developers.google.com/speed/webp/