Flusso d'aria: Creare DAG da un file separato

0

Domanda

Nel flusso d'aria, che sto cercando di fare una funzione che è dedicato a generare gruppi di disponibilità del database in un file:

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

Poi, in un altro file che sto cercando di importare i gruppi di disponibilità del database da un file separato:

load_dags.py:

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

Tuttavia, i gruppi di disponibilità del database non vengono visualizzati sul web UI. Ma se li faccio in un unico file, come di seguito codice, funziona:

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')

Mi chiedo perchè farlo in due file separati, non funziona.

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

Migliore risposta

1

Penso che se si utilizza il Flusso d'aria 1.10, quindi DAG file deve contenere DAG e airlfow:

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

Durante la ricerca per i Dag, il Flusso d'aria considera solo python file che contengono le stringhe “flusso d'aria” e “DAG” per impostazione predefinita. Considerare tutti i file python invece, disattivare il DAG_DISCOVERY_SAFE_MODE configurazione di bandiera.

Nel Flusso d'aria 2 è stato modificato (leggermente dag e minuscole):

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

Durante la ricerca per gruppi di disponibilità del database all'interno del DAG_FOLDER, il Flusso d'aria considera solo Python file che contengono le stringhe flusso d'aria e dag (caso maiuscole e minuscole)) come ottimizzazione. Considerare tutti i file Python invece, disattivare il DAG_DISCOVERY_SAFE_MODE configurazione di bandiera.

Penso che semplicemente perdere 'il flusso d'aria' nel tuo load_dags.py. È possibile aggiungere qualsiasi tipo - compresi i commenti.

2021-11-21 19:02:47

In altre lingue

Questa pagina è in altre lingue

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