Alura > Cursos de Data Science > Cursos de Engenharia de Dados > Conteúdos de Engenharia de Dados > Primeiras aulas do curso Apache Airflow: extração de dados

Apache Airflow: extração de dados

Pipeline de dados - Apresentação

Daniel: Olá! Eu sou o Daniel Siqueira, instrutor da escola de dados.

Igor: E eu sou o Igor Nascimento Alves. Também sou instrutor na escola de dados.

Igor é um jovem homem branco de cabelos curtos e pretos e barba. Ele usa óculos de grau de armação redonda e veste uma camiseta preta estampada. Está sentado

Daniel é um jovem homem negro, usa óculos de grau de armação retangular e headphone preto. Está vestido com uma camiseta preta e estampada. Por cima, uma camisa xadrez de botões aberta, sua estampa tem quadrados cinzas, pretos e brancos. Também está sentado e, à sua frente, há um microfone preso ao suporte e orientado na direção do rosto de Daniel.

Daniel: Nós gostaríamos de te dar as boas-vindas ao curso de Engenharia de dados: Conhecendo o Apache Airflow da Alura. Nele, faremos parte de um projeto e vamos:

Igor: Para isso, utilizaremos o Apache Airflow, um orquestrador de fluxo de dados. Com ele, será possível planejar as tarefas de extrações e trazer os dados para o nosso DataLake.

Daniel: Ao longo dessa jornada, aprenderemos a:

Por isso, é interessante que você já tenha algum nível de proficiência com essa linguagem. Além disso, como o Igor comentou, aprenderemos a utilizar o Airflow e a configurar o Hook, o Operator e os DAGs, que dão ao Aiflow o poder de orquestração.

Igor: Esse curso é para você que deseja aprender a construir um pipeline de dados e quer se aprofundar no orquestrador do Airflow, uma ferramenta muito poderosa.

Daniel: E também para você que tem interesse na engenharia de dados, já que o Airflow é pedido em tantas vagas diferentes, devido à sua importância no mercado.

Eu e o Igor te acompanharemos nesse processo e incentivamos que você faça todas as atividades e "Para saber mais". Nós desenvolvemos tudo com muito carinho para que você chegue ao final e tenha habilidade para trabalhar com Airflow dentro de um projeto.

Igor: Vamos lá?!

Pipeline de dados - Conhecendo o projeto

Daniel: Eu e Igor fazemos parte de uma equipe de engenharia de dados e agora estamos recebendo você! Temos um projeto em mãos e vamos trabalhar juntos nele. Neste projeto, precisamos nos conectar às redes sociais, em especial, ao Twitter. Nós extrairemos alguns tweets que contenham palavras da nossa área de interesse.

A empresa quer entender como as pessoas estão reagindo em relação a alguns termos, o que estão comentando nas redes sociais, por isso, vamos extrair os tweets e armazená-los. Com isso, a pessoa cientista de dados terá acesso aos dados e poderá traçar análises e modelos.

Nós poderíamos disponibilizar um de nós para ficar focado nessa tarefa. O que você acha, Igor?

Igor: É uma boa ideia, Dani, mas, isso pode gerar alguns problemas.

Por exemplo, em relação ao script, podemos usar um Scheduler, então, alguém fica responsável por programar um Scheduler que vai rodar diariamente o código. Esse código extrai os dados do twitter e disponibiliza em um arquivo para a pessoa cientista de dados.

O problema é que no dia em que o código não rodar por algum motivo, teremos um log? A pessoal responsável será informada? A cientista de dados conseguirá saber se está tudo bem com os dados? Se eles são confiáveis? Não garantimos isso com uma pessoa responsável, usando apenas um Scheduler.

E se a tarefa ficar mais complexa? Se for necessário fazer a extração de outras fontes de dados e transformações nesses dados que foram extraídos para um script? Uma pessoa só responsável por essa tarefa pode não ser suficiente. Aparentemente, a solução manual não vai resolver.

Daniel: Talvez devêssemos pensar em algum software que deixasse esse processo um pouco mais automático. Você já trabalhou com alguma ferramenta que poderia nos ajudar nessa solução?

