Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Hinweis
Ein Apache Airflow-Auftrag wird von Apache Airflow unterstützt.
Mit einem Python-Paket können Sie verwandte Python-Module in einer einzelnen Verzeichnishierarchie organisieren. Ein Paket wird in der Regel als Verzeichnis dargestellt, das eine spezielle Datei namens init.py enthält. Innerhalb eines Paketverzeichnisses können mehrere Python-Moduldateien (PY-Dateien), die Funktionen, Klassen und Variablen definieren, vorhanden sein. Mit Apache Airflow Jobs können Sie Eigene private Pakete entwickeln, um benutzerdefinierte Apache Airflow-Operatoren, Hooks, Sensoren, Plug-Ins und vieles mehr hinzuzufügen.
In diesem Lernprogramm erstellen Sie einen einfachen benutzerdefinierten Operator als Python-Paket, fügen es als Anforderung in Ihrem Apache Airflow-Auftrag hinzu und importieren Ihr privates Paket als Modul in Ihrer DAG-Datei.
Entwickeln eines benutzerdefinierten Operators und Testen mit einem Apache Airflow Dag
Erstellen Sie eine Datei mit dem Namen
sample_operator.py
und wandeln Sie sie in ein privates Paket um. Wenn Sie Hilfe benötigen, lesen Sie dieses Handbuch: Erstellen eines Pakets in Pythonfrom 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
Erstellen Sie als Nächstes eine Apache Airflow DAG-Datei mit dem Namen
sample_dag.py
, um den Operator zu testen, den Sie im ersten Schritt erstellt haben.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
Richten Sie ein GitHub-Repository ein, das Ihre
sample_dag.py
-Datei imDags
-Ordner sowie Ihre private Paketdatei enthält. Sie können Formate wiezip
,.whl
odertar.gz
verwenden. Legen Sie die Datei entweder in den Ordner "Dags" oder "Plugins" ein, je nachdem, was am besten passt. Verbinden Sie Ihr Git-Repository mit Ihrem Apache Airflow Job, oder probieren Sie das vorgefertigte Beispiel bei Install-Private-Package aus.
Hinzufügen Ihres Pakets als Anforderung
Fügen Sie das Paket unter Airflow requirements
im Format /opt/airflow/git/<repoName>/<pathToPrivatePackage>
hinzu
Wenn sich Ihr privates /dags/test/private.whl
Paket beispielsweise in Ihrem GitHub-Repository befindet, fügen Sie einfach /opt/airflow/git/<repoName>/dags/test/private.whl
Ihrer Airflow-Umgebung hinzu.