Курсы

Курсы в разработке Подготовительные курсы
Работа в компаниях Компаниям Блог +7 499 110-61-65

Зачем дата-инженеру нужен оркестратор?

Data_Engineer_Deep_13.5_site-5020-c79aa0.png

Несмотря на быстрое развитие инструментов потоковой (streaming) аналитики, значительная часть расчётов по-прежнему выполняется в пакетном (batch) режиме. Это приводит к появлению большого числа повторяющихся задач, которые нужно запускать каждый час/день/месяц. Поэтому у каждой компании, занимающейся обработкой данных, в арсенале есть инструмент, управляющий периодическими задачами. Самый подходящий термин для данных инструментов — оркестраторы.

В качестве примеров можно привести несколько сервисов, которые вы уже могли встречать в составе систем обработки данных:

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

Apache Oozie — оркестратор, известный благодаря тесной интеграции с Hadoop-стеком. Входит в крупнейшие дистрибутивы Hadoop от Cloudera и Hortonworks.

Luigi — ещё один оркестратор, использующий (как и Airflow) Python для описания графов задач.

Какие задачи решает оркестратор?

Часто оркестратор называют «распределённым cron’ом» в честь планировщика cron системы Linux. Это не совсем корректно, поскольку оркестратор выполняет гораздо больше функций:

  1. Планирование задач — основная функция, позволяющая избавиться от ручного запуска рутинных задач по расчёту витрин, загрузке данных, резервному копированию и т. д.
  2. Управление зависимостями. Часто задачу нужно запустить не только в определённый промежуток времени, но и с учётом статуса других задач. Например, расчёт витрины данных нужно запустить только после загрузки сырых данных на кластер.
  3. Репроцессинг. Если известно, что какая-то задача требует перезапуска (например, были загружены неполные данные на предыдущем этапе), то перезапуска требуют и задачи, зависящие от неё. Кроме того, перезапуск может быть необходим за несколько временных периодов. В итоге нужно будет руками запустить несколько десятков задач, да ещё и в правильном порядке. Оркестратор позволяет выполнить эту утомительную работу за пару кликов.
  4. Мониторинг. Есть множество причин, почему задача может не выполниться — опоздала загрузка данных, не хватило ресурсов, сервис, необходимый для расчётов, был временно недоступен. Поэтому одна из задач оркестратора — отображать наличие проблемы и уведомлять через специальные каналы людей, ответственных за поддержку. Большинство оркестраторов также поддерживают SLA-уведомления. Это уведомления, которые генерируются не в случае, когда задача «сломалась», а когда её выполнение задерживается, а значит, задерживается и доставка критичных для бизнеса данных.
  5. Управление ресурсами. Это не основная задача оркестратора, но часто в их функционале можно встретить пулы и очереди задач, которые позволяют ограничить одновременное выполнение задач одного типа или использующих один ресурс. Пример: есть несколько задач на импорт из источника данных. Мощность кластера позволяет запустить сразу несколько задач импорта параллельно, но источник может не выдержать резкий рост нагрузки. В этом случае такие задачи объединяются в один пул и ограничивается число одновременных запусков, что позволяет выполнять задачи по очереди и распределить нагрузку на источник во времени.

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

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться