0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Теги: apache, обработка данных, data engineer, оркестратор, оркестрация процессов обработки данных, airflow, oozie, streaming, batch</p>
1
<p>Теги: apache, обработка данных, data engineer, оркестратор, оркестрация процессов обработки данных, airflow, oozie, streaming, batch</p>
2
<p>Несмотря на быстрое развитие инструментов потоковой (<strong>streaming</strong>) аналитики, значительная часть расчётов по-прежнему выполняется в пакетном (<strong>batch</strong>) режиме. Это приводит к появлению большого числа повторяющихся задач, которые нужно запускать каждый час/день/месяц. Поэтому у каждой компании, занимающейся обработкой данных, в арсенале есть инструмент, управляющий периодическими задачами. Самый подходящий термин для данных инструментов -<strong>оркестраторы</strong>.</p>
2
<p>Несмотря на быстрое развитие инструментов потоковой (<strong>streaming</strong>) аналитики, значительная часть расчётов по-прежнему выполняется в пакетном (<strong>batch</strong>) режиме. Это приводит к появлению большого числа повторяющихся задач, которые нужно запускать каждый час/день/месяц. Поэтому у каждой компании, занимающейся обработкой данных, в арсенале есть инструмент, управляющий периодическими задачами. Самый подходящий термин для данных инструментов -<strong>оркестраторы</strong>.</p>
3
<p>В качестве примеров можно привести несколько сервисов, которые вы уже могли встречать в составе систем обработки данных:</p>
3
<p>В качестве примеров можно привести несколько сервисов, которые вы уже могли встречать в составе систем обработки данных:</p>
4
<p><strong>Apache Airflow</strong>- пожалуй, наиболее популярная система оркестрации процессов обработки данных на текущий момент. Плюсами являются гибкость, удобство использования и активное развитие.</p>
4
<p><strong>Apache Airflow</strong>- пожалуй, наиболее популярная система оркестрации процессов обработки данных на текущий момент. Плюсами являются гибкость, удобство использования и активное развитие.</p>
5
<p><strong>Apache Oozie</strong>- оркестратор, известный благодаря тесной интеграции с<strong>Hadoop-стеком</strong>. Входит в крупнейшие дистрибутивы Hadoop от Cloudera и Hortonworks.</p>
5
<p><strong>Apache Oozie</strong>- оркестратор, известный благодаря тесной интеграции с<strong>Hadoop-стеком</strong>. Входит в крупнейшие дистрибутивы Hadoop от Cloudera и Hortonworks.</p>
6
<p><strong>Luigi</strong>- ещё один оркестратор, использующий (как и Airflow) Python для описания графов задач.</p>
6
<p><strong>Luigi</strong>- ещё один оркестратор, использующий (как и Airflow) Python для описания графов задач.</p>
7
<h2>Какие задачи решает оркестратор?</h2>
7
<h2>Какие задачи решает оркестратор?</h2>
8
<p>Часто оркестратор называют "распределённым cron’ом" в честь планировщика<strong>cron</strong>системы Linux. Это не совсем корректно, поскольку оркестратор выполняет гораздо больше функций:</p>
8
<p>Часто оркестратор называют "распределённым cron’ом" в честь планировщика<strong>cron</strong>системы Linux. Это не совсем корректно, поскольку оркестратор выполняет гораздо больше функций:</p>
9
<ol><li><strong>Планирование задач</strong>- основная функция, позволяющая избавиться от ручного запуска рутинных задач по расчёту витрин, загрузке данных, резервному копированию и т. д.</li>
9
<ol><li><strong>Планирование задач</strong>- основная функция, позволяющая избавиться от ручного запуска рутинных задач по расчёту витрин, загрузке данных, резервному копированию и т. д.</li>
10
<li><strong>Управление зависимостями</strong>. Часто задачу нужно запустить не только в определённый промежуток времени, но и с учётом статуса других задач. Например, расчёт витрины данных нужно запустить только после загрузки сырых данных на кластер.</li>
10
<li><strong>Управление зависимостями</strong>. Часто задачу нужно запустить не только в определённый промежуток времени, но и с учётом статуса других задач. Например, расчёт витрины данных нужно запустить только после загрузки сырых данных на кластер.</li>
11
<li><strong>Репроцессинг</strong>. Если известно, что какая-то задача требует перезапуска (например, были загружены неполные данные на предыдущем этапе), то перезапуска требуют и задачи, зависящие от неё. Кроме того, перезапуск может быть необходим за несколько временных периодов. В итоге нужно будет руками запустить несколько десятков задач, да ещё и в правильном порядке. Оркестратор позволяет выполнить эту утомительную работу за пару кликов.</li>
11
<li><strong>Репроцессинг</strong>. Если известно, что какая-то задача требует перезапуска (например, были загружены неполные данные на предыдущем этапе), то перезапуска требуют и задачи, зависящие от неё. Кроме того, перезапуск может быть необходим за несколько временных периодов. В итоге нужно будет руками запустить несколько десятков задач, да ещё и в правильном порядке. Оркестратор позволяет выполнить эту утомительную работу за пару кликов.</li>
12
<li><strong>Мониторинг</strong>. Есть множество причин, почему задача может не выполниться - опоздала загрузка данных, не хватило ресурсов, сервис, необходимый для расчётов, был временно недоступен. Поэтому одна из задач<strong>оркестратора</strong>- отображать наличие проблемы и уведомлять через специальные каналы людей, ответственных за поддержку. Большинство оркестраторов также поддерживают<strong>SLA-уведомления</strong>. Это уведомления, которые генерируются не в случае, когда задача "сломалась", а когда её выполнение задерживается, а значит, задерживается и доставка критичных для бизнеса данных.</li>
12
<li><strong>Мониторинг</strong>. Есть множество причин, почему задача может не выполниться - опоздала загрузка данных, не хватило ресурсов, сервис, необходимый для расчётов, был временно недоступен. Поэтому одна из задач<strong>оркестратора</strong>- отображать наличие проблемы и уведомлять через специальные каналы людей, ответственных за поддержку. Большинство оркестраторов также поддерживают<strong>SLA-уведомления</strong>. Это уведомления, которые генерируются не в случае, когда задача "сломалась", а когда её выполнение задерживается, а значит, задерживается и доставка критичных для бизнеса данных.</li>
13
<li><strong>Управление ресурсами</strong>. Это не основная задача оркестратора, но часто в их функционале можно встретить пулы и очереди задач, которые позволяют ограничить одновременное выполнение задач одного типа или использующих один ресурс.<em>Пример</em>: есть несколько задач на импорт из источника данных. Мощность кластера позволяет запустить сразу несколько задач импорта параллельно, но источник может не выдержать резкий рост нагрузки. В этом случае такие задачи объединяются в один пул и ограничивается число одновременных запусков, что позволяет выполнять задачи по очереди и распределить нагрузку на источник во времени.</li>
13
<li><strong>Управление ресурсами</strong>. Это не основная задача оркестратора, но часто в их функционале можно встретить пулы и очереди задач, которые позволяют ограничить одновременное выполнение задач одного типа или использующих один ресурс.<em>Пример</em>: есть несколько задач на импорт из источника данных. Мощность кластера позволяет запустить сразу несколько задач импорта параллельно, но источник может не выдержать резкий рост нагрузки. В этом случае такие задачи объединяются в один пул и ограничивается число одновременных запусков, что позволяет выполнять задачи по очереди и распределить нагрузку на источник во времени.</li>
14
</ol><p>Внедрение оркестратора позволит<strong>повысить качество данных</strong>за счёт возможностей быстрого репроцессинга и удобного мониторинга. А главное, он сделает вашу работу дата-инженера приятнее, сняв с вас кучу скучных рутинных задач.</p>
14
</ol><p>Внедрение оркестратора позволит<strong>повысить качество данных</strong>за счёт возможностей быстрого репроцессинга и удобного мониторинга. А главное, он сделает вашу работу дата-инженера приятнее, сняв с вас кучу скучных рутинных задач.</p>
15
15