Из цикла ETL: развертывание Airflow
Как развернуть Airflow – замечательное ПО для автоматизации почти всего на Python. Используем в качестве базы Windows 10 + Linux WSL.
5К открытий11К показов
В этой части покажу, как развернуть Airflow – замечательное ПО для автоматизации почти всего на Python. Мы будем использовать в качестве базы Windows 10 + Linux WSL (“Windows Subsystem for Linux” – подсистема Linux на Windows).
Это статья из цикла “5 ETL для зоопарка ботов”. В нем я пошагово разбираю, как наладить потоки данных из разных библиотек и конструкторов ботов на разных языках и стеках. В основе лежат Python и его библиотеки.
Вот предыдущие статьи цикла, подводящие к текущей:
- Анонс цикла с перечнем технологий
- Настройка потока логов «Из Dialogflow в BigQuery»
- Python для аналитики ad hoc из BigQuery
Конечно, можно использовать и официальный Docker-контейнер, чтобы точно воспроизводить среду при последующих развертываниях, однако я остановлюсь именно на таком стеке, поскольку это моя реальность, да и много сущностей разворачивать не приходится. Возможно, кому-то да пригодится такой стек.
Для простоты обойдусь без развертки образа на виртуальном частном сервере, разборками с имеющейся и требуемой оперативной памятью и, конечно, падениями контейнеров, до причин которых еще надо уметь докопаться.
Установка Linux WSL
Некоторые важнейшие компоненты Airflow под Win не адаптированы. Поэтому нам понадобится Linux. откроем командную строку Windows 10 как администратор и наберем:
Процесс скачивания дистрибутива Ubuntu начался:
Чтобы пакет ОС “развернулся”, перезагрузим Windows. Сразу после авторизации окно командной строки откроется само и установка Linux продолжится. Спустя несколько минут потребуется ввести имя пользователя и пароль:
На этом установку подсистемы мы завершаем. Теперь Ubuntu можно запустить из меню “Пуск”:
Установка Airflow
Прежде чем устанавливать программу, нам потребуется настроить виртуальную среду – некий прообраз контейнера Docker, который позволит воспроизвести на любой другой машине те же условия с версиями языка и пакетов. Установим библиотеку для создания таких образов:
Создадим виртуальное окружение для изоляции проекта от остальных событий и мест в Linux:
Теперь настало время настроить проект. Для этого создадим отдельную папку и зайдем в нее:
Установим airflow:
Обязательное условие для запуска утилиты – работающая база данных. Мой проект использует BigQuery API, но использовать следующую команду все равно придется:
Поскольку у Airflow есть и браузерный UI с авторизацией, то создадим пользователя-админа:
Запустим веб-сервер с экземпляром Airflow:
Так вы сможете поиграться с этой прекрасной программой в браузере, просто перейдя по ссылке http://localhost:8080 (в моем случае 8081 – настроила нестандартный порт, пока разбиралась с мануалом по установке).
Спустя примерно час в списке DAG’ов (Directed Acyclic Graph) появятся обучающие скрипты (их Airflow подтянет самостоятельно). Прежде чем мы перейти к настройке своего кода, можно “провалиться” в парочку (например, ‘example_bash_operator’) и посмотреть «питоническое» содержимое во вкладке ‘Code’:
Заключение
Конечно, на этом я не остановлюсь, ибо Airflow вызывает у меня любовь. Появилась она, когда отслеживать вручную многочисленные скрипты на crontab (утилита Linux, позволяющая запустить код по расписанию) стало неудобно. Прописывать руками все то, что умеет Airflow, бессмысленно: там и аналитика исполняемости, и дополнительная защита от взлома, и безконсольный доступ к логам, и даже плагины.
Мое пожелание крупным российским компаниям поскорее становиться профессиональнее в вопросах автоматической отчетности, и внедрять такие opensource-решения.
А если вы захотели прокачаться как дата-аналитик, рекомендую курс “Аналитика на Python”.
5К открытий11К показов