Pular para o conteúdo
Skillpedia
Deploy e nuvem (DevOps)41 mil · #4836

airflow-dag-patterns

Faz seu agente criar fluxos de trabalho automatizados para processar dados. Ele usa o Airflow para organizar tarefas, como agendar trabalhos ou executar processos de dados importantes.

O que ela faz

Esta ferramenta ajuda a criar fluxos de trabalho automatizados (chamados DAGs) para o Apache Airflow. Ela ensina as melhores práticas para organizar tarefas, garantir que elas funcionem corretamente e sejam fáceis de gerenciar.

Quando usar

  • ✓Ao criar um processo automático para mover ou processar dados.
  • ✓Ao precisar que um conjunto de tarefas seja executado em uma ordem específica.
  • ✓Ao configurar tarefas que precisam ser repetidas em horários definidos.

Exemplo do que pedir para a IA

“Como posso criar um fluxo de trabalho que baixa um arquivo todo dia às 6 da manhã e depois o processa?”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/wshobson/agents/blob/main/plugins/data-engineering/skills/airflow-dag-patterns/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/wshobson/agents/blob/main/plugins/data-engineering/skills/airflow-dag-patterns/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta fornece modelos e exemplos de código que mostram como definir tarefas, suas dependências e configurações importantes. Ela segue princípios como garantir que uma tarefa possa ser executada várias vezes sem problemas (idempotência) e que cada tarefa tenha um resultado claro (atômica).

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add wshobson/agents --skill airflow-dag-patterns

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/wshobson/agents/main/plugins/data-engineering/skills/airflow-dag-patterns/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Padrões de DAG do Apache Airflow

Padrões prontos para produção para o Apache Airflow, incluindo design de DAG, operadores, sensores, testes e estratégias de implantação.

Quando Usar Esta Habilidade

  • Criando orquestração de pipeline de dados com Airflow
  • Projetando estruturas e dependências de DAG
  • Implementando operadores e sensores personalizados
  • Testando DAGs do Airflow localmente
  • Configurando o Airflow em produção
  • Depurando execuções de DAG com falha

Conceitos Principais

1. Princípios de Design de DAG

Princípio Descrição
Idempotente Executar duas vezes produz o mesmo resultado
Atômico Tarefas são bem-sucedidas ou falham completamente
Incremental Processa apenas dados novos/alterados
Observável Logs, métricas, alertas em cada etapa

2. Dependências de Tarefas

# Linear
task1 >> task2 >> task3

# Fan-out
task1 >> [task2, task3, task4]

# Fan-in
[task1, task2, task3] >> task4

# Complex
task1 >> task2 >> task4
task1 >> task3 >> task4

Início Rápido

# dags/example_dag.py
from datetime import datetime, timedelta
from airflow import DAG
from airflow.operators.python import PythonOperator
from airflow.operators.empty import EmptyOperator

default_args = {
    'owner': 'data-team',
    'depends_on_past': False,
    'email_on_failure': True,
    'email_on_retry': False,
    'retries': 3,
    'retry_delay': timedelta(minutes=5),
    'retry_exponential_backoff': True,
    'max_retry_delay': timedelta(hours=1),
}

with DAG(
    dag_id='example_etl',
    default_args=default_args,
    description='Example ETL pipeline',
    schedule='0 6 * * *',  # Daily at 6 AM
    start_date=datetime(2024, 1, 1),
    catchup=False,
    tags=['etl', 'example'],
    max_active_runs=1,
) as dag:

    start = EmptyOperator(task_id='start')

    def extract_data(**context):
        execution_date = context['ds']
        # Extract logic here
        return {'records': 1000}

    extract = PythonOperator(
        task_id='extract',
        python_callable=extract_data,
    )

    end = EmptyOperator(task_id='end')

    start >> extract >> end

Padrões detalhados e exemplos práticos

A documentação detalhada dos padrões está em references/details.md. Leia esse arquivo quando o nível de navegação acima for insuficiente.

Melhores Práticas

Faça

  • Use a API TaskFlow - Código mais limpo, XCom automático
  • Defina timeouts - Evita tarefas zumbis
  • Use mode='reschedule' - Para sensores, libera workers
  • Teste DAGs - Testes unitários e testes de integração
  • Tarefas idempotentes - Seguro para retentar

Não Faça

  • Não use depends_on_past=True - Cria gargalos
  • Não codifique datas - Use macros {{ ds }}
  • Não use estado global - Tarefas devem ser sem estado
  • Não pule o catchup cegamente - Entenda as implicações
  • Não coloque lógica pesada no arquivo DAG - Importe de módulos
Perguntas frequentes

O que é um DAG?

DAG é a sigla para Directed Acyclic Graph (Grafo Acíclico Direcionado). Pense nele como um mapa que mostra as tarefas que precisam ser feitas e a ordem em que elas devem acontecer, sem criar ciclos (ou seja, sem voltar ao início).

Por que é importante que as tarefas sejam 'idempotentes'?

Ser idempotente significa que executar uma tarefa várias vezes seguidas tem o mesmo resultado que executá-la apenas uma vez. Isso é crucial para a confiabilidade, pois se uma tarefa falhar e precisar ser reiniciada, você tem a garantia de que o resultado final não será alterado.

O que são 'operadores' e 'sensores'?

Operadores são os blocos de construção básicos de um DAG, representando uma ação a ser executada (como rodar um script Python). Sensores são um tipo especial de operador que espera por algo acontecer antes de continuar (como esperar um arquivo chegar).

Detalhes

Descrição original do autor

Build production Apache Airflow DAGs with best practices for operators, sensors, testing, and deployment. Use when creating data pipelines, orchestrating workflows, or scheduling batch jobs.

repo: wshobson/agents

Popularidade

Estrelas no GitHub
41 mil
Posição no ranking
#4836
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas