1
resposta

[Bug] Codigo da aula não funciona

o código do airflow nao funciona, entao pedi pra o chatgpt corrigir e ele me ofereceu essa alternativa aqui:

from airflow import DAG
from airflow.providers.databricks.operators.databricks import DatabricksRunNowOperator
from datetime import datetime

with DAG(
    'Executando-notebook-etl',
    start_date=datetime(2025, 7, 5),
    schedule_interval="0 9 * * *",
    catchup=True
) as dag_executando_notebook_extracao:

extraindo_dados = DatabricksRunNowOperator(
    task_id='Extraindo-conversoes',
    databricks_conn_id='databricks_default',
    job_id=job aqui,
    notebook_params={"data_execucao": '{{data_interval_end.strftime("%Y-%m-%d")}}'}
)

no entanto ele só retorna o dia atual no airflow, não os dias meses atras. Não sei muito de airflow e nao sei o que fazer

1 resposta

Oi, Samuel! Como vai?
Vamos resolver isso. O Airflow só cria execuções passadas (dias/meses atrás) se:

  • O DAG estiver unpaused,
  • catchup=True e um start_date no passado,
  • Você disparar um backfill (CLI) ou Clear no UI para forçar as execuções retroativas.

Ajuste seu código assim:

from airflow import DAG
from airflow.providers.databricks.operators.databricks import DatabricksRunNowOperator
from datetime import datetime

with DAG(
    dag_id="Executando-notebook-etl",
    start_date=datetime(2025, 7, 5),   
    schedule_interval="0 9 * * *",     
    catchup=True,                      
    max_active_runs=1                  
) as dag_executando_notebook_extracao:

    extraindo_dados = DatabricksRunNowOperator(
        task_id="Extraindo-conversoes",
        databricks_conn_id="databricks_default",
        job_id=123456,
      notebook_params={"data_execucao": '{{data_interval_end.strftime("%Y-%m-%d")}}'}
        }
    )
  • Em job_id=123456, substitua pelo ID do Job existente no Databricks. Use a data lógica do run (dia de referência), não "aqui".

Espero ter ajudado e qualquer dúvida, compartilhe no fórum.

Até mais, Samuel!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado!