Трудности дата-инженерии: отличия от разработки ПО и внедрение CI/CD

Чем инженерия данных отличается от разработки ПО, как организовать оркестрацию конвейеров обработки данных и внедрить лучшие практики CI/CD. Почему дата-инженерия отличается от разработки ПО При том, что между инженерией данных и разработкой программного обеспечения (ПО) очень много общего, эти ИТ-дисциплины довольно сильно отличаются. Хотя в обоих направлениях используется облачная инфраструктура,...

6 лайфхаков работы с DAG в Apache AirFlow для дата-инженера

Что такое код верхнего уровня в Apache AirFlow, почему его следует избегать и как это сделать: шаблонные переменные, динамическое сопоставление задач, Python-функции и библиотеки для кэширования. А также 3 нативных способа создания перекрестных зависимостей между DAG для их запуска: TriggerDagRunOperator, ExternalTaskSensor и SimpleHttpOperator. Что такое код верхнего уровня в Apache...

5 советов по проектированию процессоров в Apache NiFi

Поскольку Apache NiFi позволяет не только использовать готовые процессоры, но и разработать свой собственный, дата-инженеру полезно знать лучшие практики проектирования таких обработчиков Flow File. Принцип единой ответственности при проектировании процессора Apache NiFi В Apache NiFi есть более 300 готовых процессоров, которые выполняют определенные действия с потоковыми файлами в рамках конвейера...

В помощь дата-инженеру: как организовать конвейер инкрементной загрузки данных

