top of page
Search
riepropanargreento

Download Airflow



Introdução




O Airflow é uma plataforma de código aberto para desenvolver, agendar e monitorar fluxos de trabalho orientados a lotes. A estrutura Python extensível do Airflow permite que você crie fluxos de trabalho conectados a praticamente qualquer tecnologia. Uma interface da Web ajuda a gerenciar o estado de seus fluxos de trabalho. O Airflow pode ser implantado de várias maneiras, variando de um único processo em seu laptop a uma configuração distribuída para suportar até mesmo os maiores fluxos de trabalho.


Os fluxos de trabalho no Airflow são definidos como código Python, o que significa que são dinâmicos, extensíveis, flexíveis e testáveis. Os fluxos de trabalho podem ser armazenados no controle de versão, desenvolvidos por várias pessoas simultaneamente e parametrizados usando o mecanismo de modelagem Jinja. Os fluxos de trabalho consistem em tarefas que podem executar qualquer código arbitrário, como executar um trabalho do Spark, mover dados entre depósitos ou enviar um email. As tarefas podem ser configuradas com dependências, novas tentativas, alertas e muito mais.




download airflow




Se você preferir codificar a clicar, o Airflow é a ferramenta para você. O Airflow permite que você automatize e orquestre seus pipelines de dados, tarefas e trabalhos de maneira escalável, confiável e elegante. Neste artigo, você aprenderá como baixar e instalar o Airflow, como criar e executar um simples Airflow DAG (Directed Acyclic Graph), quais são os benefícios de usar o Airflow para gerenciamento de fluxo de trabalho e quais são algumas práticas recomendadas para otimizar o uso do Airflow.


Pré-requisitos




Antes de instalar o Airflow, você precisa verificar os pré-requisitos e as versões suportadas. Airflow requer Python como uma dependência. Portanto, o primeiro passo seria verificar a instalação do Python no servidor onde você deseja configurar o Airflow. Isso pode ser facilmente alcançado fazendo login no seu servidor e executando o comando python --versão ou python3 --versão.


O Airflow é testado com Python 3.7, 3.8, 3.9, 3.10 e 3.11. Você pode usar qualquer uma dessas versões para executar o Airflow.No entanto, recomendamos usar a versão estável mais recente do Python para melhor desempenho e compatibilidade.


O Airflow também requer um back-end de banco de dados para armazenar seus metadados e informações de estado. Você pode usar PostgreSQL, MySQL, SQLite ou MSSQL como backend de banco de dados. No entanto, o SQLite é usado apenas para fins de teste e não deve ser usado em produção. O PostgreSQL é o back-end de banco de dados mais usado para Airflow e tem o melhor suporte e recursos.


A memória mínima necessária que recomendamos para executar o Airflow é de 4 GB, mas os requisitos reais dependem muito das opções de implantação que você escolher. Você também deve verificar o página na documentação oficial do Airflow para mais detalhes.


Instalação




Existem diferentes maneiras de instalar o Airflow dependendo de suas preferências e necessidades. Você pode instalar o Airflow a partir do PyPI (Python Package Index), de fontes (lançadas pela Apache Software Foundation) ou usando imagens do Docker ou gráficos do Helm (para implantações do Kubernetes). Neste artigo, vamos nos concentrar na instalação do Airflow do PyPI ou de fontes.


Instalando a partir do PyPI




Esse método de instalação é útil quando você não está familiarizado com contêineres e Docker e deseja instalar o Apache Airflow em máquinas físicas ou virtuais usando mecanismos de implantação personalizados. Você pode usar o pip (gerenciador de pacotes Python) para instalar o Airflow do PyPI.


