Перенос cron-задач и ETL в Apache Airflow
Когда несколько загрузок зависят друг от друга, набор команд по расписанию становится трудно контролировать: один скрипт ждёт файл, другой обновляет таблицу, третий обращается к API. Мы переносим эту цепочку в Apache Airflow и собираем её в понятный граф задач.
В интерфейсе видны расписание, текущий шаг, журнал, повторные попытки и история запусков. Отдельно проверяем, что повторный запуск не создаёт дубли и не повреждает уже загруженные данные. Если процесс остановится, сотрудник увидит причину и сможет повторно запустить нужный шаг или период без ручного восстановления всей последовательности.
Когда стоит обратиться
Обычно к нам обращаются в таких ситуациях:
- Несколько cron-задач должны выполняться в строгом порядке, а очередной шаг иногда стартует раньше готовности файла или таблицы.
- После сбоя базы или внешнего API сотрудник вручную ищет команду, журнал и правильную дату для повторного запуска.
- Расписание, зависимости и секреты известны одному специалисту, поэтому изменение процесса занимает много времени.
- Компания хочет видеть свежесть данных, историю выполнения и причину задержки без подключения к серверу.
Что именно мы сделаем
Собираем cron-записи, ETL-скрипты, SQL, входные данные, результаты и фактический порядок выполнения.
Рисуем схему зависимостей и определяем, какие шаги можно повторять отдельно и за выбранный период.
Готовим Apache Airflow, подключения, секреты, пользователей, журналирование и канал уведомлений.
Переносим логику в DAG, настраиваем расписание, ожидания, тайм-ауты и повторные попытки.
Сравниваем результаты старого и нового запуска, переключаем расписание и передаём инструкцию команде.
Что входит в стоимость
49 900 ₽ за всю работу
Переносим связанную цепочку cron-задач и ETL-скриптов в Apache Airflow. Описываем зависимости, собираем DAG, настраиваем подключения и секреты, расписание, повторные попытки, журналирование, уведомления и обработку выбранного периода. Затем проводим параллельный контрольный запуск и переключаем рабочее расписание.
Что будет готово
Передадим вам
- Рабочий DAG Apache Airflow со связанными задачами, расписанием и повторными запусками.
- Настроенные подключения, секреты, роли, журналы и уведомления для выбранного процесса.
- Карта исходных cron-задач и их соответствия шагам Airflow.
- Инструкция по запуску выбранного периода, разбору ошибки и безопасному повтору.
Перед сдачей проверим
- Контрольный период обрабатывается в Airflow и даёт выбранный результат, сопоставимый с прежним процессом.
- Временный тестовый сбой вызывает предусмотренный повтор и сохраняет понятную запись в журнале.
- Выбранный прошлый период запускается отдельно и не создаёт повторных записей в уже обработанных данных.
- Ответственный сотрудник открывает DAG, находит состояние запуска и выполняет контрольный повтор по инструкции.
Как это выглядит на практике
Ежедневное обновление управленческого отчёта
Ночью один скрипт получает заказы из API, второй загружает оплаты из базы, третий сводит данные, а утром обновляется отчёт. Иногда API отвечает с задержкой, и итоговая таблица остаётся неполной. Сотрудник узнаёт об этом уже после открытия отчёта.
- 01
Переносим получение заказов и оплат в отдельные задачи и задаём проверяемые признаки готовности данных.
- 02
Сводный расчёт запускается после успешного завершения обоих источников, а временный ответ API получает повторную попытку.
- 03
Перед публикацией отчёта Airflow проверяет контрольное количество строк и сохраняет результат проверки в журнале.
- 04
При пропуске одного дня сотрудник выбирает нужную дату, запускает период повторно и видит историю каждой попытки.
Что понадобится для работы
От вас
- Текущие cron-записи, ETL-скрипты, SQL и описание ожидаемого результата каждого процесса.
- Доступ к серверу Apache Airflow либо инфраструктуре, где планируется его размещение.
- Тестовые доступы к источникам и получателям данных, правила расписания и удобный канал уведомлений.
Если у вас немного другая ситуация
Небольшие уточнения, которые помогают довести согласованный результат до рабочего состояния, уже учитываем в цене. Если по ходу работы появится отдельный крупный блок или понадобится платная лицензия, сначала обсудим варианты и стоимость. Расскажите о своей ситуации — подстроим план под неё.
- 3 000 ₽после подписания договора через Диадок
- 46 900 ₽после выполнения, демонстрации и приёмки результата
Предоплата входит в общую стоимость. Оставшуюся сумму оплачиваете после демонстрации и приёмки готовой работы.
Часто спрашивают
Об этой услуге
Придётся переписывать все действующие скрипты?
Рабочую логику часто удаётся сохранить и подключить как задачи Airflow. Точечная доработка обычно нужна для явной даты обработки, понятного кода завершения и безопасного повторного запуска.
Можно использовать уже установленный Apache Airflow?
Да. Сначала проверим версию, способ развёртывания, доступные providers, роли, подключение к секретам и ограничения действующей среды. Затем разместим DAG в принятой структуре проекта.
Где можно разместить Airflow?
Подойдёт существующий сервер, контейнерная площадка или управляемая среда. Выбор зависит от числа процессов, требований к доступу, резервному копированию и способа сопровождения.
Что произойдёт при временном сбое внешнего API?
Задача выполнит заданные повторные попытки с паузой, сохранит ответы в журнале и отправит уведомление. Зависимые шаги дождутся успешного результата либо останутся в понятном состоянии ошибки.
Можно заново обработать один пропущенный день?
Да. Период обработки передаётся отдельно от фактического времени запуска. Команда сможет выбрать дату или интервал и увидеть историю выполнения каждого шага.
Как защищаются пароли и ключи API?
Секреты выносятся из кода в подключение Airflow, переменные окружения либо используемое компанией хранилище. Доступ получают только выбранные роли, а перед передачей проверяется отсутствие ключей в DAG и журналах.
Сколько процессов можно перенести в рамках этой услуги?
Основой становится одна связанная ETL-цепочка. Небольшие cron-задачи с теми же источниками и общей проверкой результата удобно включить в неё. Самостоятельные процессы можно перенести следующим этапом по той же структуре.
Как подтвердим, что после переноса данные совпадают?
На контрольном периоде сравним количество строк, ключевые суммы, даты обновления или другие выбранные показатели. Переключение выполняется после совпадения результата и успешной проверки повторного запуска.
Цена и изменения по ходу работы
Цена на странице окончательная?
Да. Перед началом мы сверяем исходные данные и фиксируем результат в договоре. Указанная на странице сумма покрывает согласованную работу целиком, даже если её техническая реализация потребует больше времени, чем ожидалось при оценке.
Что означает резерв незапланированных работ?
Это уже включённый в цену запас времени на небольшие связанные уточнения заказчика, которые появляются после старта: например, добавить поле, изменить формат уведомления или учесть ещё одно условие обработки.
Резерв рассчитывается по формуле: стоимость услуги × 30% ÷ 1 500 ₽. Для услуги за 30 000 ₽ это 6 часов. Эти часы относятся только к дополнительным, заранее незапланированным уточнениям. Они не являются сроком проекта и не ограничивают время на основную работу: согласованный результат мы выполняем полностью.
Можно уточнять детали уже во время работы?
Да. Небольшие связанные изменения обычно помещаются во включённый резерв и не требуют доплаты. Если новая идея заметно меняет результат или превращается в самостоятельную задачу, сначала обсудим подход и стоимость. Любое решение согласуем до выполнения.
Начало работы и оплата
Как оформляются договор и оплата?
Подписываем договор через Диадок. Предоплата составляет 3 000 ₽ и входит в общую стоимость услуги. Остаток оплачивается после демонстрации и приёмки готового результата.
Когда начинается срок выполнения?
Срок отсчитывается после согласования задачи, получения необходимых доступов и материалов, подписания договора и поступления предоплаты. Конкретную дату старта и плановый день готовности подтверждаем перед началом.
Как учитываются платные лицензии и внешние сервисы?
До старта проверяем, нужны ли тарифы, лицензии, сертификаты или дополнительные ресурсы внешних систем. Если они потребуются, заранее покажем варианты и стоимость. По возможности аккаунты и лицензии оформляются сразу на заказчика.
Проверка результата и гарантия
Как принимается готовая работа?
Вместе проверяем согласованные сценарии на контрольных данных или тестовой копии, а затем демонстрируем результат. Для интеграций сверяем передачу данных и обработку ошибок, для сайта — работу нужных страниц и действий пользователя, для отчёта — расчёты и обновление данных.
Какая гарантия действует после сдачи?
На выполненные изменения действует гарантия 3 месяца. Если в изменённой нами части обнаружится ошибка нашей реализации, проверим и исправим её без дополнительной оплаты. Переданные материалы, настройки и код остаются у заказчика.