Поделиться через


Установка частного пакета в качестве требования в задании Apache Airflow

Примечание.

Задание Apache Airflow работает под управлением Apache Airflow.

Пакет Python — это способ упорядочить связанные модули Python в одну иерархию каталогов. Пакет обычно представляется в виде каталога, содержащего специальный файл с именем init.py. В каталоге пакетов можно использовать несколько файлов модуля Python (.py файлов), определяющих функции, классы и переменные. В контексте задания Apache Airflow можно разработать частные пакеты для добавления пользовательских операторов Apache Airflow, перехватчиков, датчиков, подключаемых модулей и т. д.

В этом руководстве вы создадите простой пользовательский оператор в виде пакета Python, добавьте его в качестве требования в среде задания Apache Airflow и импортирует частный пакет в виде модуля в файле DAG.

Разработка пользовательского оператора и тестирование с помощью Apache Airflow Dag

  1. Создайте файл sample_operator.py и преобразуйте его в закрытый пакет. См. руководство. Создание пакета в Python

    from airflow.models.baseoperator import BaseOperator
    
    
    class SampleOperator(BaseOperator):
        def __init__(self, name: str, **kwargs) -> None:
            super().__init__(**kwargs)
            self.name = name
    
        def execute(self, context):
            message = f"Hello {self.name}"
            return message
    
    
  2. Создайте файл sample_dag.py DAG Apache Airflow для тестирования оператора, определенного на шаге 1.

    from datetime import datetime
    from airflow import DAG
    
     # Import from private package
    from airflow_operator.sample_operator import SampleOperator
    
    
    with DAG(
    "test-custom-package",
    tags=["example"]
    description="A simple tutorial DAG",
    schedule_interval=None,
    start_date=datetime(2021, 1, 1),
    ) as dag:
        task = SampleOperator(task_id="sample-task", name="foo_bar")
    
        task
    
  3. Создайте репозиторий GitHub, содержащий папку sample_dag.py и Dags файл закрытого пакета. Распространенные форматы файлов включают zip, .whlили tar.gz. Поместите файл в папку "Dags" или "Подключаемые модули" в соответствии с соответствующими параметрами. Синхронизация репозитория Git с заданием Apache Airflow или с помощью предварительно настроенного репозиторияInstall-Private-Package

Добавление пакета в качестве требования

Добавьте пакет в качестве требования.Airflow requirements Использование формата /opt/airflow/git/<repoName>.git/<pathToPrivatePackage>

Например, если частный пакет находится /dags/test/private.whl в репозитории GitHub, добавьте требование /opt/airflow/git/<repoName>.git/dags/test/private.whl в среду Airflow.

Снимок экрана: частный пакет, добавленный в качестве требования.

Краткое руководство. Создание задания Apache Airflow