Para instalar o Airflow do PyPI, você precisa seguir estas etapas:


  • Crie um ambiente virtual para a instalação do Airflow usando python -m venv . Por exemplo: python -m venv airflow-envAtive o ambiente virtual usando source /bin/activate. Por exemplo: source airflow-env/bin/activate



  • Atualize o pip para a versão mais recente usando pip install --upgrade pip



  • Instale o Airflow usando pip instalar apache-airflow. Você também pode especificar a versão do Airflow que deseja instalar usando pip instalar apache-airflow==. Por exemplo: pip instalar apache-airflow==2.2.3



  • Opcionalmente, você também pode instalar pacotes ou provedores extras para o Airflow usando pip instalar apache-airflow[extras]. Por exemplo: pip instalar apache-airflow[postgres,google]. Você pode conferir a lista de extras e provedores disponíveis no página na documentação oficial do Airflow.



  • Inicialize o banco de dados para o Airflow usando fluxo de ar db init. Isso criará as tabelas e usuários necessários para o Airflow no back-end do seu banco de dados.



  • Crie uma conta de usuário para acessar a interface da Web do Airflow usando usuários do airflow criam --username --password --firstname --lastname --role Admin --email . Por exemplo: usuários do airflow criam --username admin --password admin123 --firstname John --lastname Doe --role Admin --email john.doe@example.com



  • Inicie o servidor da web do Airflow usando servidor web airflow. Isso iniciará o servidor da Web na porta 8080 por padrão. Você pode alterar a porta usando o --porta opção.



  • Inicie o agendador do Airflow usando agendador de fluxo de ar. Isso iniciará o processo do agendador que monitora e aciona seus fluxos de trabalho.



  • Abra seu navegador e navegue até Você deve ver a interface da Web do Airflow, onde pode fazer login com sua conta de usuário e gerenciar seus fluxos de trabalho.



Instalando a partir das fontes




Esse método de instalação é útil quando você deseja instalar a versão de desenvolvimento mais recente do Airflow ou quando deseja personalizar ou contribuir com a base de código do Airflow. Você pode instalar o Airflow a partir de fontes clonando o repositório GitHub e construindo-o localmente.


Para instalar o Airflow a partir de fontes, você precisa seguir estas etapas:


Clone o repositório GitHub do Airflow usando git clone


  • Navegue até o diretório clonado usando fluxo de ar do cd



  • Crie um ambiente virtual para a instalação do Airflow usando python -m venv . Por exemplo: python -m venv airflow-env



  • Ative o ambiente virtual usando source /bin/activate. Por exemplo: source airflow-env/bin/activate



  • Atualize o pip para a versão mais recente usando pip install --upgrade pip



  • Instale todas as dependências do Airflow usando pip install -e .[todos]. Isso instalará todos os extras e provedores do Airflow, bem como algumas ferramentas de desenvolvimento.



  • Se você deseja executar testes ou usar o Breeze (ambiente de desenvolvimento para Airflow), também precisa instalar algumas dependências adicionais usando pip install -e .[desenvolver].



  • Agora você pode seguir as mesmas etapas da instalação do PyPI para inicializar o banco de dados, criar uma conta de usuário, iniciar o servidor da Web e o agendador e acessar a interface da Web.



Tutorial




Nesta seção, mostraremos como criar e executar um Airflow DAG simples que imprime "Hello, world!" para o console. Um DAG é uma coleção de tarefas que definem um fluxo de trabalho no Airflow. Cada tarefa é uma instância de um operador, que é uma classe que define qual ação executar. Os operadores podem ser integrados (como BashOperator, PythonOperator etc.) ou personalizados (como sua própria classe Python).


Criando um arquivo DAG




Para criar um DAG no Airflow, você precisa escrever um script Python que defina o objeto DAG e suas tarefas. O script deve ser colocado no dags pasta no diretório inicial do Airflow (que geralmente é $AIRFLOW_HOME/dags). O script deve ter uma extensão .py e seguir algumas convenções de nomenclatura. Por exemplo, você pode nomear seu script hello_world.py.


A estrutura básica de um arquivo DAG é a seguinte:


# Importe os módulos e classes que você precisa do airflow import DAG from airflow.operators.bash import BashOperator from datetime import datetime # Defina os argumentos padrão para o DAG default_args = 'owner': 'airflow', 'start_date': datetime(2023, 6, 20), 'retries': 1, 'retry_delay': timedelta(minutes=5), # Instancia o objeto DAG dag = DAG( dag _id='hello_world', default_args=default_args, schedule_interval='@daily', ) # Defina as tarefas para o DAG task_1 = BashOperator( task_id='print_hello', bash_command='echo "Hello, world!"', dag=dag, ) task_2 = BashOperator( task_id='print_goodbye', bash_command='echo " Adeus, mundo!"', dag=dag, ) # Defina as dependências para as tarefas task_1 >> task_2


