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

Apache Airflow: transformação de dados com Spark

Contexto Data Lake - Apresentação

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?

Contexto Data Lake - Proposta do projeto de transformação de dados

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.

Contexto Data Lake - Reestruturando o Data Lake (Bronze, Silver, Gold)

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.

Sobre o curso Apache Airflow: transformação de dados com Spark

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:

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

Conheça os Planos para Empresas