Как управлять зависимостями Python в Airflow? - PullRequest
0 голосов
/ 04 июля 2019

На моей локальной машине я создал virtualenv и установил Airflow.Когда dag или плагину требуется библиотека python, я pip устанавливаю его в тот же virtualenv.

Как я могу отслеживать, какие библиотеки принадлежат dag, а какие используются для самого воздушного потока?Я недавно удалил dag и хотел удалить библиотеки, которые он использовал.Это было довольно много времени, и я скрестил пальцы, я не удалил что-то, что использовалось другим dag!

Ответы [ 2 ]

0 голосов
/ 05 июля 2019

Особенно для больших случаев использования Airflow, я бы рекомендовал использовать Airflow как способ организации задач на другом уровне абстракции, чтобы вы не управляли зависимостями со стороны Airflow.

Я бы рекомендовал взглянуть на DockerOperator или KubernetesPodOperator.С их помощью вы можете встраивать ваши задачи Python в контейнеры Docker и запускать их в Airflow.Таким образом, вам не нужно управлять зависимостями Python в Airflow, и вы не столкнетесь с какими-либо сценариями сбоев, когда две группы DAG имеют конфликтующие зависимости.Это, однако, требует от вас знаний об управлении кластером Kubernetes.

0 голосов
/ 05 июля 2019

Вы можете увидеть airflow.operators.python_operator.PythonVirtualenvOperator об использовании в Dag s, где вы используете PythonOperator.

Использование VirtualenvOperator вместо PythonOperator изолирует зависимости от Dag до Virtualenv, и вы можете хранить отдельные файлы требований.

Вы можете использовать комментарии в файле требований для пометки зависимостей для Dag , например:

package-one # Dag1.

... и когда вы удаляете требования Dag, grep с именем DAG, удаляете, а затем удаляете строки.

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

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