Vamos detalhar esse código e explicar o que ele faz:


  • As primeiras linhas importam os módulos e classes que precisamos para criar o DAG e suas tarefas. Importamos a classe DAG de airflow, a classe BashOperator de airflow.operators.bash e as classes datetime e timedelta de datetime.



  • Em seguida, definimos os argumentos padrão para o DAG. Estes são um dicionário de parâmetros que se aplicam a todas as tarefas no DAG. Especificamos o proprietário do DAG, a data de início do DAG, o número de novas tentativas para cada tarefa e o atraso entre as novas tentativas.



  • Em seguida, instanciamos o objeto DAG usando a classe DAG. Passamos o dag_id, que é um identificador exclusivo para o DAG, o default_args, que são os argumentos que definimos anteriormente, e o schedule_interval, que é uma expressão cron que define com que frequência o DAG deve ser executado. Nesse caso, usamos '@daily', o que significa que o DAG será executado uma vez por dia à meia-noite.



  • Depois disso, definimos as tarefas para o DAG usando a classe BashOperator. Essa classe nos permite executar um comando bash como uma tarefa. Passamos o task_id, que é um identificador único para cada tarefa, o bash_command, que é o comando que queremos executar, e o dag, que é o objeto DAG que criamos anteriormente.



  • Finalmente, definimos as dependências das tarefas usando o operador >>. Esse operador define uma dependência downstream entre duas tarefas, o que significa que a tarefa à esquerda deve ser concluída antes que a tarefa à direita possa ser iniciada. Nesse caso, definimos task_1 como uma dependência de task_2, o que significa que task_1 deve imprimir "Hello, world!" antes que task_2 possa imprimir "Adeus, mundo!".



Executando um DAG




Depois de criar seu arquivo DAG e colocá-lo na pasta dags, você pode executá-lo usando o Airflow. Há duas maneiras de executar um DAG: manualmente ou automaticamente.


Executando um DAG manualmente




Para executar um DAG manualmente, você pode usar a interface da Web do Airflow ou a CLI do Airflow (interface de linha de comando).


Para executar um DAG manualmente usando a interface da web, você precisa seguir estas etapas:


  • Abra seu navegador e navegue até Você deve ver seu DAG hello_world listado na página inicial.



  • Clique em seu DAG hello_world para abrir sua página de detalhes.



  • Clique no botão Trigger Dag na parte superior da página para acionar uma instância do seu DAG.



  • Clique no botão Visualização de gráfico na parte superior da página para ver suas tarefas e suas dependências.



  • Clique em cada tarefa para ver seu status e logs.



Executando um DAG automaticamente




Para executar um DAG automaticamente, você precisa contar com o agendador do Airflow. O agendador é responsável por acionar seus fluxos de trabalho com base em seu schedule_interval. O agendador é executado como um processo separado de seu servidor web e precisa ser iniciado separadamente.


Para executar um DAG automaticamente usando o agendador, você precisa seguir estas etapas:


  • Inicie seu servidor da web Airflow usando servidor web airflow.



  • Inicie seu agendador do Airflow usando agendador de fluxo de ar.



  • Aguarde o seu schedule_interval decorrer. Por exemplo, se seu schedule_interval for '@daily', aguarde a meia-noite passar.



  • Verifique sua interface da Web ou CLI para ver se seu DAG foi acionado e executado pelo agendador.



Benefícios




Agora que você sabe como baixar e instalar o Airflow e como criar e executar um Airflow DAG simples, deve estar se perguntando quais são os benefícios de usar o Airflow para gerenciamento de fluxo de trabalho. Aqui estão alguns dos principais benefícios do Airflow:


  • Código como configuração: O Airflow permite que você defina seus fluxos de trabalho como código Python, o que oferece controle total e flexibilidade sobre sua lógica, dependências, parâmetros e muito mais. Você também pode aproveitar o poder das bibliotecas e estruturas do Python para aprimorar seus fluxos de trabalho.



  • Escalabilidade e confiabilidade: O Airflow pode ser dimensionado para lidar com qualquer tamanho e complexidade de fluxos de trabalho, desde scripts simples até pipelines de dados complexos. O Airflow também garante que seus fluxos de trabalho sejam confiáveis e resilientes, lidando com falhas, novas tentativas, alertas, registros e monitoramento.



  • Extensibilidade e integração: O Airflow possui um rico ecossistema de plug-ins, provedores, ganchos, sensores, operadores e executores que permitem a integração com praticamente qualquer tecnologia ou serviço. Você também pode criar seus próprios componentes personalizados para atender às suas necessidades específicas.



  • Interface da Web e CLI: O Airflow fornece uma interface web amigável que permite gerenciar e monitorar seus fluxos de trabalho. Você também pode usar a CLI para executar várias tarefas, como acionar, testar, depurar ou inspecionar seus fluxos de trabalho.



  • Comunidade e apoio: O Airflow é um projeto de código aberto apoiado por uma grande e ativa comunidade de desenvolvedores e usuários. Você pode encontrar ajuda e orientação na documentação oficial, listas de e-mail, canais Slack, fóruns, blogs, podcasts, vídeos, livros, cursos e muito mais.



Melhores Práticas




Para aproveitar ao máximo o Airflow, você deve seguir algumas práticas recomendadas que o ajudarão a otimizar o desempenho, a capacidade de manutenção, a legibilidade e a segurança do fluxo de trabalho. Aqui estão algumas das melhores práticas para usar o Airflow:


  • Use nomes significativos: Você deve usar nomes descritivos e consistentes para seus DAGs, tarefas, operadores, variáveis, conexões, etc.Isso tornará seu código mais fácil de ler e entender por você e por outras pessoas.



  • Organize seu código: Você deve estruturar seu código de forma modular e reutilizável. Você pode usar funções, classes, módulos, pacotes, etc. para organizar seu código. Você também pode usar para parametrizar seu código.



  • Documente seu código: Você deve adicionar comentários e docstrings ao seu código para explicar o que ele faz e por quê. Você também pode usar o doc_md argumento em seu DAG e definições de tarefa para adicionar a documentação de remarcação que será exibida na interface da web.



  • Teste seu código: Você deve testar seu código antes de implantá-lo na produção. Você pode usar o teste de tarefas de fluxo de ar comando para testar tarefas individuais ou o teste de fluxo de ar comando para testar DAGs inteiros. Você também pode usar estruturas de teste de unidade, como pytest ou unittest, para escrever testes automatizados para seu código.



  • Evite valores de codificação permanente: Você deve evitar valores embutidos em código, como credenciais, caminhos, URLs, etc. em seu código. Em vez disso, você deve usar , ou variáveis de ambiente para armazenar e acessar esses valores com segurança.



  • Agende sabiamente: Você deve agendar seus fluxos de trabalho de acordo com sua frequência e prioridade. Você deve evitar agendas sobrepostas ou conflitantes que possam causar contenção de recursos ou inconsistência de dados. Você também deve usar para lidar com as mudanças de horário de verão.



  • Mantenha a integridade do DAG: Você deve garantir que seus DAGs sejam válidos e consistentes durante todo o ciclo de vida. Você deve evitar alterar o dag_id ou start_date de um DAG após sua implantação. Você também deve evitar criar dependências cíclicas ou dinâmicas em seus DAGs.



  • Migre com elegância: Você deve seguir o etapas ao atualizar de uma versão do Airflow para outra.Você também deve fazer backup de seu banco de dados e testar seus fluxos de trabalho antes de atualizar.



  • Desempenho de ajuste: Você deve monitorar e otimizar o desempenho de seus fluxos de trabalho usando várias ferramentas e técnicas, como guia na documentação oficial do Airflow para mais dicas e truques.



Conclusão




Neste artigo, você aprendeu como baixar e instalar o Airflow, como criar e executar um Airflow DAG simples, quais são os benefícios de usar o Airflow para gerenciamento de fluxo de trabalho e quais são algumas práticas recomendadas para otimizar o uso do Airflow. Você também viu alguns exemplos de código e comandos que podem ser usados para começar a usar o Airflow.


