Boas-vindas ao curso de orquestração de pipelines (fluxos de dados) com Apache Airflow. Nesta aula, nós vamos entender como funcionará a dinâmica do curso e quais temas vamos abordar.
Olá! Meu nome é Oscar Meyer.
Audiodescrição: Sou um homem de pele clara, com barba curta, cabelo curto e escuro, e uso óculos de armação quadrada. Ao fundo, há uma guitarra e algumas decorações, como mangás e figuras de ação, em uma estante de livros.
Tenho mais de 10 anos de carreira, atuando sempre com dados. Fui DBA, trabalhei com engenharia de dados e, atualmente, sou arquiteto de soluções na Datasight. Meu trabalho é ajudar clientes, como consultor, a alcançar seus objetivos transformando negócios com dados e IA. No meu dia a dia, convivo com arquiteturas de dados, sistemas baseados em agentes e todo o ecossistema de dados moderno, com Big Data (grandes volumes de dados). Minha especialidade é focada em AWS; possuo a certificação AWS Data Analytics Specialty e utilizo esse conhecimento para orientar o melhor caminho para nossos clientes.
Neste curso, nosso objetivo é transmitir parte desse conhecimento sobre o uso do Apache Airflow no dia a dia. Nós vamos seguir uma linha de raciocínio que vai da fundamentação até a execução em um projeto prático.
Nosso foco é entender o que é o Airflow, para que serve e quais bases precisamos dominar para começar a utilizá-lo em uma arquitetura de dados. O primeiro ponto será compreender o problema que o Airflow resolve: para que ele serve, qual é a forma mais adequada de utilizá-lo e como funciona em comparação com outras ferramentas do mercado.
Em seguida, nós vamos explorar o ecossistema do Airflow para captar os conceitos essenciais necessários antes de partirmos para um projeto prático e executarmos tudo de forma clara.
Depois da parte de fundamentos e concepção, nós passaremos à etapa prática. A partir daí, todo o curso será focado em prática: nós vamos configurar o ambiente do Airflow, escrever DAGs em Python usando alguns operadores, acompanhar a execução, configurar, testar, gerenciar credenciais e realizar otimizações após a nossa primeira versão da DAG.
É importante enfatizar que o objetivo aqui não é escrever código por si só. Hoje conseguimos escrever código com muito mais facilidade e contamos com o apoio de IA generativa para colaborar nesse processo. Nosso foco será compreender os conceitos da ferramenta, como usá-la e como aplicá-la. Depois disso, o código poderá ser escrito de forma natural: nós vamos testar, validar e usar a IA como copiloto para nos ajudar no trabalho.
A proposta é observar o ecossistema do Airflow e compreendê-lo de ponta a ponta, entendendo como tudo funciona.
Eu vou orientar você nesta jornada. Nesta primeira aula, focamos nos fundamentos do Airflow.
Nos vemos no próximo vídeo. Agradeço.
Bem-vindo a um novo vídeo do nosso curso. Aqui vamos falar sobre qual é o objetivo do Airflow e por que ele existe. Antes de tudo, bem-vindo ao Airflow. Eu espero que você goste de trabalhar com a ferramenta. É uma ferramenta muito potente e presente em diversos contextos de ambientes de dados.
Primeiro, o que o Airflow resolve? Ao analisarmos o Airflow, devemos entendê-lo como um orquestrador. O objetivo de um orquestrador é gerenciar tarefas, determinar o fluxo de execução, o controle e os logs (registros). Seu objetivo principal é resolver os problemas dos pipelines (fluxos de dados), garantindo que o início, o meio e o fim ocorram na ordem correta e com os logs (registros) adequados.
Quando não temos um orquestrador, enfrentamos alguns problemas, principalmente relacionados a scripts (scripts) soltos e à gestão de agendamento com o Cron. Quando trabalhamos com tudo solto, começamos a comprometer o ambiente. Primeiro, existem dependências implícitas. Imagine que temos um script (script) que gerencia vários scripts (scripts). Ao executar esse script (script) principal, não vemos o que está acontecendo internamente: quais scripts (scripts) estão sendo chamados e o que ocorre entre eles. Há um problema de dependência implícita: se o script (script) principal falhar, todos os demais também falharão, e não teremos clareza de que isso está ocorrendo. Também podemos ter uma dependência que não faz sentido: um script (script) sem relação com outro pode impactar sua execução. Esse é um grande problema de orquestração.
A falta de visibilidade é outro grande problema. Imagine um ambiente no qual executamos vários pipelines (fluxos de dados) e tudo o que temos é apenas um script (script) único que executa tudo de uma vez, ao mesmo tempo. Nesse cenário, sem um orquestrador, temos falta de controle e de visibilidade na gestão dos nossos pipelines (fluxos de dados).
Quando surge um problema, como lidamos com ele? Realizamos um retry (nova tentativa) manual? E quando precisamos entender a causa do problema, como vamos acessar os logs (registros)? Como gerenciamos esses registros? Onde os vemos? E, principalmente, como podemos nos antecipar a esse problema?
Tudo tem solução, mas são caminhos árduos. Para realizar uma orquestração mínima sem utilizar uma ferramenta de orquestração, precisamos fazer um trabalho enorme — algo com que não deveríamos lidar, já que existem ferramentas de orquestração como o Airflow.
Nós veremos, inclusive, o aspecto visual dessa orquestração na tela. Por exemplo, em um cenário com três scripts (scripts) — com destaque para o terceiro — e um dashboard (painel) que deve ser atualizado após a execução desses scripts (scripts), fica claro como um orquestrador oferece controle, visibilidade e gestão adequada de dependências e de logs (registros).
Se formos trabalhar no modelo tradicional, sem um orquestrador, basicamente teremos de criar um script (arquivo de código) principal que chama todos os demais scripts (arquivos de código). Entramos na execução desse script (arquivo de código), que chama outro, que chama cada um dos demais e, ao finalizar o último, chamamos a atualização do dashboard (painel), que é uma interação com uma API.
Esse seria o fluxo principal. Porém, aqui ocorre o problema mencionado: no main, o que vemos é apenas o main, sem visibilidade do que está sendo executado abaixo. Podemos criar algumas estruturas de controle, mas, ao fim, isso equivale a executar o interpretador Python com o nome do arquivo, e tudo se torna difícil de acompanhar.
Além disso, neste cenário estamos realizando uma orquestração. Para exemplificar a orquestração, consideramos uma seta que indica a sequência: estamos orquestrando apenas um script (arquivo de código). Isso significa que todos serão executados ao meio-dia, com base na orquestração aqui definida, que pode ser um Cron, por exemplo, chamando todos os que estão abaixo.
Mas e se, por exemplo, o terceiro script (arquivo de código) não precisasse ser executado ao meio-dia e, em vez disso, devesse ser executado apenas às 3 da manhã? O que teríamos de fazer? Precisaríamos remover esse script (arquivo de código) do main, talvez criar outro main para ele e, então, criar uma orquestração específica para outro horário. Isso começa a se tornar cada vez mais complexo. Vamos marcar este como “manhã”. Como monitoramos isso? Como vemos o que está acontecendo nesses scripts (arquivos de código)? Tudo se torna muito complexo.
Para resolver esse problema, utilizamos o que chamamos de orquestradores, e o workflow (fluxo de trabalho) é um orquestrador. Nesse cenário, temos uma ferramenta de orquestração que, internamente, possui mecanismos para gerenciar os scripts (arquivos de código) como tarefas. Podemos organizá-los visualmente em uma interface, ter a visão de qual é o script (arquivo de código) de cada tarefa e o que aconteceu individualmente com cada uma. Podemos configurar execuções separadas ou dependências entre elas.
Outro ponto muito interessante: quando falamos do workflow (fluxo de trabalho), contamos com operadores, que veremos mais adiante. Com eles, podemos interagir com outras ferramentas de forma nativa. Por exemplo, se for necessário interagir com uma ferramenta como o Databricks, que é uma plataforma de dados, e quisermos chamar um job (tarefa) lá dentro, sem um orquestrador teríamos de criar um script (arquivo de código) que interage com a API do Databricks, fazer a autenticação, executar todas as etapas e, então, chamar o método runJob, por exemplo. Com o workflow (fluxo de trabalho), podemos usar um operador que abstrai toda essa parte de comunicação com as APIs e chamá-lo diretamente para a tarefa desejada. Se quisermos executar um job (tarefa), chamamos um operador do Databricks para isso. Assim, não precisamos criar scripts (arquivos de código) de autenticação nem de interação com a API, pois estamos utilizando algo pronto. Há operadores para diversas finalidades.
Além da orquestração dentro do Airflow, ganhamos visibilidade sobre como gerenciar tudo isso, sem a necessidade de criar scripts (arquivos de código) que façam a autenticação de cada integração. Criamos DAGs, temos várias DAGs, agendamentos separados, dependências declaradas, monitoramento do estado das DAGs, centralização de registros e interação com ferramentas de forma nativa usando operadores. Também podemos notificar problemas. Tudo isso acontece dentro do ecossistema do Airflow de forma nativa.
É por isso que utilizamos o Airflow. Em breve, falaremos no próximo conteúdo sobre os fundamentos do Airflow. Nos vemos lá. Agradecemos.
Vamos descobrir o que é o Apache Airflow e quando utilizá-lo. Como já comentamos, e vamos reforçar em vários momentos do nosso aprendizado, o Airflow é uma ferramenta de orquestração: uma plataforma de código aberto cujo objetivo é criar, programar e monitorar fluxos de trabalho.
Em termos gerais, é isso. Porém, em detalhe, “criar” não é simplesmente criar um agendamento. Ao final do dia, estamos falando de criar e programar. Ao falar em “criar”, referimo-nos ao uso de operadores que facilitam nosso trabalho, ao uso de programação para montar DAGs (grafos acíclicos direcionados) dinâmicas e à aplicação de inteligência na gestão de artefatos. “Programar” de forma inteligente significa que podemos agendar por horário ou disparar com base em um evento que construirmos. O “monitoramento” é um dos pontos mais importantes: conseguimos, de forma centralizada, agrupar todo o nosso ecossistema de dados em uma única ferramenta de monitoramento e observabilidade.
Quando olhamos para o contexto de monitoramento, o Airflow está muito presente em ambientes com várias ferramentas. Podemos ter uma ferramenta para ingestão, outra para processamento, outra para visualização em painéis, e tudo isso ficaria muito separado. Precisaríamos configurar a atualização do painel em um lugar, a ferramenta de ingestão em outro e, para saber se o fluxo de dados executou, olhar em três ou quatro lugares diferentes. O Airflow une tudo isso porque, por meio de uma única DAG, podemos fazer as partes se comunicarem, mantendo tudo no mesmo ecossistema de gestão e continuidade, com visão de início, meio e fim no mesmo lugar.
Outro ponto a favor é poder construir fluxos com código Python. No Airflow, tudo é basicamente Python, o que facilita e traz versatilidade para a orquestração. Há ainda uma interface acessível via navegador para visualizar e operar as DAGs: podemos pausar uma DAG, ver seu estado, quando foi executada, analisar um gráfico de execução por tarefa, verificar se a tarefa está em espera e o que está acontecendo, além de acessar registros de execução, tudo centralizado, com gestão de usuários.
É importante destacar que o projeto passou a ser mantido pela Apache Software Foundation. Ele foi criado há algum tempo e, depois de se tornar de código aberto, foi adotado pela fundação. Isso significa uma comunidade forte que mantém e melhora o Airflow continuamente, tornando-o cada vez mais robusto e apto a atender mais cenários.
Quando devemos usar o Airflow? Se precisamos gerenciar um processo de ETL, um fluxo em tempo real (RT) ou um fluxo de dados em lotes; se precisamos de automação com dependências entre etapas; e se precisamos gerenciar, dentro do nosso ecossistema de dados, elementos como novas tentativas, alertas, histórico e registros de execução. Em resumo, praticamente qualquer cenário que exija orquestração em um fluxo de dados se encaixa no uso do Airflow.
É claro que, se estivermos utilizando plataformas que já oferecem essa orquestração de forma nativa, não necessariamente precisamos do Airflow. Isso deve ser considerado no contexto. Um ponto que avaliamos no dia a dia para sugerir o Airflow na arquitetura é o desacoplamento: quando temos muitos serviços desacoplados — isto é, não temos uma única plataforma, e sim vários serviços ou ferramentas para compor o ecossistema de dados —, o Airflow ajuda a centralizar. Se sentimos fragmentação da observabilidade, isto é, se a nossa capacidade de entender se um fluxo de dados executou depende de olhar muitos lugares diferentes, temos um problema, pois não conseguiremos garantir, de forma simples, que tudo está funcionando continuamente. Se identificamos essa característica, temos um candidato ideal para usar o Airflow e resolver o problema.
Devemos também considerar que o Airflow não é uma ferramenta de processamento de dados. Processamos dados com Spark, bibliotecas como Pandas ou outras ferramentas; o Airflow não é o motor de processamento, é a ferramenta para orquestrar o processamento. Se vamos executar, por exemplo, um processo no Spark, podemos ter uma DAG que executa um arquivo em um ambiente Spark. No Airflow, a função é orquestrar esse arquivo: chamar sua execução, gerenciar dependências, administrar os registros e programar quando executar. O Airflow, por si só, não realiza tarefas de segmentação de dados ou distribuição entre nós de processamento.
Podemos usar o Airflow para ingestão? Sim, isso faz parte do escopo, mas é preciso entender que quem realiza o processamento, ao final do dia, é o nosso arquivo em Python chamando uma API, por exemplo, e não o Airflow usando alguma capacidade interna de processamento distribuído. O Airflow literalmente orquestra: chama a execução, gerencia dependências, administra os registros e agenda a execução.
Assim, entendemos o que é o Airflow e como utilizá-lo.
Agora nós vamos compreender os conceitos de Workflow (fluxo de trabalho) no próximo vídeo.
O curso Engenharia de Dados: Orquestração de Pipelines com Apache Airflow possui 198 minutos de vídeos, em um total de 53 atividades. Gostou? Conheça nossos outros cursos de Engenharias e Arquiteturas de Dados em Dados, ou leia nossos artigos de Dados.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
O Plano Plus evoluiu: agora com Luri para impulsionar sua carreira com os melhores cursos e acesso à maior comunidade tech.
2 anos de Alura
Matricule-se no plano PLUS 24 e garanta:
Jornada de estudos progressiva que te guia desde os fundamentos até a atuação prática. Você acompanha sua evolução, entende os próximos passos e se aprofunda nos conteúdos com quem é referência no mercado.
Back-end, Dados, Front-end, DevOps, Mobile, Gestão & Negócios, UX & Design, Cibersegurança, Cloud, Inteligência Artificial
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
Acesso à inteligência artificial da Alura.
No Discord, você participa de eventos exclusivos, pode tirar dúvidas em estudos colaborativos e ainda conta com mentorias em grupo com especialistas de diversas áreas.
Catálogo de tecnologia para quem é da área de Marketing
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
20% de desconto na Pós Tech
Luri Vision chegou no Plano Pro: a IA da Alura que enxerga suas dúvidas, acelera seu aprendizado e conta também com o Alura Língua que prepara você para competir no mercado internacional.
2 anos de Alura
Todos os benefícios do PLUS 24 e mais vantagens exclusivas:
Acesso ao catálogo da Casa do Código e leitura dentro da plataforma
Chat, busca, exercícios abertos, revisão de aula, geração de legenda para certificado.
Modo entrevista - Pratique situações reais e evolua com feedback personalizado
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Para quem quer atingir seus objetivos mais rápido: Luri Vision ilimitado, vagas de emprego exclusivas e mentorias para acelerar cada etapa da jornada.
2 anos de Alura
Todos os benefícios do PRO 24 e mais vantagens exclusivas:
Catálogo de tecnologia para quem é da área de Marketing
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais de forma ilimitada.
Conecte-se ao mercado com mentoria individual personalizada, vagas exclusivas e networking estratégico que impulsionam sua carreira tech para o próximo nível.