Написать пост

Из цикла ETL: развертывание Airflow

Как развернуть Airflow – замечательное ПО для автоматизации почти всего на Python. Используем в качестве базы Windows 10 + Linux WSL.

В этой части покажу, как развернуть Airflow – замечательное ПО для автоматизации почти всего на Python. Мы будем использовать в качестве базы Windows 10 + Linux WSL (“Windows Subsystem for Linux” – подсистема Linux на Windows).

Это статья из цикла “5 ETL для зоопарка ботов”. В нем я пошагово разбираю, как наладить потоки данных из разных библиотек и конструкторов ботов на разных языках и стеках. В основе лежат Python и его библиотеки.

Вот предыдущие статьи цикла, подводящие к текущей:

  1. Анонс цикла с перечнем технологий
  2. Настройка потока логов «Из Dialogflow в BigQuery»
  3. Python для аналитики ad hoc из BigQuery

Конечно, можно использовать и официальный Docker-контейнер, чтобы точно воспроизводить среду при последующих развертываниях, однако я остановлюсь именно на таком стеке, поскольку это моя реальность, да и много сущностей разворачивать не приходится. Возможно, кому-то да пригодится такой стек.

Для простоты обойдусь без развертки образа на виртуальном частном сервере, разборками с имеющейся и требуемой оперативной памятью и, конечно, падениями контейнеров, до причин которых еще надо уметь докопаться.

Из цикла ETL: развертывание Airflow 1

Установка Linux WSL

Некоторые важнейшие компоненты Airflow под Win не адаптированы. Поэтому нам понадобится Linux. откроем командную строку Windows 10 как администратор и наберем:

			wsl --install
		

Процесс скачивания дистрибутива Ubuntu начался:

Из цикла ETL: развертывание Airflow 2

Чтобы пакет ОС “развернулся”, перезагрузим Windows. Сразу после авторизации окно командной строки откроется само и установка Linux продолжится. Спустя несколько минут потребуется ввести имя пользователя и пароль:

Из цикла ETL: развертывание Airflow 3

На этом установку подсистемы мы завершаем. Теперь Ubuntu можно запустить из меню “Пуск”:

Из цикла ETL: развертывание Airflow 4

Установка Airflow

Прежде чем устанавливать программу, нам потребуется настроить виртуальную среду – некий прообраз контейнера Docker, который позволит воспроизвести на любой другой машине те же условия с версиями языка и пакетов. Установим библиотеку для создания таких образов:

			pip install virtualenv
		

Создадим виртуальное окружение для изоляции проекта от остальных событий и мест в Linux:

			virtualenv airflow_env
source airflow_env/bin/activate
		

Теперь настало время настроить проект. Для этого создадим отдельную папку и зайдем в нее:

			mkdir airflow
cd airflow
		

Установим airflow:

			pip install apache-airflow
		

Обязательное условие для запуска утилиты – работающая база данных. Мой проект использует BigQuery API, но использовать следующую команду все равно придется:

			airflow db init
		

Поскольку у Airflow есть и браузерный UI с авторизацией, то создадим пользователя-админа:

			airflow users create --username admin -password admin -firstname admin -lastname admin -role Admin -email youremail@email.com
		

Запустим веб-сервер с экземпляром Airflow:

			airflow scheduler
		

Так вы сможете поиграться с этой прекрасной программой в браузере, просто перейдя по ссылке http://localhost:8080 (в моем случае 8081 – настроила нестандартный порт, пока разбиралась с мануалом по установке).

Из цикла ETL: развертывание Airflow 5

Спустя примерно час в списке DAG’ов (Directed Acyclic Graph) появятся обучающие скрипты (их Airflow подтянет самостоятельно). Прежде чем мы перейти к настройке своего кода, можно “провалиться” в парочку (например, ‘example_bash_operator’) и посмотреть «питоническое» содержимое во вкладке ‘Code’:

Из цикла ETL: развертывание Airflow 6

Заключение

Конечно, на этом я не остановлюсь, ибо Airflow вызывает у меня любовь. Появилась она, когда отслеживать вручную многочисленные скрипты на crontab (утилита Linux, позволяющая запустить код по расписанию) стало неудобно. Прописывать руками все то, что умеет Airflow, бессмысленно: там и аналитика исполняемости, и дополнительная защита от взлома, и безконсольный доступ к логам, и даже плагины.

Мое пожелание крупным российским компаниям поскорее становиться профессиональнее в вопросах автоматической отчетности, и внедрять такие opensource-решения.

А если вы захотели прокачаться как дата-аналитик, рекомендую курс “Аналитика на Python”.

Следите за новыми постами
Следите за новыми постами по любимым темам
3К открытий7К показов