Igor: Já trabalhei sim, Dani! Tive a experiência de utilizar um orquestrador de tarefas. A ferramenta mais utilizada no mercado atualmente é o Airflow.

O Airflow ajuda na resolução, justamente, desse tipo de problema: temos algumas tarefas para resolver no nosso pipeline de dados, isto é, no percurso que os nossos dados estão fazendo e podemos programá-lo para realizar essas tarefas, desde a extração de dados do twitter à disponibilização dos dados em um arquivo.

Além disso, o Aiflow se ocupará de todos os problemas que levantamos até agora, por exemplo, gerar logs, adicionar tarefas no pipeline, ou rodar o código. Portanto, essa é uma ferramenta que foi pensada para o problema que estamos tentando resolver.

Daniel: Gostei, Igor! Estou animado! Mas, acho que podemos detalhar um pouco mais o conceito de data pipeline e também de Airflow. Vamos fazer isso no próximo vídeo?

Igor: Vamos lá!!

Pipeline de dados - Data Pipeline

Igor: Dani, gostaria de entender um pouco mais sobre o data pipeline. Você consegue explicar para mim?

Daniel: Sim! Vamos dividir a palavra para compreendê-la por completo. Em tradução livre, pipeline seria encanamento e data, dados. Um data pipeline nada mais é que um "encanamento", ou seja, uma série de processos sucessivos que acontecem no processamento de dados.

A partir da analogia com o "encanamento", podemos pensar que, onde termina um processo, nós "encaixamos", como se fosse um cano, outro processo. Esses processos podem ser de todos os tipos.

Por exemplo, podemos extrair os dados e armazená-los em um Data Lake ou Data Warehouse. Outra situação é pegar informações de um banco de dados e levar até uma aplicação financeira ou de outro tipo. Enfim, existem muitas possibilidades de trabalho com o data pipeline.

Igor: Muito legal, Dani! As etapas do data pipeline que você descreveu me lembraram do ETL: Extract, de extração; Transform, de transformação; e Load, de carregamento. O ELT é o processo de pegar os dados de uma fonte, fazer uma transformação neles e disponibilizá-los na etapa de Load.

Apesar de os processo de data pipeline e ETL terem algumas semelhanças, o ETL faz parte de um data pipeline. Portanto, está inserido em um contexto de data pipeline, mas possui algumas etapas a mais que pode exercer.

Por exemplo, é possível incluir uma etapa de machine learning, isto é, fazer transformações nos dados focadas no modelo de machine learning. O data pipeline consegue englobar a parte do ETL e trazer novas funções.

Outra característica é o Batch de dados: Processamento de grandes volumes de dados. Por exemplo, no ETL, normalmente pegamos um pacote de dados, transformamos e disponibilizamos. Em um data pipeline, é possível que esse fluxo seja contínuo, pensando na analogia dos canos outra vez.

Portanto, temos um fluxo contínuo de dados, como se a água estivesse passando continuamente pelos canos, e o data pipeline precisa conseguir manipular esses dados, dirigindo-os para uma ponte específica ou transformando-os.

Daniel: Para finalizar a nossa analogia, podemos pensar que:

Gostaria que tivéssemos isso em mente durante todo o projeto, entendendo que sempre estamos buscando desenvolver um data pipeline que seja mais interessante, que funcione de maneira automática, para que o nosso projeto de extração dos tweets fique cada vez melhor.

Igor: Concordo, Dani. Fiquei bem mais confortável em relação ao funcionamento de um data pipeline e como o Airflow, o orquestrador, vai fazer tudo funcionar. Nosso próximo passo é entender melhor a base de dados, isto é, nossa fonte de dados, que serão os tweets recolhidos do Twitter. Vamos analisar isso?

Sobre o curso Apache Airflow: extração de dados

O curso Apache Airflow: extração de dados possui 198 minutos de vídeos, em um total de 59 atividades. Gostou? Conheça nossos outros cursos de Engenharia de Dados em Data Science, ou leia nossos artigos de Data Science.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Engenharia de Dados acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas