Boas-vindas ao curso de Apache Airflow: transformação de dados com Spark! Meu nome é Igor do Nascimento e eu serei seu instrutor nesta jornada!
Igor é um homem branco de cabelos e barba curtos e escuros. Usa óculos de grau de armação redonda e fones de ouvido sem fio, veste uma camiseta cinza e está sentado em uma cadeira preta acolchoada. Ao fundo, uma parede sob iluminação verde na qual constam um pequeno armário e uma TV com prateleiras à esquerda e à direita. Na prateleira à esquerda, objetos das sagas Star Wars e Harry Potter; à direita, livros. Ao lado do armário há um objeto quadrangular na cor cinza onde lê-se "NERD" em letras garrafais amarelas. Sobre este objeto, uma pequena luminária com o símbolo de Data Science.
Neste curso, atualizaremos um pipeline de extração de dados que não está satisfazendo nosso time de pessoas analistas e cientistas de dados, além do DataLake para suprir essa nova demanda.
Aprenderemos, ainda, a utilizar o Airflow em conjunto com a ferramenta do Spark por meio do Spark Submit Operator. Com essas ferramentas juntas, teremos um pipeline de dados mais poderoso que, além da extração de dados, terá a etapa de transformação desses dados.
Uma vez transformados os dados, precisaremos explorar a arquitetura de medalhas, onde aprenderemos a criar camadas de bronze, silver e gold para armazenar os dados recebidos.
Para melhor aproveitar este curso, é importante que você tenha familiaridade com a linguagem Python e as ferramentas Airflow e Spark (principalmente o PySpark).
Este curso é para você que pretende se aprofundar na carreira de engenharia de dados criando pipelines cada vez mais ricos e poderosos. Vamos nessa?
Atualmente, temos um pipeline que faz a extração de dados da API do Twitter através do orquestrador Airflow. Este orquestrador faz a conexão com a API do Twitter e extrai os dados para o nosso data lake que, por sua vez, é consumido pelos cientistas e analistas de dados.
O pipeline está funcionando corretamente, porém, o time está encontrando dificuldades para ler os dados que estão sendo armazenados de maneira bruta no data lake, fazendo com que precisem lidar com os metadados e manipular os que estão em formato JSON, dificultando a chegada na etapa de tratamento de dados.
Pensando em facilitar esse processo, precisamos viabilizar a leitura dos dados, portanto, nossa intenção é incluir esta solução no pipeline já existente no Airflow. Para isso, usaremos a ferramenta Apache Spark e aplicaremos as transformações, que serão orquestradas, também, pelo Airflow.
Outro ponto de atenção é o armazenamento dos dados no data lake que, até o momento, é estruturado para lidar com dados brutos. Para isso, seguiremos o padrão Medallion Architecture (arquitetura de medalhão), que prevê a separação dos dados em diferentes posições em relação ao tratamento que possuem visando as diferentes etapas do processo.
Vamos analisar a estrutura atual do data lake!
No momento, nosso data lake possui diversas pastas. No primeiro nível, temos "Nome da extração", que está relacionada à extração de dados do Twitter, no qual definimos uma palavra-chave para pesquisar e as extrações referentes à ela aparecerão nesta pasta.
O segundo nível é "Data da extração" e, como o próprio nome sugere, refere-se às datas em que os dados foram extraídos. Por fim, dentro desta última pasta, temos os dados em si, que consistem em arquivo JSON.
Como essa estrutura salva os dados brutos, podemos nos questionar onde armazenar os dados refinados. Uma das opções seria sobrescrever o arquivo, ou seja, transformamos os dados extraídos e os colocamos de volta na mesma posição. O problema dessa abordagem, no entanto, é que perderíamos os dados originais, brutos, e se nosso pipeline vier a falhar na transformação teríamos que extraí-los novamente.
Vale ressaltar, inclusive, que este arquivo bruto pode ter outras finalidades como, por exemplo, governança e linhagem de dados. Sendo assim, uma outra opção seria manter, na mesma pasta, os dados extraídos e refinados, mas em arquivos distintos.
Porém, como nosso objetivo na atualização do pipeline é facilitar a leitura dos dados pelas pessoas que trabalharão com eles, ter os arquivos na mesma pasta não é interessante, já que, ao ler determinada data de extração, por exemplo, os arquivos extraídos (brutos) e refinados constariam juntos na leitura.
Visto que as alternativas anteriores não atendem bem às nossas necessidades, optaremos pela arquitetura de medalhão, que vai separar as etapas em diversos locais. A primeira estrutura são os dados bronze, que devem corresponder aos dados atuais, ou seja, os brutos. Lembre-se que os dados originais são importantes para que possamos justificar sua origem em casos de governança, perícia de machine learning ou auditorias em geral, por exemplo.
A camada seguinte comporta os dados silver (prata), que são os dados da camada bronze transformados a fim de viabilizar a leitura e análise. Por fim, temos os dados gold (ouro), que são construídos em conjunto com analistas e/ou cientistas de dados. Esses dados possuem objetivos específicos e não necessitam de nenhum tratamento, pois já estão agregados e fornecendo as informações específicas para as quais foram destinados.
Essas 3 camadas são a nova estrutura que aplicaremos no data lake para torná-lo mais organizado, além de suportar a refinação dos dados brutos.
Agora que já definimos as ferramentas que serão usadas e a arquitetura de medalhão, podemos preparar nosso pipeline atual a fim de aplicar as atualizações desejadas.
O curso Apache Airflow: transformação de dados com Spark possui 167 minutos de vídeos, em um total de 52 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:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
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.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
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.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.