Middle
Wat is Apache Airflow?
sobes.tech AI
Antwoord van AI
Apache Airflow is een platform voor het maken, plannen en monitoren van workflows (workflow) in de vorm van directed acyclic graphs (DAG). Het wordt gebruikt voor het beheren van ETL/ELT-processen, het starten van taken volgens een schema en het automatiseren van verschillende operaties.
Belangrijkste componenten:
- Scheduler: Verantwoordelijk voor het triggeren van taken en het doorgeven aan uitvoering.
- Webserver: Biedt een gebruikersinterface voor het monitoren van DAGs, het beheren van taken en het bekijken van logs.
- Worker: Voert taken uit (Operators).
- Database: Slaat de status van Airflow op, metadata van DAGs, informatie over taken en runs.
Kenmerken en voordelen:
- Python: Workflows worden geschreven in Python.
- Dynamisch: DAGs kunnen dynamisch worden gegenereerd.
- Extensibel: Eenvoudig om aangepaste operators en hooks te maken.
- Schaalbaar: De architectuur maakt horizontale schaalvergroting van componenten mogelijk.
- GUI: Informatieve webinterface voor monitoring en debugging.
Voorbeeld van een eenvoudige DAG:
from __future__ import annotations
import pendulum
from airflow.models.dag import DAG
from airflow.operators.bash import BashOperator
with DAG(
dag_id="simple_bash_dag",
start_date=pendulum.datetime(2023, 1, 1, tz="UTC"),
schedule=None,
catchup=False,
tags=["example"],
) as dag:
task1 = BashOperator(
task_id="print_date",
bash_command="date",
)
task2 = BashOperator(
task_id="sleep_5",
bash_command="sleep 5",
)
task3 = BashOperator(
task_id="print_hello",
bash_command="echo hello",
)
task1 >> task2 >> task3 # Bepaal de volgorde van uitvoeren van taken