O Airflow é uma plataforma poderosa e flexível para desenvolver, agendar e monitorar fluxos de trabalho orientados a lotes. A estrutura Python extensível do Airflow permite que você crie fluxos de trabalho conectados a praticamente qualquer tecnologia. Uma interface da Web ajuda a gerenciar o estado de seus fluxos de trabalho. O Airflow pode ser implantado de várias maneiras, variando de um único processo em seu laptop a uma configuração distribuída para suportar até mesmo os maiores fluxos de trabalho.


Se você quiser saber mais sobre o Airflow, confira o , que é um grupo vibrante e diversificado de desenvolvedores e usuários apaixonados pelo Airflow e ansiosos para ajudar e compartilhar seu conhecimento e experiência.


Esperamos que você tenha gostado deste artigo e o tenha achado útil. Feliz fluxo de ar!


perguntas frequentes




Aqui estão algumas perguntas e respostas comuns sobre o Airflow:


Qual é a diferença entre o Airflow e outras ferramentas de gerenciamento de fluxo de trabalho?




O Airflow é diferente de outras ferramentas de gerenciamento de fluxo de trabalho de várias maneiras. Algumas das principais diferenças são:


  • O Airflow usa Python como linguagem de configuração, o que facilita escrever, ler, testar e depurar fluxos de trabalho.



  • O Airflow possui um rico ecossistema de plug-ins, provedores, ganchos, sensores, operadores e executores que permitem a integração com praticamente qualquer tecnologia ou serviço.



  • O Airflow possui uma interface web amigável que permite gerenciar e monitorar seus fluxos de trabalho.



  • O Airflow é de código aberto e é suportado por uma grande e ativa comunidade de desenvolvedores e usuários.



Como posso solucionar problemas do Airflow?




Se você encontrar algum problema ou erro ao usar o Airflow, poderá usar os seguintes métodos para resolvê-los:


  • Verifique os logs do seu servidor web, agendador, trabalhadores, tarefas, etc. Você pode encontrar os logs no $AIRFLOW_HOME/logs diretório por padrão.



  • Use a interface da web ou CLI para inspecionar o status e os detalhes de seus DAGs e tarefas.



  • Use o teste de tarefas de fluxo de ar ou teste de fluxo de ar comandos para testar suas tarefas ou DAGs localmente.



  • Use o informação do fluxo de ar comando para obter informações sobre a instalação e configuração do Airflow.



  • Use o médico de fluxo de ar comando para diagnosticar problemas comuns com a configuração do Airflow.



  • Pesquise problemas ou perguntas semelhantes no , ou outros fóruns online.



  • Peça ajuda à comunidade Airflow no , ou outros fóruns online.



Como posso contribuir com o Airflow?




Se você deseja contribuir com o Airflow, é muito bem-vindo. Há muitas maneiras de contribuir com o Airflow, como:


  • Relate bugs ou sugira recursos no .



  • Envie solicitações pull para correções de bugs ou novos recursos no .



  • Revise as solicitações pull de outros colaboradores no .



  • Escreva ou atualize a documentação do Airflow no .



  • Crie ou melhore plug-ins, provedores, ganchos, sensores, operadores ou executores para o Airflow no ou seus próprios repositórios.



  • Compartilhe seu conhecimento e experiência com o Airflow em blogs, podcasts, vídeos, livros, cursos, etc.



  • Ajude outros usuários do Airflow no , ou outros fóruns online.



Para começar a contribuir com o Airflow, você deve ler o guia sobre a documentação oficial do Airflow. Ele contém informações detalhadas sobre como configurar seu ambiente de desenvolvimento, como seguir os padrões e diretrizes de codificação, como enviar e revisar solicitações pull, como escrever e executar testes, como escrever e atualizar a documentação e muito mais.


Como posso saber mais sobre o Airflow?