Инкрементные конвейеры загрузки больших объемов данных в корпоративное хранилище или озеро как самый экономичный способ масштабирования архитектуры данных. Разбираемся, как дата-инженеру эффективно организовать такие ETL-конвейеры. 2 способа организации конвейеров инкрементной загрузки данных Инкрементный ETL (Extract, Transform and Load) для классического DWH стал обычным явлением с источниками CDC (сбор данных об...

4 ошибки с DAG в интерфейсе Apache AirFlow и способы их исправления

Сегодня рассмотрим, какие ошибки, связанные с DAG, отображаются в пользовательском интерфейсе Apache AirFlow и как дата-инженеру их исправить. А также рассмотрим еще несколько рекомендаций по повышению эффективности этого фреймворка. 4 ошибки с DAG в интерфейсе Apache AirFlow и как их исправить Сегодня все больше компаний, независимо от их домена и...

Пагинация SQL-запросов с Apache NiFi

Как с помощью Apache NiFi запрашивать информацию из баз данных постранично. Разбираемся с возможностями и рисками использования процессоров NiFi для пагинации в SQL-запросах. Пагинация баз данных и процессоры Apache NiFi Apache NiFi позволяет запрашивать из баз данных целые таблицы с помощью разбиения на страницы, т.е. пагинации. Напомним, базы данных хранят...

5 типов оповещений Apache AirFlow и их мониторинг в Healthchecks.io

В этой статье для обучения дата-инженеров рассмотрим типы оповещений в Apache AirFlow и их отслеживание в сервисе мониторинга cron-заданий Healthchecks.io. Оповещения Apache AirFlow: какие они бывают и зачем их отслеживать Apache AirFlow позволяет создавать сложные конвейеры обработки данных, которые могут выполняться по расписанию, по событию или запускаться вручную. Для повышения...

7 HTTP-процессоров Apache NiFi: в чем между ними разница

Сегодня вспомним, какие процессоры есть в Apache NiFi для работы с HTTP-запросами, зачем их так много, чем они отличаются и в каких случаях использовать каждый из них. Разница между HandleHttpRequest, HandleHttpResponse, GetHTTP, PostHTTP, InvokeHTTP и ListenHTTP. Мы с Тамарой ходим парой: совместное использование процессоров HandleHttpRequest и HandleHttpResponse На первый взгляд...

3 ошибки дата-инженера при использовании Apache NiFi

Как сделать Apache NiFi еще эффективнее, избежав трех самых популярных ошибок дата-инженера. Разбираемся с автоматизацией операций развертывания, скриптовыми процессорами, а также шаблонами и реестром NiFi для развертывания потоков данных. Ошибка №1: ручное развертывание Хотя Apache NiFi имеет мощный пользовательский интерфейс для проектирования конвейеров потоковой обработки данных, его не стоит рассматривать...

Отладка конвейеров Apache AirFlow: операторы, кластерные политики и обратные вызовы задач

Проблемы отладки конвейеров обработки данных в Apache AirFlow и способы их решения средствами самого фреймворка. Как дата-инженеру настроить мониторинг системных событий на уровне DAG или отдельной задачи: операторы, кластерные политики и обратные вызовы. Отладка конвейеров обработки данных в Apache AirFlow: проблемы и возможности Практикующий дата-инженер знает, как бывает сложно найти...

Маршрутные шаблоны проектирования процессоров Apache NiFi

Вчера мы писали про паттерны проектирования процессоров Apache NiFi, ориентированные на данные. Сегодня рассмотрим шаблоны с фокусом на маршрутизацию потоковых файлов, которые можно применять при разработке пользовательского процессора. Маршрутизация на основе содержимого (Route Based on Content) Процессор этого типа направляет входящий FlowFile на основе его содержимого в одно или несколько...

3 дата-шаблона проектирования процессоров Apache NiFi

Что пригодится дата-инженеру при разработке пользовательского процессора Apache NiFi: паттерны приема и выдачи данных, а также обогащение содержимого потокового файла. Знакомимся с принципами работы шаблонов проектирования процессоров NiFi, ориентированных на данные. Прием данных (Data Ingress) Apache NiFi предоставляет более 300 готовых процессоров – обработчиков, которые выполняют определенные действия с потоковыми...

Устранение зависших в очереди задач: новинки будущего релиза Apache AirFlow 2.6.0

Мы уже рассказывали про задачи-зомби в Apache AirFlow и способы их устранения. Продолжая тему управления распределенными процессами, сегодня поговорим про задачи, зависшие в очереди и универсальное решение для борьбы с ними, которое будет реализовано в выпуске Apache AirFlow 2.6.0, о других новинках которого читайте здесь. Жизненный цикл задачи в Apache...

Настройка службы SSL контекста Apache NiFi в процессоре InvokeHTTP

Как обеспечить безопасное подключение процессора InvokeHTTP к внешнему API, настроив SSL-службу контекста в Apache NiFi. Краткий ликбез по SSL-соединению и реализации API службы контроллера SSLContextService в Apache NiFi для дата-инженера. Безопасность работы с внешним API с SSL-соединением Apache NiFi включает множество процессоров – обработчиков, которые выполняют определенные действия с потоковыми...

Создаем свой оператор Apache AirFlow с ChatGPT

Недавно мы разбирали, как дата-инженеру написать собственный оператор Apache AirFlow и использовать его в DAG. Сегодня посмотрим, каким образом с этой задачей справляется модный ИИ под названием ChatGPT. GPT-генерация пользовательского оператора AirFlow Хотя Apache AirFow предоставляет множество операторов для выполнения самых разных задач, иногда дата-инженеру приходится писать свои собственные Python-классы,...

Анализ уязвимостей обработки XML в Apache NiFi за последние 3 года

Мы уже упоминали, что в Apache NiFi 1.20 устранена уязвимость CVE-2023-22832, связанная с неправильным ограничением ссылок на внешние объекты XML в процессоре ExtractCCDAAttributes. Сегодня более подробно поговорим про проблемы обработки XML-документов в Apache NiFi и способы их решения. Чем опасны внешние сущности в XML Обработка внешних сущностей XML считается довольно проблемной...

Как создать свой оператор и использовать обратные вызовы в Apache AirFlow

Как написать пользовательский оператор Apache AirFlow и использовать его в DAG. А также чем хороши функции обратного вызова вместо XCom, и когда их не следует применять. Создаем свой оператор AirFlow и используем его в DAG Однажды мы уже разбирали, как создать свой оператор Apache AirFlow на примере сенсора – оператора...

4 главных настройки процессора Apache NiFi в GUI: параметры конфигурации

Чтобы сделать наши курсы по Apache NiFi Для дата-инженеров еще более полезными, сегодня поговорим про настройку процессоров. Читайте далее, как распараллелить задачи и потоки, задержать FlowFile, задать обратное давление и настроить другие полезные конфигурации. Как настроить конфигурации процессора Apache NiFi Будучи мощным инструментом дата-инженерии, Apache NiFi содержит множество обработчиков –...

Бизнес-логика в DAG Apache AirFlow c ShortCircuitOperator

Как реализовать условную логику выполнения задач в DAG-конвейере Apache AirFlow, используя оператор ShortCircuitOperator. А также зачем использовать декоратор и при чем здесь правило триггера. Что такое ShortCircuitOperator в Apache AirFlow и как он работает Мы уже писали здесь и здесь, что с помощью операторов, существующих в Apache AirFlow, дата-инженер может...

3 способа преобразовать XML-документы в Apache NiFi

Недавно мы писали про JSON-преобразования в Apache NiFi. Продолжая тему работы с данными различного формата, сегодня рассмотрим, как штатными средствами этого потокового ETL-инструмента преобразовать данные, поступающие в виде XML-документов. Что такое XSLT Хотя сегодня XML-формат нельзя назвать самым модным, он до сих пор активно используется во многих информационных системах, которые...