4
respostas

DAG não funciona.

Quando vou flegar o Auto-refresh ele vai e volta, não fica ligado. Segue meu código:

from airflow import DAG
import pendulum
from airflow.operators.bash_operator import BashOperator
from airflow.operators.python_operator import PythonOperator
from airflow.macros import ds_add
from os.path import join
import pandas as pd

with DAG(
        "dados_climaticos",
        start_date=pendulum.datetime(2024, 6, 7, tz="UTC"),
        schedule_interval='0 0 * * 1', # executar toda segunda feira
    ) as dag:

    tarefa_1 = BashOperator(
        task_id = 'cria_pasta',
        bash_command = 'mkdir -p /home/kauesantana/Documents/airflowalura/semana={{data_interval_end.strftime("%Y-%m-%d")}}'
    )

    def extrai_dados(data_interval_end):
        city = 'Boston'
        key = 'LWM9SS9UZ7WURQYNHPXUR9G8R'

        URL = join('https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline/',
        f'{city}/{data_interval_end}/{ds_add(data_interval_end, 7)}?unitGroup=metric&include=days&key={key}&contentType=csv')

        dados = pd.read_csv(URL)

        file_path = f'/home/kauesantana/Documents/airflowalura/semana={data_interval_end}/'
        

        dados.to_csv(file_path + 'dados_brutos.csv')
        dados[['datetime', 'tempmin', 'temp', 'tempmax']].to_csv(file_path + 'temperaturas.csv')
        dados[['datetime', 'description', 'icon']].to_csv(file_path + 'condicoes.csv')

    tarefa_2 = PythonOperator(
        task_id = 'extrai_dados',
        python_callable = extrai_dados,
        op_kwargs = {'data_interval_end': '{{data_interval_end.strftime("%Y-%m-%d")}}'}
    )

    tarefa_1 >> tarefa_2
4 respostas

Oii, Kauê, tudo bem?

Seu código parece certinho.

Uma coisa que você pode fazer pra verificar se o Airflow executou direito é checar os logs.

Se não aparecer nenhum erro, você pode tentar:

  • Checar que você ativou o ambiente virtual e exportou a variável de ambiente AIRFLOW_HOME;
  • Tenta atualizar manualmente a página do Airflow no navegador para ver se o DAG é exibido;
  • Tentar reiniciar o Airflow standalone para ver se isso resolve o problema.

Se a dúvida persistir, estamos por aqui.

Abraços!

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

Segue os logs:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Kauê,

Como código nós não estamos configurando nenhuma opção relacionada ao Auto-refres, isso significa que o comportamento de ir e voltar pode estar relacionado a outras configurações ou interações na interface web do Airflow.

Uma dica que posso te dar é checar se você está ativando o Auto-refresh direitinho na interface web do Airflow. Normalmente, há um botão ou opção específica para ativar.

Além disso, você pode tentar ajustar algumas configurações do Airflow, como o intervalo de atualização da página, para ver se isso melhora o comportamento do Auto-refresh.

Se a dúvida persistir, estamos aqui.

Abraços!

Kauê,

Tive problema semelhante aqui, faça o teste abaixo para ver se o seu acesso ao site está ok:

Copie a URL gerada no seu código: URL = f"https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline/{city}/{data_inicio}/{data_fim}?unitGroup=metric&include=days&key={key}&contentType=csv"

print('URL:',URL)

Cole a URL gerada no navegador e tente executar Ao executar recebi a seguinte mensagem de erro: "You have exceeded the maximum number of daily result records for your account. Please add a credit card to continue retrieving results." Nesse caso não é um erro de código, mas excedeu o limite de dados ou o tempo liberado no acesso gratuito ao site virtualcorssiing.com

Solução: Crie uma nova conta no site https://www.visualcrossing.com/account, com outro endereço de e-mail. Vá na página Account details e copie a nova chave gerada (key). Substitua essa Key no seu código e execute. Aqui funcionou ok.