Se você quiser saber mais sobre o Airflow, há muitos recursos disponíveis on-line que podem ajudá-lo. Alguns dos recursos são:


  • O , que contém informações detalhadas sobre todos os recursos, componentes, conceitos e APIs do Airflow.



  • O , que contém o código-fonte, problemas, solicitações pull e versões do Airflow.



  • O , que é um fórum para discutir tópicos e anúncios relacionados ao Airflow.



  • O , que é uma plataforma para fazer e responder perguntas relacionadas ao Airflow.



  • O , que é uma sala de bate-papo para interagir com outros usuários e desenvolvedores do Airflow.



  • O list, que é uma lista selecionada de recursos incríveis relacionados ao Airflow.



  • O , que contém vídeos de palestras, webinars, tutoriais e demonstrações relacionadas ao Airflow.



  • O , que apresenta entrevistas com especialistas e profissionais do Airflow.



  • O , que contém artigos e histórias sobre casos de uso do Airflow, práticas recomendadas, dicas e truques e muito mais.



  • O , que é um guia abrangente para aprender e dominar o Airflow.



  • O , que é um curso online que ensina como usar o Airflow do zero.



Quais são algumas alternativas ao Airflow?




O Airflow não é a única ferramenta de gerenciamento de fluxo de trabalho disponível no mercado. Existem algumas alternativas ao Airflow que você pode querer considerar, dependendo de suas necessidades e preferências. Algumas das alternativas são:


  • Luigi: Luigi é uma estrutura Python de código aberto para criar pipelines complexos de trabalhos em lote. Ele lida com resolução de dependência, gerenciamento de fluxo de trabalho, visualização, tratamento de falhas, integração de linha de comando e muito mais. O Luigi é semelhante ao Airflow em muitos aspectos, mas tem algumas diferenças em termos de design e recursos. Por exemplo, o Luigi não possui uma interface web ou um agendador por padrão, mas depende de ferramentas externas, como cron ou Kubernetes. O Luigi também não possui tantas integrações ou plugins quanto o Airflow, mas possui um núcleo mais simples e leve.



  • Prefeito: Prefect é uma estrutura Python de código aberto para criar pipelines de dados robustos, escaláveis e elegantes. Prefect lida com orquestração, agendamento, registro, monitoramento, novas tentativas, alertas e muito mais. O Prefect é inspirado no Airflow, mas tem algumas diferenças em termos de design e recursos. Por exemplo, o Prefect separa a lógica de seus fluxos de trabalho da execução de seus fluxos de trabalho, permitindo que você execute seus fluxos de trabalho em qualquer plataforma ou ambiente. Prefect também possui um serviço de nuvem que fornece uma interface web, um agendador, um banco de dados e outros recursos para gerenciar seus fluxos de trabalho.



  • Dagster: O Dagster é uma estrutura Python de código aberto para criar aplicativos de dados testáveis, confiáveis e escaláveis. O Dagster lida com orquestração, configuração, verificação de tipo, registro, monitoramento, teste e muito mais. O Dagster é diferente do Airflow em muitos aspectos, mas tem algumas semelhanças em termos de design e recursos.Por exemplo, Dagster também usa código Python para definir fluxos de trabalho e tarefas, mas tem uma sintaxe mais expressiva e segura. O Dagster também possui uma interface web e um agendador, mas também suporta outros modos de execução, como notebooks ou scripts.



  • Funções de etapa da AWS: O AWS Step Functions é um serviço de nuvem que fornece um serviço totalmente gerenciado para orquestrar fluxos de trabalho sem servidor. O AWS Step Functions lida com coordenação, gerenciamento de estado, tratamento de erros, novas tentativas, paralelização e muito mais. O AWS Step Functions é diferente do Airflow em muitos aspectos, mas tem algumas semelhanças em termos de design e recursos. Por exemplo, o AWS Step Functions também usa uma estrutura semelhante a DAG para definir fluxos de trabalho e tarefas, mas usa JSON ou YAML em vez de código Python. O AWS Step Functions também possui uma interface web e um agendador, mas também se integra a outros serviços da AWS, como Lambda, S3, DynamoDB, etc.






Este é o fim do artigo. Obrigado por ler e espero que tenha achado útil. Se você tiver algum comentário ou pergunta, sinta-se à vontade para deixar um comentário abaixo ou entre em contato diretamente comigo. 0517a86e26


1 view0 comments

Recent Posts

See All

Comments


bottom of page