Prietok vzduchu: Vytvoriť DAG zo samostatného súboru

0

Otázka

V prúdenia vzduchu, snažím sa, aby funkcia, ktorá je určená na generovanie DAGs v súbore:

dynamic_dags.py:

def generate_dag(name):
    with DAG(
        dag_id=f'dag_{name}',
        default_args=args,
        start_date=days_ago(2),
        schedule_interval='5 5 * * *',
        tags=['Test'],
        catchup=False
    ) as dag:
        dummy_task=DummyOperator(
            task_id="dynamic_dummy_task",
            dag=dag
        )
    return dag

Potom v inom súbore, snažím sa importovať dags zo samostatného súboru:

load_dags.py:

from dynamic_dag import generate_dag
globals()["Dynamic_DAG_A"] = generate_dag('A')

Avšak, dags nie sú zobrazené až na web UI. Ale, keby som ich do jedného súboru, ako je uvedené nižšie kód, to bude fungovať:

def generate_dag(name):
    with DAG(
        dag_id=f'dag_{name}',
        default_args=args,
        start_date=days_ago(2),
        schedule_interval='5 5 * * *',
        tags=['Test'],
        catchup=False
    ) as dag:
        dummy_task=DummyOperator(
            task_id="dynamic_dummy_task",
            dag=dag
        )
    return dag

globals()["Dynamic_DAG_A"] = generate_dag('A')

Som zvedavý, prečo robí to v dvoch samostatných súborov nefunguje.

airflow airflow-scheduler
2021-11-21 00:44:01
1

Najlepšiu odpoveď

1

Myslím si, že ak používate Prúdenie vzduchu, 1.10, potom DAG súbory by mali obsahovať DAG a airlfow:

https://airflow.apache.org/docs/apache-airflow/1.10.15/concepts.html?highlight=airflowignore#dags

Pri hľadaní DAGs, Prúdenie vzduchu, len sa domnieva, python súbory, ktoré obsahujú reťazce "prúdenie vzduchu" a "DAG" v predvolenom nastavení. Zvážiť všetky python súbory, namiesto toho, vypnúť DAG_DISCOVERY_SAFE_MODE konfigurácia vlajky.

V prúdenia Vzduchu 2 je to zmenilo (mierne - dag je case-insensitive):

https://airflow.apache.org/docs/apache-airflow/2.2.2/concepts/dags.html

Pri hľadaní DAGs vnútri DAG_FOLDER, Prúdenie vzduchu, len sa domnieva, Python súbory, ktoré obsahujú reťazce prúdenie vzduchu a dag (prípad-insensitively) ako optimalizácia. Zvážiť všetky Python súbory, namiesto toho, vypnúť DAG_DISCOVERY_SAFE_MODE konfigurácia vlajky.

Myslím si, že jednoducho miss "prúdenie vzduchu" vo vašich load_dags.py. Môžete ho pridať kdekoľvek, vrátane komentárov.

2021-11-21 19:02:47

V iných jazykoch

Táto stránka je v iných jazykoch

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................